www.gusucode.com > MATLAB——小波变换源码程序 > MATLAB——小波变换源码程序/daub18Transform/daub18Transform.m

    % it shows the plot of input signal as well as the transformed parts of the
% signal i.e. first trend and first fluctuation
function daub18Transform(f)
clc
% Sample Signal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 t=0:0.0001:1;
 f=20*(t.^2).*(1-t).^4.*cos(12*t.*pi); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a1=0.05385035/sqrt(2);
a2=0.34483430/sqrt(2);
a3=0.85534906/sqrt(2);
a4=0.92954571/sqrt(2);
a5=0.18836955/sqrt(2);
a6=-0.41475176/sqrt(2);
a7=-0.13695355/sqrt(2);
a8=0.21006834/sqrt(2);
a9=0.043452675/sqrt(2);
a10=-0.09564726/sqrt(2);
a11=3.54892813e-4/sqrt(2);
a12=0.03162417/sqrt(2);
a13=-6.67962023e-3/sqrt(2);
a14=-6.05496058e-3/sqrt(2);
a15=2.61296728e-3/sqrt(2);
a16=3.25814671e-4/sqrt(2);
a17=-3.56329759e-4/sqrt(2);
a18=5.5645514e-5/sqrt(2);

b1=a18;
b2=-a17;
b3=a16;
b4=-a15;
b5=a14;
b6=-a13;
b7=a12;
b8=-a11;
b9=a10;
b10=-a9;
b11=a8;
b12=-a7;
b13=a6;
b14=-a5;
b15=a4;
b16=-a3;
b17=a2;
b18=-a1;

v1=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18];
w1=[b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18];
% making the input even in length %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if mod(length(f),2)~=0
    f=[f 0];
end
%wavelet transform %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Aa=[];
Da=[];
n=length(f);
i=1:(n/2)-8;
   x2 = a1*f(2*i-1) + a2*f(2*i) + a3*f(2*i+1) + a4*f(2*i+2) + a5*f(2*i+3) + a6*f(2*i+4) + a7*f(2*i+5) + a8*f(2*i+6) + a9*f(2*i+7) + a10*f(2*i+8) + a11*f(2*i+9) + a12*f(2*i+10) + a13*f(2*i+11) + a14*f(2*i+12) + a15*f(2*i+13) + a16*f(2*i+14) + a17*f(2*i+15) + a18*f(2*i+16);
   %Aa=[Aa a11];
   y2 = b1*f(2*i-1) + b2*f(2*i) + b3*f(2*i+1) + b4*f(2*i+2) + b5*f(2*i+3) + b6*f(2*i+4) + b7*f(2*i+5) + b8*f(2*i+6) + b9*f(2*i+7) + b10*f(2*i+8) + b11*f(2*i+9) + b12*f(2*i+10) + b13*f(2*i+11) + b14*f(2*i+12) + b15*f(2*i+13) + b16*f(2*i+14) + b17*f(2*i+15) + b18*f(2*i+16);
  % Da=[Da d11];  

    n2=n/2-7;
    x3=a17*f(1) + a18*f(2) + a1*f(2*n2-1) + a2*f(2*n2) + a3*f(2*n2+1) + a4*f(2*n2+2) + a5*f(2*n2+3) + a6*f(2*n2+4) + a7*f(2*n2+5) + a8*f(2*n2+6) + a9*f(2*n2+7) + a10*f(2*n2+8) + a11*f(2*n2+9) + a12*f(2*n2+10) + a13*f(2*n2+11) + a14*f(2*n2+12) + a15*f(2*n2+13) + a16*f(2*n2+14);
    y3=b17*f(1) + b18*f(2) + b1*f(2*n2-1) + b2*f(2*n2) + b3*f(2*n2+1) + b4*f(2*n2+2) + b5*f(2*n2+3) + b6*f(2*n2+4) + b7*f(2*n2+5) + b8*f(2*n2+6) + b9*f(2*n2+7) + b10*f(2*n2+8) + b11*f(2*n2+9) + b12*f(2*n2+10) + b13*f(2*n2+11) + b14*f(2*n2+12) + b15*f(2*n2+13) + b16*f(2*n2+14);
   
   n3=n/2-6;
   x4=a15*f(1) + a16*f(2) + a17*f(3) + a18*f(4) + a1*f(2*n3-1) + a2*f(2*n3) + a3*f(2*n3+1) + a4*f(2*n3+2) + a5*f(2*n3+3) + a6*f(2*n3+4) + a7*f(2*n3+5) + a8*f(2*n3+6) + a9*f(2*n3+7) + a10*f(2*n3+8) + a11*f(2*n3+9) + a12*f(2*n3+10) + a13*f(2*n3+11) + a14*f(2*n3+12);
   y4=b15*f(1) + b16*f(2) + b17*f(3) + b18*f(4) + b1*f(2*n3-1) + b2*f(2*n3) + b3*f(2*n3+1) + b4*f(2*n3+2) + b5*f(2*n3+3) + b6*f(2*n3+4) + b7*f(2*n3+5) + b8*f(2*n3+6) + a9*f(2*n3+7) + b10*f(2*n3+8) + b11*f(2*n3+9) + b12*f(2*n3+10) + b13*f(2*n3+11) + b14*f(2*n3+12);
 
   n4=n/2-5;
   x5=a13*f(1) + a14*f(2) + a15*f(3) + a16*f(4) + a17*f(5) + a18*f(6) + a1*f(2*n4-1) + a2*f(2*n4) + a3*f(2*n4+1) + a4*f(2*n4+2) + a5*f(2*n4+3) + a6*f(2*n4+4) + a7*f(2*n4+5) + a8*f(2*n4+6) + a9*f(2*n4+7) + a10*f(2*n4+8) + a11*f(2*n4+9) + a12*f(2*n4+10);
   y5=b13*f(1) + b14*f(2) + b15*f(3) + b16*f(4) + b17*f(5) + b18*f(6) + b1*f(2*n4-1) + b2*f(2*n4) + b3*f(2*n4+1) + b4*f(2*n4+2) + b5*f(2*n4+3) + b6*f(2*n4+4) + b7*f(2*n4+5) + b8*f(2*n4+6) + b9*f(2*n4+7) + b10*f(2*n4+8) + b11*f(2*n4+9) + b12*f(2*n4+10);
   
   n1=n/2-4;
   x6=a11*f(1) + a12*f(2) + a13*f(3) + a14*f(4) + a15*f(5) + a16*f(6) + a17*f(7) + a18*f(8) + a1*f(2*n1-1) + a2*f(2*n1) + a3*f(2*n1+1) + a4*f(2*n1+2) + a5*f(2*n1+3) + a6*f(2*n1+4) + a7*f(2*n1+5) + a8*f(2*n1+6) + a9*f(2*n1+7) + a10*f(2*n1+8);
   y6=b11*f(1) + b12*f(2) + a13*f(3) + a14*f(4) + a15*f(5) + a16*f(6) + b17*f(7) + b18*f(8) + b1*f(2*n1-1) + b2*f(2*n1) + b3*f(2*n1+1) + b4*f(2*n1+2) + b5*f(2*n1+3) + b6*f(2*n1+4) + b7*f(2*n1+5) + b8*f(2*n1+6) + b9*f(2*n1+7) + b10*f(2*n1+8);
   
   n5=n/2-3;
   x7=a9*f(1) + a10*f(2) + a11*f(3) + a12*f(4) + a13*f(5) + a14*f(6) + a15*f(7) + a16*f(8) + a17*f(9) + a18*f(10) + a1*f(2*n5-1) + a2*f(2*n5) + a3*f(2*n5+1) + a4*f(2*n5+2) + a5*f(2*n5+3) + a6*f(2*n5+4) + a7*f(2*n5+5) + a8*f(2*n5+6);
   y7=b9*f(1) + b10*f(2) + b11*f(3) + b12*f(4) + b13*f(5) + b14*f(6) + b15*f(7) + b16*f(8) + b17*f(9) + b18*f(10) + b1*f(2*n5-1) + b2*f(2*n5) + b3*f(2*n5+1) + b4*f(2*n5+2) + b5*f(2*n5+3) + b6*f(2*n5+4) + b7*f(2*n5+5) + b8*f(2*n5+6);
   
   n6=n/2-2;
   x8=a7*f(1) + a8*f(2) + a9*f(3) + a10*f(4) + a11*f(5) + a12*f(6) + a13*f(7) + a14*f(8) + a15*f(9) + a16*f(10) + a17*f(11) + a18*f(12) + a1*f(2*n6-1) + a2*f(2*n6) + a3*f(2*n6+1) + a4*f(2*n6+2) + a5*f(2*n6+3) + a6*f(2*n6+4);
   y8=b7*f(1) + b8*f(2) + b9*f(3) + b10*f(4) + b11*f(5) + b12*f(6) + b13*f(7) + b14*f(8) + b15*f(9) + b16*f(10) + b17*f(11) + b18*f(12) + b1*f(2*n6-1) + b2*f(2*n6) + b3*f(2*n6+1) + b4*f(2*n6+2) + b5*f(2*n6+3) + b6*f(2*n6+4);
   
   n7=n/2-1;
   x9=a5*f(1) + a6*f(2) + a7*f(3) + a8*f(4) + a9*f(5) + a10*f(6) + a11*f(7) + a12*f(8) + a13*f(9) + a14*f(10) + a15*f(11) + a16*f(12) + a17*f(13) + a18*f(14) + a1*f(2*n7-1) + a2*f(2*n7) + a3*f(2*n7+1) + a4*f(2*n7+2);
   y9=b5*f(1) + b6*f(2) + b7*f(3) + b8*f(4) + b9*f(5) + b10*f(6) + b11*f(7) + b12*f(8) + b13*f(9) + b14*f(10) + b15*f(11) + b16*f(12) + b17*f(13) + b18*f(14) + b1*f(2*n7-1) + b2*f(2*n7) + b3*f(2*n7+1) + b4*f(2*n7+2);
   
   n8=n/2;
   x1 = a1*f(2*n8-1) + a2*f(2*n8) + a3*f(1) + a4*f(2) + a5*f(3) + a6*f(4) + a7*f(5) + a8*f(6) + a9*f(7) + a10*f(8) + a11*f(9) + a12*f(10) + a13*f(11) + a14*f(12) + a15*f(13) + a16*f(14) + a17*f(15) + a18*f(16);
   y1 = b1*f(2*n8-1) + b2*f(2*n8) + b3*f(1) + b4*f(2) + b5*f(3) + b6*f(5) + b7*f(5) + b8*f(6) + b9*f(7) + b10*f(8) + b11*f(9) + b12*f(10) + b13*f(11) + b14*f(12) + b15*f(13) + b16*f(14) + b17*f(15) + b18*f(16);

   
   A1=[x2 x3 x4 x5 x6 x7 x8 x9 x1];
   D1=[y2 y3 y4 y5 y6 y7 y8 y9 y1];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%plots
figure(1)
subplot(3,2,[1 2])
plot(f)
title('Original Signal') %plot of the original signal
ylabel('Amplitude')
xlabel('Time')
axis tight

subplot(3,2,3)
plot(A1)
title('First Trend') %plot of first trend after haar wavelet transform
ylabel('Amplitude')
xlabel('Time')
axis tight

subplot(3,2,4)
plot(D1)
title('First Fluctuation') %plot of first fluctuation after haar wavelet transform
ylabel('Amplitude')
xlabel('Time')
axis tight

subplot(3,2,[5 6])
plot([A1 D1])
title('Transformed Signal') %plot of the final signal obtained after the transformation
xlabel('Amplitude')
ylabel('Time')
axis tight

end