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);
   133   134   135   136   137   138   139   140   141   142   143