Page 138 - Algorithm Collections for Digital Signal Processing Applications using MATLAB
P. 138
126 Chapter 3
haarinvtrans.m
app=approx{8};
for i=(log2(s)-1):-1:1
a=[app;det{i}];
a=reshape(a,1,size(a,1)*size(a,2));
app=createinvhaarmatrix(length(a))*a';
app=app';
end
figure
subplot(2,1,1)
i=0:1/511:1;
a=sin(2*pi*i)+sin(2*pi*100*i);
plot(a)
title('Original signal');
subplot(2,1,2)
plot(app)
title('Reconstructed signal');
__________________________________________________________
createinvhaarmatrix.m
function [res]=createinvhaarmatrix(m)
temp1=[ones(1,m/2);(-1)*ones(1,m/2)];
temp1=reshape(temp1,1,size(temp1,1)*size(temp1,2));
d1=temp1;
temp2=[ones(1,m/2);zeros(1,m/2)];
temp2=reshape(temp2,1,size(temp2,1)*size(temp2,2));
d2=temp2(1:1:length(temp2)-1);
res=diag(d1)+diag(d2,1)+diag(d2,-1);