function coef=haar(vector) % Haar transform % % Syntax COEF=HARR(VECTOR) % This function returns the Haar wavelet transform of the data in % VECTOR. COEF is thereturned transform and is a column vector of % length 2^n > length of VECTOR. % % Written by Eric Tittley (940901) etittley@phobos.astro.uwo.ca % % See also HAAR_INV if nargin<1 error('Too few arguments passed to haar'); end if nargin>1 error('Too many arguments passed to haar'); end n=length(vector); vector=vector(:); k=0; flag=1; while(flag) k=k+1; if n<=2^k vector=[vector;0*(1&[1:2^k-n]')]; flag=0; end end pow=k; coef=vector; for k=1:pow avg=[1:2^(pow-k)]; diff=[1:2^(pow-k)]; for l=1:2^(pow-k); avg(l)=(coef(l*2-1)+coef(l*2))/2; diff(l)=(coef(l*2-1)-coef(l*2))/2; end coef(1:2^(pow-k))=avg; coef(2^(pow-k)+1:2^(pow-k+1))=diff; end