www.gusucode.com > MATLAB——小波变换源码程序 > MATLAB——小波变换源码程序/daub14Transform/daub14Transform.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 daub14Transform(f)
clc
% Sample Signal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 t=0:0.0001:1;
 f=20*(t.^2).*(1-t).^4.*cos(12*t.*pi); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a1=0.11009943/sqrt(2);
a2=0.56079128/sqrt(2);
a3=1.03114849/sqrt(2);
a4=0.66437248/sqrt(2);
a5=-0.20351382/sqrt(2);
a6=-0.31683501/sqrt(2);
a7=0.1008467/sqrt(2);
a8=0.11400345/sqrt(2);
a9=-0.05378245/sqrt(2);
a10=-0.02343994/sqrt(2);
a11=0.01774979/sqrt(2);
a12=6.07514995e-4/sqrt(2);
a13=-2.54790472e-3/sqrt(2);
a14=5.00226853e-4/sqrt(2);

b1=a14;
b2=-a13;
b3=a12;
b4=-a11;
b5=a10;
b6=-a9;
b7=a8;
b8=-a7;
b9=a6;
b10=-a5;
b11=a4;
b12=-a3;
b13=a2;
b14=-a1;

fv1=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14]; %scaling function 
fw1=[b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14]; %wavelet function
% making the input even in length %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if mod(length(f),2)~=0
    f=[f 0];
end
%wavelet transform %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Aa=[];
Da=[];
n=length(f);
for i=1:n/2-6;
   a18 = 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);
   Aa=[Aa a18];
   d18 = 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);
   Da=[Da d18];
end 
   n4=n/2-5;
   a15=a13*f(1) + a14*f(2) + 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);
   d15=b13*f(1) + b14*f(2) + 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);
   
   n3=n/2-4;
   a19=a11*f(1) + a12*f(2) + a13*f(3) + a14*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);
   d19=b11*f(1) + b12*f(2) + a13*f(3) + a14*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) + b9*f(2*n3+7) + b10*f(2*n3+8);
   
   n1=n/2-3;
   a20=a9*f(1) + a10*f(2) + a11*f(3) + a12*f(4) + a13*f(5) + a14*f(6) + 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);
   d20=b9*f(1) + b10*f(2) + a11*f(3) + a12*f(4) + a13*f(5) + a14*f(6) + 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);
   
   n2=n/2-2;
   a21 =a7*f(1) + a8*f(2) + a9*f(3) + a10*f(4) + a11*f(5) + a12*f(6) + a13*f(7) + a14*f(8) + 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);
   d21 =b7*f(1) + b8*f(2) + b9*f(3) + b10*f(5) + b11*f(5) + b12*f(6) + b13*f(7) + b14*f(8) + 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);
   
   n5=n/2-1;
   a22=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) + a1*f(2*n5-1) + a2*f(2*n5) + a3*f(2*n5+1) + a4*f(2*n5+2);
   d22=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) + b1*f(2*n5-1) + b2*f(2*n5) + b3*f(2*n5+1) + b4*f(2*n5+2);
   
   n6=n/2;
   a23=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) + a1*f(2*n6-1) + a2*f(2*n6);
   d23=b3*f(1) + b4*f(2) + b5*f(3) + b6*f(4) + b7*f(5) + b8*f(6) + b9*f(7) + b10*f(8) + b11*f(9) + b12*f(10) + b13*f(11) + b14*f(12) + b1*f(2*n6-1) + b2*f(2*n6);
   
   A1=[Aa a15 a19 a20 a21 a22 a23];
   D1=[Da d15 d19 d20 d21 d22 d23];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%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