Page 144 - Algorithm Collections for Digital Signal Processing Applications using MATLAB
P. 144

132                                                        Chapter 3

              ______________________________________________________________________
              createdaubmatrix.m

              function [res]=createdaubmatrix(m)
              a=[(1+sqrt(3))/(4*sqrt(2))   (3+sqrt(3))/(4*sqrt(2))      (3-sqrt(3))/(4*sqrt(2))
              (1-sqrt(3))/(4*sqrt(2))];
              b=[(1-sqrt(3))/(4*sqrt(2))   -(3-sqrt(3))/(4*sqrt(2))      (3+sqrt(3))/(4*sqrt(2))
              -(1+sqrt(3))/(4*sqrt(2))];
              t1=repmat([a(2) b(3)],1,(m/2));
              t2=repmat([a(3) b(4)],1,m/2);
              t3=repmat([a(4) 0],1,m/2);
              t4=repmat([b(1) 0],1,m/2);
              res=diag(repmat([a(1) b(2)],1,m/2)) + diag(t1(1:1:m-1),1)
              +diag(t2(1:1:m-2),2)+diag(t3(1:1:m-3),3)+diag(t4(1:1:m-1),-1) ;
              res=[res   [zeros(1,m-2) res(1,3) res(2,3)]'  [zeros(1,m-2) res(1,4) res(2,4)]'];
              ______________________________________________________________________

              daub4invtrans.m

              app=approx{log2(s)-2};
              for i=(log2(s)-2):-1:1
                  a=[app;det{i}];
                  a=reshape(a,1,size(a,1)*size(a,2));
                  a=[ a(length(a)-1:1:length(a))  a];
                  app=createdaubinvmatrix(length(a)-2)*a';
                  app=app';
              end
              figure
              subplot(2,1,1)
              i=0:1/127: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');

              ________________________________________________________________________
   139   140   141   142   143   144   145   146   147   148   149