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