第六章 基于MATLAB的小波分析
关于小波分析的matlab程序

关于小波分析的matlab程序(个人收集关于小波分析的matlab程序)小波滤波器构造和消噪程序 (2)小波谱分析mallat算法经典程序 (16)小波包变换分析信号的MATLAB程序 (20)利用小波变换实现对电能质量检测的算法实现 (31)基于小波变换的图象去噪Normalshrink算法 (35)小波滤波器构造和消噪程序1.重构% mallet_wavelet.m% 此函数用于研究Mallet算法及滤波器设计% 此函数仅用于消噪a=pi/8; %角度赋初值b=pi/8;%低通重构FIR滤波器h0(n)冲激响应赋值h0=cos(a)*cos(b);h1=sin(a)*cos(b);h2=-sin(a)*sin(b);h3=cos(a)*sin(b);low_construct=[h0,h1,h2,h3];L_fre=4; %滤波器长度low_decompose=low_construct(end:-1:1); %确定h0(-n),低通分解滤波器for i_high=1:L_fre; %确定h1(n)=(-1)^n,高通重建滤波器if(mod(i_high,2)==0);coefficient=-1;elsecoefficient=1;endhigh_construct(1,i_high)=low_decompose(1,i_hi gh)*coefficient;endhigh_decompose=high_construct(end:-1:1); %高通分解滤波器h1(-n)L_signal=100; %信号长度n=1:L_signal; %信号赋值f=10;t=0.001;y=10*cos(2*pi*50*n*t).*exp(-20*n*t);figure(1);plot(y);title('原信号');check1=sum(high_decompose); %h0(n)性质校验check2=sum(low_decompose);check3=norm(high_decompose);check4=norm(low_decompose);l_fre=conv(y,low_decompose); %卷积l_fre_down=dyaddown(l_fre); %抽取,得低频细节h_fre=conv(y,high_decompose);h_fre_down=dyaddown(h_fre); %信号高频细节figure(2);subplot(2,1,1)plot(l_fre_down);title('小波分解的低频系数');subplot(2,1,2);plot(h_fre_down);title('小波分解的高频系数');l_fre_pull=dyadup(l_fre_down); %0差值h_fre_pull=dyadup(h_fre_down);l_fre_denoise=conv(low_construct,l_fre_pull); h_fre_denoise=conv(high_construct,h_fre_pull);l_fre_keep=wkeep(l_fre_denoise,L_signal); %取结果的中心部分,消除卷积影响h_fre_keep=wkeep(h_fre_denoise,L_signal);sig_denoise=l_fre_keep+h_fre_keep; %信号重构compare=sig_denoise-y; %与原信号比较figure(3);subplot(3,1,1)plot(y);ylabel('y'); %原信号subplot(3,1,2);plot(sig_denoise);ylabel('sig\_denoise'); %重构信号subplot(3,1,3);plot(compare);ylabel('compare'); %原信号与消噪后信号的比较2.消噪、% 此函数用于研究Mallet算法及滤波器设计% 此函数用于消噪处理%角度赋值%此处赋值使滤波器系数恰为db9%分解的高频系数采用db9较好,即它的消失矩较大%分解的有用信号小波高频系数基本趋于零%对于噪声信号高频分解系数很大,便于阈值消噪处理[l,h]=wfilters('db10','d');low_construct=l;L_fre=20; %滤波器长度low_decompose=low_construct(end:-1:1); %确定h0(-n),低通分解滤波器for i_high=1:L_fre; %确定h1(n)=(-1)^n,高通重建滤波器if(mod(i_high,2)==0);coefficient=-1;elsecoefficient=1;endhigh_construct(1,i_high)=low_decompose(1,i_hi gh)*coefficient;endhigh_decompose=high_construct(end:-1:1); %高通分解滤波器h1(-n)L_signal=100; %信号长度n=1:L_signal; %原始信号赋值f=10;t=0.001;y=10*cos(2*pi*50*n*t).*exp(-30*n*t); zero1=zeros(1,60); %信号加噪声信号产生zero2=zeros(1,30);noise=[zero1,3*(randn(1,10)-0.5),zero2]; y_noise=y+noise;figure(1);subplot(2,1,1);plot(y);title('原信号');subplot(2,1,2);plot(y_noise);title('受噪声污染的信号');check1=sum(high_decompose); %h0(n),性质校验check2=sum(low_decompose);check3=norm(high_decompose);check4=norm(low_decompose);l_fre=conv(y_noise,low_decompose); %卷积l_fre_down=dyaddown(l_fre); %抽取,得低频细节h_fre=conv(y_noise,high_decompose);h_fre_down=dyaddown(h_fre); %信号高频细节figure(2);subplot(2,1,1)plot(l_fre_down);title('小波分解的低频系数');subplot(2,1,2);plot(h_fre_down);title('小波分解的高频系数');% 消噪处理for i_decrease=31:44;if abs(h_fre_down(1,i_decrease))>=0.000001 h_fre_down(1,i_decrease)=(10^-7);endendl_fre_pull=dyadup(l_fre_down); %0差值h_fre_pull=dyadup(h_fre_down);l_fre_denoise=conv(low_construct,l_fre_pull); h_fre_denoise=conv(high_construct,h_fre_pull);l_fre_keep=wkeep(l_fre_denoise,L_signal); %取结果的中心部分,消除卷积影响h_fre_keep=wkeep(h_fre_denoise,L_signal);sig_denoise=l_fre_keep+h_fre_keep; %消噪后信号重构%平滑处理for j=1:2for i=60:70;sig_denoise(i)=sig_denoise(i-2)+sig_denoise(i+2)/ 2;end;end;compare=sig_denoise-y; %与原信号比较figure(3);subplot(3,1,1)plot(y);ylabel('y'); %原信号subplot(3,1,2);plot(sig_denoise);ylabel('sig\_denoise'); %消噪后信号subplot(3,1,3);plot(compare);ylabel('compare'); %原信号与消噪后信号的比较小波谱分析mallat算法经典程序clc;clear;%% 1.正弦波定义f1=50; % 频率1f2=100; % 频率2fs=2*(f1+f2); % 采样频率Ts=1/fs; % 采样间隔N=120; % 采样点数n=1:N;y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合figure(1)plot(y);title('两个正弦信号')figure(2)stem(abs(fft(y)));title('两信号频谱')%% 2.小波滤波器谱分析h=wfilters('db30','l'); % 低通g=wfilters('db30','h'); % 高通h=[h,zeros(1,N-length(h))]; % 补零(圆周卷积,且增大分辨率变于观察)g=[g,zeros(1,N-length(g))]; % 补零(圆周卷积,且增大分辨率变于观察)figure(3);stem(abs(fft(h)));title('低通滤波器图')figure(4);stem(abs(fft(g)));title('高通滤波器图')%% 3.MALLET分解算法(圆周卷积的快速傅里叶变换实现)sig1=ifft(fft(y).*fft(h)); % 低通(低频分量) sig2=ifft(fft(y).*fft(g)); % 高通(高频分量) figure(5); % 信号图subplot(2,1,1)plot(real(sig1));title('分解信号1')subplot(2,1,2)plot(real(sig2));title('分解信号2')figure(6); % 频谱图subplot(2,1,1)stem(abs(fft(sig1)));title('分解信号1频谱')subplot(2,1,2)stem(abs(fft(sig2)));title('分解信号2频谱')%% 4.MALLET重构算法sig1=dyaddown(sig1); % 2抽取sig2=dyaddown(sig2); % 2抽取sig1=dyadup(sig1); % 2插值sig2=dyadup(sig2); % 2插值sig1=sig1(1,[1:N]); % 去掉最后一个零sig2=sig2(1,[1:N]); % 去掉最后一个零hr=h(end:-1:1); % 重构低通gr=g(end:-1:1); % 重构高通hr=circshift(hr',1)'; % 位置调整圆周右移一位gr=circshift(gr',1)'; % 位置调整圆周右移一位sig1=ifft(fft(hr).*fft(sig1)); % 低频sig2=ifft(fft(gr).*fft(sig2)); % 高频sig=sig1+sig2; % 源信号%% 5.比较figure(7);subplot(2,1,1)plot(real(sig1));title('重构低频信号');subplot(2,1,2)plot(real(sig2));title('重构高频信号');figure(8);subplot(2,1,1)stem(abs(fft(sig1)));title('重构低频信号频谱');subplot(2,1,2)stem(abs(fft(sig2)));title('重构高频信号频谱');figure(9)plot(real(sig),'r','linewidth',2);hold on;plot(y);legend('重构信号','原始信号')title('重构信号与原始信号比较')小波包变换分析信号的MATLAB程序%t=0.001:0.001:1;t=1:1000;s1=sin(2*pi*50*t*0.001)+sin(2*pi*120*t*0.001)+ rand(1,length(t));for t=1:500;s2(t)=sin(2*pi*50*t*0.001)+sin(2*pi*120*t*0.00 1)+rand(1,length(t));endfor t=501:1000;s2(t)=sin(2*pi*200*t*0.001)+sin(2*pi*120*t*0.001)+rand(1,length(t));endsubplot(9,2,1)plot(s1)title('原始信号')ylabel('S1')subplot(9,2,2)plot(s2)title('故障信号')ylabel('S2')wpt=wpdec(s1,3,'db1','shannon');%plot(wpt);s130=wprcoef(wpt,[3,0]);s131=wprcoef(wpt,[3,1]);s132=wprcoef(wpt,[3,2]);s133=wprcoef(wpt,[3,3]);s134=wprcoef(wpt,[3,4]);s135=wprcoef(wpt,[3,5]);s136=wprcoef(wpt,[3,6]);s137=wprcoef(wpt,[3,7]);s10=norm(s130);s11=norm(s131);s12=norm(s132);s13=norm(s133);s14=norm(s134);s15=norm(s135);s16=norm(s136);s17=norm(s137);st10=std(s130);st11=std(s131);st12=std(s132);st13=std(s133);st14=std(s134);st15=std(s135);st16=std(s136);st17=std(s137);disp('正常信号的特征向量');snorm1=[s10,s11,s12,s13,s14,s15,s16,s17] std1=[st10,st11,st12,st13,st14,st15,st16,st17]subplot(9,2,3);plot(s130);ylabel('S130');subplot(9,2,5);plot(s131);ylabel('S131');subplot(9,2,7);plot(s132);ylabel('S132');subplot(9,2,9);plot(s133);ylabel('S133');subplot(9,2,11);plot(s134);ylabel('S134');subplot(9,2,13);plot(s135);ylabel('S135');subplot(9,2,15);plot(s136);ylabel('S136');subplot(9,2,17);plot(s137);ylabel('S137');wpt=wpdec(s2,3,'db1','shannon');%plot(wpt);s230=wprcoef(wpt,[3,0]); s231=wprcoef(wpt,[3,1]); s232=wprcoef(wpt,[3,2]); s233=wprcoef(wpt,[3,3]); s234=wprcoef(wpt,[3,4]); s235=wprcoef(wpt,[3,5]); s236=wprcoef(wpt,[3,6]); s237=wprcoef(wpt,[3,7]);s20=norm(s230);s21=norm(s231);s22=norm(s232);s23=norm(s233);s24=norm(s234);s25=norm(s235);s26=norm(s236);s27=norm(s237);st20=std(s230);st21=std(s231);st22=std(s232);st23=std(s233);st24=std(s234);st25=std(s235);st26=std(s236);st27=std(s237);disp('故障信号的特征向量');snorm2=[s20,s21,s22,s23,s24,s25,s26,s27] std2=[st20,st21,st22,st23,st24,st25,st26,st27]subplot(9,2,4);plot(s230);ylabel('S230');subplot(9,2,6);plot(s231);ylabel('S231');subplot(9,2,8);plot(s232);ylabel('S232');subplot(9,2,10);plot(s233);ylabel('S233');subplot(9,2,12);plot(s234);ylabel('S234');subplot(9,2,14);plot(s235); ylabel('S235');subplot(9,2,16);plot(s236); ylabel('S236');subplot(9,2,18);plot(s237); ylabel('S237');%fftfigurey1=fft(s1,1024);py1=y1.*conj(y1)/1024;y2=fft(s2,1024);py2=y2.*conj(y2)/1024;y130=fft(s130,1024);py130=y130.*conj(y130)/1024; y131=fft(s131,1024);py131=y131.*conj(y131)/1024; y132=fft(s132,1024);py132=y132.*conj(y132)/1024; y133=fft(s133,1024);py133=y133.*conj(y133)/1024; y134=fft(s134,1024);py134=y134.*conj(y134)/1024; y135=fft(s135,1024);py135=y135.*conj(y135)/1024; y136=fft(s136,1024);py136=y136.*conj(y136)/1024; y137=fft(s137,1024);py137=y137.*conj(y137)/1024;y230=fft(s230,1024);py230=y230.*conj(y230)/1024; y231=fft(s231,1024);py231=y231.*conj(y231)/1024; y232=fft(s232,1024);py232=y232.*conj(y232)/1024; y233=fft(s233,1024);py233=y233.*conj(y233)/1024; y234=fft(s234,1024);py234=y234.*conj(y234)/1024; y235=fft(s235,1024);py235=y235.*conj(y235)/1024;y236=fft(s236,1024);py236=y236.*conj(y236)/1024; y237=fft(s237,1024);py237=y237.*conj(y237)/1024;f=1000*(0:511)/1024;subplot(1,2,1);plot(f,py1(1:512));ylabel('P1');title('原始信号的功率谱') subplot(1,2,2);plot(f,py2(1:512));ylabel('P2');title('故障信号的功率谱') figuresubplot(4,2,1);plot(f,py130(1:512));ylabel('P130');title('S130的功率谱') subplot(4,2,2);plot(f,py131(1:512)); ylabel('P131');title('S131的功率谱') subplot(4,2,3);plot(f,py132(1:512)); ylabel('P132'); subplot(4,2,4);plot(f,py133(1:512)); ylabel('P133'); subplot(4,2,5);plot(f,py134(1:512)); ylabel('P134'); subplot(4,2,6);plot(f,py135(1:512)); ylabel('P135'); subplot(4,2,7);plot(f,py136(1:512)); ylabel('P136'); subplot(4,2,8);plot(f,py137(1:512)); ylabel('P137'); figuresubplot(4,2,1);plot(f,py230(1:512)); ylabel('P230');title('S230的功率谱') subplot(4,2,2);plot(f,py231(1:512)); ylabel('P231');title('S231的功率谱') subplot(4,2,3);plot(f,py232(1:512)); ylabel('P232'); subplot(4,2,4);plot(f,py233(1:512)); ylabel('P233'); subplot(4,2,5);plot(f,py234(1:512)); ylabel('P234'); subplot(4,2,6);plot(f,py235(1:512)); ylabel('P235'); subplot(4,2,7);plot(f,py236(1:512));ylabel('P236');subplot(4,2,8);plot(f,py237(1:512));ylabel('P237');figure%plottree(wpt)利用小波变换实现对电能质量检测的算法实现N=10000;s=zeros(1,N);for n=1:Nif n<0.4*N||n>0.8*Ns(n)=31.1*sin(2*pi*50/10000*n);elses(n)=22.5*sin(2*pi*50/10000*n);endendl=length(s);[c,l]=wavedec(s,6,'db5'); %用db5小波分解信号到第六层subplot(8,1,1);plot(s);title('用db5小波分解六层:s=a6+d6+d5+d4+d3+d2+d1');Ylabel('s');%对分解结构【c,l】中第六层低频部分进行重构a6=wrcoef('a',c,l,'db5',6);subplot(8,1,2);plot(a6);Ylabel('a6');%对分解结构【c,l】中各层高频部分进行重构for i=1:6decmp=wrcoef('d',c,l,'db5',7-i);subplot(8,1,i+2);plot(decmp);Ylabel(['d',num2str(7-i)]);end%----------------------------------------------------------- rec=zeros(1,300);rect=zeros(1,300);ke=1;u=0;d1=wrcoef('d',c,l,'db5',1);figure(2);plot(d1);si=0;N1=0;N0=0;sce=0;for n=20:N-30rect(ke)=s(n);ke=ke+1;if(ke>=301)if(si==2)rec=rect;u=2;end;si=0;ke=1;end;if(d1(n)>0.01) % the condition of abnormal append.N1=n;if(N0==0)N0=n;si=si+1;end;if(N1>N0+30)Nlen=N1-N0;Tab=Nlen/10000;end;end;if(si==1)fork=N0:N0+99 %testin g of 1/4 period signals tosce=sce+s(k)*s(k)/10000;end;re=sqrt(sce*200) %re indicate the pike value of .sce=0;si=si+1;end;end;NlenN0n=1:300;figure(3)plot(n,rec);基于小波变换的图象去噪Normalshrink算法function[T_img,Sub_T]=threshold_2_N(img,levels)% reference :image denoising using wavelet thresholding[xx,yy]=size(img);HH=img((xx/2+1):xx,(yy/2+1):yy);delt_2=(std(HH(:)))^2;%(median(abs(HH(:)))/0. 6745)^2;%T_img=img;for i=1:levelstemp_x=xx/2^i;temp_y=yy/2^i;% belt=1.0*(log(temp_x/(2*levels)))^0.5;belt=1.0*(log(temp_x/(2*levels)))^0.5; %2.5 0.8%HLHL=img(1:temp_x,(temp_y+1):2*temp_y);delt_y=std(HL(:));T_1=belt*delt_2/delt_y;%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%T_HL=sign(HL).*max(0,abs(HL)-T_1);%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% %%%%%%%%%T_img(1:temp_x,(temp_y+1):2*temp_y)=T_HL;Sub_T(3*(i-1)+1)=T_1;%LHLH=img((temp_x+1):2*temp_x,1:temp_y);delt_y=std(LH(:));T_2=belt*delt_2/delt_y;%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% %%%%%%%%%T_LH=sign(LH).*max(0,abs(LH)-T_2);%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%T_img((temp_x+1):2*temp_x,1:temp_y)=T_LH;Sub_T(3*(i-1)+2)=T_2;%HHHH=img((temp_x+1):2*temp_x,(temp_y+1):2*te mp_y);delt_y=std(HH(:));T_3=belt*delt_2/delt_y;%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%T_HH=sign(HH).*max(0,abs(HH)-T_3);%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%T_img((temp_x+1):2*temp_x,(temp_y+1):2*tem p_y)=T_HH;Sub_T(3*(i-1)+3)=T_3;end。
小波分析课件_常用小波函数及Matlab常用指令

General characteristics: Compactly supported wavelets with least asymmetry and highest number of vanishing moments for a given support width. Associated scaling filters are near linear-phase filters. Family Symlets Short name sym Order N N = 2, 3, ... Examples sym2, sym8
bior Nr.Nd
bior 1.1 bior 1.3 bior 1.5 bior 2.2 bior 2.4 bior 2.6 bior 2.8
ld effective length of Lo_D 2 6 10 5 9 13 17
lr effective length of Hi_D 2 2 2 3 3 3 3
Family Short name Order Nr,Nd r for reconstruction d for decomposition
Biorthogonal bior Nr = 1 , Nd = 1, 3, 5 N, 3, 5, 7, 9 Nr = 4 , Nd = 4 Nr = 5 , Nd = 5 Nr = 6 , Nd = 8
图:
在命令窗口输入waveinfo('haar')
2、db系列小波
DBINFO Information on Daubechies wavelets. Daubechies Wavelets General characteristics: Compactly supported wavelets with extremal phase and highest number of vanishing moments for a given support width. Associated scaling filters are minimum-phase filters. Family Daubechies Short name db Order N N strictly positive integer Examples db1 or haar, db4, db15
基于MATLAB的小波变换在信号分析中应用的实现

,
3.4 小波阈值去噪
谢
谢
谨向各位老师和同学表示最崇高的 敬意和由衷的感谢!
一般来说,现实中的图像都是带噪图像,所 以为了后续更高层次的处理,很有必要对图像进 行去噪。图像去噪的目的就是为了在减少图像噪 声的同时,尽可能多的保持图像的特征信息。图 像噪声来自于多方面,有的来自于系统外部干扰, 也有的来自于系统内部的干扰。减少噪声的方法 可以在图像空间域或在图像变换域中完成。
3.2邻域平均法 3.2邻域平均法
下面是去噪的仿真: I=imread('tire.tif');%பைடு நூலகம்取图像 I=imread('tire.tif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为 0.005的高斯噪声 0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均 采用MATLAB中的函数filter2对受噪声干扰的图像进行均 值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 %模板尺寸为3
3.3 中值滤波法
J=imnoise(I,'gaussian',0,0.005); %添加高斯噪声, %添加高斯噪声, 噪声密度为0.02 噪声密度为0.02 Subplot (2,3,2);imshow(J) title('添加高斯噪声后的图像') title('添加高斯噪声后的图像') K1=medfilt2(J); %在默认的3×3的邻域窗中进行 %在默认的3 中值滤波 subplot(2,3,3);imshow(K1) title('默认的3 title('默认的3×3的邻域窗的中值滤波图像') 的邻域窗的中值滤波图像') K2=medfilt2(J,[5 5]); %在5×5的邻域窗中进行中 %在 值滤波
基于MATLAB的小波分析应用(第二版)(周伟)5-13章 (2)

第6章 小波变换与图像处理
2. 图像的小波分解实例 下面通过两个例子说明如何对图像进行单尺度分解和多 尺度分解,并提取多尺度分解的小波系数。 【例6-1】 对图像进行单尺度分解。 在本例中说明如何对图像进行单尺度分解。程序中调用 函数dwt2对图像进行分解,并画出图像分解的低频分量和水 平、垂直和斜线方向的三个高频分量,可以看出低频分量表 现了图像的轮廓,而高频分量表现了图像的细节。 程序代码如下:
第6章 小波变换与图像处理 subplot(231);image(wcodemat(chd2,nbc)); title('尺度2水平方向的高频系数'); subplot(232);image(wcodemat(cvd2,nbc)); title('尺度2垂直方向的高频系数'); subplot(233);image(wcodemat(cdd2,nbc)); title('尺度2斜线方向的高频系数');
第6章 小波变换与图像处理
2. 图像的平稳小波变换实例 下面举例说明函数swt2的用法。 程序代码如下:
%加载图像 load tire; nbc = size(map,1); colormap(pink(nbc)); cod_X = wcodemat(X,nbc); subplot(221)
第6章 小波变换与图像处理
第6章 小波变换与图像处理
C = [ A(N) | H(N) | V(N) | D(N) | ... H(N-1) | V(N-1) | D(N-1) | ... | H(1) | V(1) | D(1) ]
式中,A为低频系数;H为水平高频系数;V为垂直高频系 数;D为斜线高频系数;所有向量均以列向量存储在矩阵C中。
基于MATLAB的小波变换在信号分析中应用的实现

基于MATLAB的小波变换在信号分析中应用的实现院系:应用技术学院专业:电子信息工程*名:***指导教师单位:应用技术学院指导教师姓名:王庆平指导教师职称:讲师二零一一年六月The application of wavelet transform based on MTLAB in signalanalysisFaculty:Application and Technology InstituteProfession:Electronic information engeeringName:Li ChengyunTutor’s Unit:Application and Technology InstituteTutor:Wang QingpingTutor’s Title:LecturerJune 2011目录摘要 (1)ABSTRACT (2)前言 (3)第1章绪论 (4)1.1本文的研究背景意义 (4)1.2国内外研究现状 (5)1.3本文的研究内容 (7)第2章 MATLAB简介 (8)2.1MATLAB的概况 (8)2.2MATLAB6.1的功能 (8)2.3MATLAB的主要组成部分 (9)2.4MATLAB的语言特点 (10)第3章基本理论 (12)3.1从傅里叶变换到小波变换 (12)3.1.1 傅里叶变换 (12)3.1.2 短时傅里叶变换 (13)3.1.3 小波变换 (14)3.2连续小波变换 (15)3.3离散小波变换 (17)3.4小波包分析 (18)3.5多分辨率分析与M ALLAT算法 (19)3.5.1 多分辨率分析 (19)3.5.2 Mallat算法 (19)3.6本章小结 (20)第4章小波阈值法图像去噪 (21)4.1图像去噪 (21)4.1.1 邻域平均法 (22)4.1.2 中值滤波法 (24)4.2小波阈值去噪 (27)4.2.1 阈值去噪原理 (28)4.2.2 选取阈值函数 (28)4.2.3 几种阈值选取方法 (29)4.3小波阈值仿真 (31)第5章小波变换在图像边缘检测中的应用 (33)5.1图像边缘检测概述 (33)5.2常见的边缘检测算法。
基于Matlab的小波分析与设计

目录摘要 (1)ABSTRACT (3)前言 (3)1概述 (3)1.1研究背景 (3)1.2研究内容 (4)1.3 MA TLAB的概况 (4)1.4 MA TLAB的语言特点 (5)2小波分析的基本理论 (6)2.1傅里叶变换 (6)2.2小波变换 (7)2.2.1连续小波变换 (7)2.2.2离散小波变换 (8)2.2.3小波包分析 (9)3小波分析在图像处理中的应用 (9)3.1小波分析用于图像压缩 (9)3.2小波分析用于图像去噪 (13)3.3小波分析用于图像增强 (18)3.3.1图像钝化 (20)3.3.2图像锐化 (23)3.4小波分析用于图像融合 (25)4 总结 (29)致谢 (29)基于Matlab的小波分析与设计学生:王磊指导老师:贾群淮南师范学院电气信息工程学院摘要:小波分析是指用有限长或快速衰减的、称为母小波的振荡波形来表示信号。
该波形被缩放和平移以匹配输入的信号。
小波变换分成两个大类:离散小波变换和连续小波变换。
两者的主要区别在于,连续变换在所有可能的缩放和平移上操作,而离散变换采用所有缩放和平移值的特定子集。
小波分析理论作为新的时频分析工具,在信号分析和处理中得到了很好的应用。
平面图像可以看成是二维信号,因此,小波分析很自然地应用到了图像处理领域。
图像压缩、去噪、、增强、融合是图像预处理中应用非常广泛的技术,小波变换由于其自身的优良特性而在图像处理中得到了越来越多的应用。
本文从基本理论出发,首先对小波变换进行了详尽而深刻的阐述。
循序渐进地介绍了从概念到小波分析等一系列相关内容,包括连续小波变换、离散小波变换和小波包分析。
最终引出小波分析在Matlab中的应用的方法。
对小波变换在图像处理中的应用本文作了重点研究。
关键词:小波分析;图像压缩;图像去噪;图像增强;图像融合;matlabWavelet analysis and design based on MATLABNane:wangleiTutor:jiaqunHuainan Normal University School of electrical and Information Engineering ABSTRACT:Wavelet analysis is the use of limited length or fast attenuation, known as mother wavelet representation of a signal waveform. The waveform is zooming and panning to match the input signal. Wavelet transform is divided into two categories: discrete wavelet transform and continuous wavelet transform. The essential difference between both is, continuous transformation in all possible zooming and panning operation, and discrete transform using all values of a specific subset of zooming and panning. The theory of wavelet analysis as a new time-frequency analysis tool in signal analysis and processing, has a very good application. Planar image can be viewed as a two-dimensional signal, therefore, wavelet analysis naturally is applied to the image processing field. Image compression, denoising, enhancement, fusion, image pre-processing is very extensive application of the technology of wavelet transform, because of itsexcellent characteristics in image processing has been applied more and more. In this paper, starting from the basic theory of wavelet transform, the first detailed and profound development. Gradual introduction from concept to the wavelet analysis and a series of related content, including continuous wavelet transform, discrete wavelet transform and wavelet packet analysis. Eventually lead to wavelet analysis application in Matlab method. The wavelet transform application in image processing this paper focuses on the study of.Keywords: wavelet analysis; image compression; image denoising; image enhancement; image fusion; Matlab前言传统的信号理论,是建立在Fourier分析基础上的,而Fourier变换作为一种全局性的变化,其有一定的局限性。
小波分析信号处理matlab

时间采样频率是频谱信号的信号周期 频率离散间隔对应时间信号的信号同期
15
2. f(t) 的频谱(线频谱)
f(t)分解为傅氏级数后包含哪些频率分量和各分量所占“比重 ”用长度与各次谐波振幅大小相对应的线段进行表示,并按频率的 高低把它们依次排列起来所得到的图形,称为 f(t) 的频谱。
幅度 X(k)谱 X : R 2(k)XI2(k)
相位谱 (k): arcXtI(g k)
XR(k)
利用 FFT 进行频谱分析的实现过程框图为:
17
离散时间、连续频率—序列的傅里叶变换
X(ej) x(n)ejn n
x(n)21 X(ej)ejnd
时域的离散化造成频域的周期 延拓,而时域的非周期对应于 频域的连续
小波分析信号处理matlab
Linear space(线性空间)
S is a set, if a S and b S a+b S ( 加法满足对称性、交换律和结合律)
R(or C), a S a S
(数乘满足结合律和分配律,有0元) We call S a linear space.
Y=kx与y=kx+b
(标准正交系 ), alsocalledorthonormalsystem.
7
Basis(基)
xk is a subset of Hilbert space X, if
1. x X , x ck xk where ck are numbers 线性表出 2. ck xk 0 ck 0 线性无关向量
28
小波分析在一维信号处理中的应用
小波变换就是将 “ 原始信号 s ” 变换 成 “ 小波 系数 w ” ,w=[wa , wd] 包括近似(approximation)系数wa 与细节(detail)系数wd 近似系数wa---平均成分(低频) 细节系数wd---变化成分(高频)
小波分析MATLAB工具箱简介

小波分析MATLAB工具箱简介MATLAB的小波分析一、小波分析用于降噪的基本过程1、分解过程:选定一种小波,对信号进行N层分解;2、作用阈值过程:对分解得到的各层系数选择一个阈值,并对细节系数进行软阈值处理;3、重建过程:降处理后的系数通过小波重建恢复原始信号;二、基本降噪模型函数一维离散小波分解命令Dwt [cA cD] = dwt(X,’wname’)使用小波’wname’对型号X 进行单层分解,求得的近似系数存放于数组cA中,细节系数存放在数组cD 中;[cA cD] = dwt(X,’wname’,’mode’,MODE) 利用MODE方式进行扩展[cA cD] = dwt(X,Lo_D,Hi_D) 利用指定滤波器进行小波分解Wanedec [C, L] = wavedec(X,N,’wname’) 使用wname的小波进行N层分解,C为层数,L为各层系数Idwt X= idwt(cA,cD,’wname’) 利用小波wname把近似系数CA和CD重建为上一层近似系数XX= idwt(cA,cD,’wname’,L) 重建至L层Waverec X= waverec(C,L,‘wname‘)重建为原始信号Wrcoef X = wrcoef(‘type’,C,L,’wname’,N) 通过分解系数重构指定的数,type为a 或者dX= wrcoef(‘type’,C,L,’wname’) 把分解系数重建至最高层Upcoef Y= upcoef(O,X,’wname’,N)用适当的滤波器作用在X上N次,求得重建系数Y,O为a表示低通滤波器,d表示高通滤波器Detcofe D= detcoef(C,L,N)从分解系数中提取第N层近似系数D= detcoef(C,L,N)提取至最后一层Appcoef A= appcoef(C,L,’wname’,N) 用小波从分解系数中提取第N层系数Wnoisest stdc = woisest(c,l,s)根据传入的小波分解系数[c,l]对s中标识的小波层数求得其标准差,作为对噪声强度的估计;Ddencmp [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X) 根据传入的参数IN1 和IN2所指定的方式,对输入信号X求得其降噪或压缩的各级阈值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 小波分析中的通用函数
举例: %计算与bior3.5相关联分解滤波器DF和重构滤波器RF [RF,DF]=biorwavf('bior3.5'); %计算所需的四个滤波器 [Lo_D,Hi_D,Lo_R,Hi_R]=biorfilt(DF,RF); subplot(221);stem(Lo_D); title('分解低通滤波器');grid; subplot(222);stem(Hi_D); title('分解高通滤波器');grid; subplot(223);stem(Lo_R); title('重构低通滤波器');grid; subplot(224);stem(Hi_R); title('重构高通滤波器');grid; 输出结果(如图6.1所示);
6.1 小波分析中的通用函数
举例: uam=dyadup(a,0,'m')%插值矩阵a的偶数行或偶数列 uam = 1 0 2 0 0 0 3 0 4 0 0 0 5 0 6 0 0 0 7 0 8
6.1 小波分析中的通用函数
4.wavefun 功能:小波函数和尺度函数 格式:①[phi,psi,Xval]=wavefun(‘wname’,iter) ②[phi1,hsi1,phi2,psi2,Xval]=wavefun(‘wname’,iter) ③[psi,Xval]=wavefun(‘wname’,iter) ④wavefun(‘wname’,a,b) 说明:该函数用来返回小波函数和相应的尺度函数(在尺度函数存在的 情况下)的近似值。正整数iter决定了反复计算的次数,从而确定了近 似值的精确程度。 对于一个正交小波,格式①返回尺度函数和小波函数,X在支撑空间上 有2iter个点。 对于一个双正交小波,格式②返回分别用于分解的尺度函数(1)和小 波函数(1) 即重构的尺度函数(2)和小波函数(2)。 对于一个Meyer小波,有:[phi,psi,Xval]=wavefun( ‘wname’,iter)。 对 于 一 个 M o r l e t 小 波 或 M e x i c a n H a t 小 波 , 有 [psi,Xval]=wavefun(‘wname’,iter)。 对 于 格 式 ④ , a , b 是 正 整 数 , 且 格 式 ④ 等 价 于 wavefun(‘wname’,max(a,b))。它计算尺度函数和小波函数的近似值 并画出图形。
use = uso =
a
=
1
3 5 7
2
4 6 8
6.1 小波分析中的通用函数
举例: uar=dyadup(a,0,'r')%插值矩阵a的偶数行 uac=dyadup(a,1,'c')%插值矩阵a的奇数列 输出结果: uar = 1 2 0 0 3 4 0 0 5 6 0 0 7 8 uac = 0 1 0 2 0 0 3 0 4 0 0 5 0 6 0 0 7 0 8 0
波函数(扩展名为*.inf或*.asc);对于②、③,该函数可以把一个新的小波函 数加到工具箱里,Fn是Family Name的缩写,Fsn是Family Short Name的缩写, Wt是Wavelet Type的缩写。当Wt=1时,为正交小波,当Wt=2时,为双正交小波, 当Wt=3时,为带尺度函数的小波,当Wt=4时,为不带尺度函数的小波。Nums为字 符串的个数,File为小波函数名,对于Wt为3、4的情况B为小波有效支撑的上下 边界;对于④,该函数是用来删除一小波,N为小波函数名;对于⑤、⑥,该函 数用来保存先前的小波函数;对于⑦、⑧、⑨,该函数是用来读取小波函数。
第六章 基于MATLAB的小波分析
主讲人:第四组 庞爽爽
第六章 基于MATLAB的小波分析
MATLAB 是美国 Mathworks 公司的产品, MATLAB 是矩阵 (Matrix)和实验室(Laboratory )的缩写,其强大的 科学计算与可视化功能、简单易用的开放式可扩展环境 以及多达30多个面向不同领域而扩展的工具箱(Toolbox) 支持,使得MATLAB 在许多学科领域中成为计算机辅助设 计与分析、算法研究和应用开发的基本工具和首选平台。 MATLAB小波分析工具箱是在MATLAB中实现各种小波变换 的基础。 MATLAB 小波分析工具箱中提供了两种处理方式, 命令行和图形界面,命令行提供了灵活的处理方式,而 且可以和 Matlab 的强大接口功能连接,使用户方便地导 出各种小波工具。而图形界面方式(GUI)则具有操作简 便、界面友好的特点。
6.1 小波分析中的通用函数
举例: iter=10;wav='sym4';%设置小波的名字和计算的次数 %下面用迭代算法计算小波函数的近似值并画出波形图 for I=1:iter [phi,psi,Xval]=wavefun(wav,I); plot(Xval,psi); hold on end title('小波函数sym4的近似值(iter从1到10)'); hold off 输出结果:(如图6.2所示)
6.1 小波分析中的通用函数
%下面列出在MATLAB中存在的所有的小波函数 wavemngr('read',1) 输出结果: ans = =================================== Haar haar =================================== Daubechies db -----------------------------db1 db2 db3 db4 db5 db6 db7 db8 db9 db10 db** =================================== BiorSplines bior -----------------------------bior1.1 bior1.3 bior1.5 bior2.2 bior2.4 bior2.6 bior2.8 bior3.1 bior3.3 bior3.5 bior3.7 bior3.9 bior4.4 bior5.5 bior6.8 ===================================
6.1 小波分析中的通用函数
3.dyadup 功能:二元插值 格式:①Y= dyadup(X,evenodd) ②Y= dyadup(X) ③Y= dyadup(X,evenodd,’type’) ④Y= dyadup(X,’type’, evenodd) 说明:该函数是用来从向量X中每隔一个元素填充一个0元素组成向量Y, 该函数在小波重构算法中非常有用。对于格式①,如果evenodd为偶数, 则进行偶插值,即Y(2k-1)=X(k);Y(2k)=0;如果evenodd为奇数, 则进行奇插值,即Y(2k-1)0,Y(2k)=X(k);如果省略evenodd的值 (即格式②),则evenodd=0,Y(2k-1)=X(k),Y(2k)=0。对于格式 ③④的情况,X是一个矩阵,如果type=c,则插值矩阵X偶(或奇)数列, 如果type=r, 则插值矩阵X偶(或奇)数行,如果type=m, 则抽取矩阵X 偶(或奇)数行和偶(或奇)数列。
6.1 小波分析中的通用函数
图6.1 与bior3.5相关联的分解滤波器和重构滤波器
6.1 小波分析中的通用函数
2.dyaddown
功能:二元取样 格式:①Y= dyaddown(X,evenodd) ②Y= dyaddown(X) ③Y= dyaddown(X,evenodd,’type’) ④Y= dyaddown(X,’type’, evenodd) 说明:该函数是用来从向量X中每隔一个元素抽取一个元素 组成向量 Y。对于格式①,如果evenodd 为偶数,则进行偶 取样,即Y(k)=X(2k);如果evenodd为奇数,则进行奇取 样,即 Y ( k ) =X(2k+1) ,如果省略 evenodd 的值(即格式 ②),则evenodd=0,Y(k)=X(2k)。对于格式③④的情况, X是一个矩阵,如果type=c,则抽取矩阵X偶(或奇)数列, 如果type=r, 则抽取矩阵 X 偶(或奇)数行,如果 type=m, 则抽取矩阵X偶(或奇)数行和偶(或奇)数列。
6.1 小波分析中的通用函数 小波分析中的通用函数
5.wavemngr 功能:小波管理 格式:①wavemngr(‘create’) ②wavemngr(‘add’,Fn,Fsn,Wt,Nums,File) ③wavemngr(‘add’,Fn,Fsn,Wt,Nums,File,B) ④wavemngr(‘del’,N) ⑤wavemngr(‘restore’) ⑥wavemngr(‘restore’,In2) ⑦Out1=wavemngr(‘read’) ⑧Out1=wavemngr(‘read’,In2) ⑨Out1=wavemngr(‘read_asc’) 说明:该函数是一个用于小波管理的函数,它可以对小波进行新建、添 加、删除、存储和读取操作。对于格式①,该函数可以用来创造一个新的小
6.1 小波分析中的通用函数
举例: s=1:5%定义一个元素有1到5的向量s use=dyadup(s,0)%进行偶数序号插值 uso=dyadup(s,1)%进行奇数序号插值 a=[1,2;3,4;5,6;7,8]%定义一个矩阵a 输出结果:
s
=
1
1 0
2
0 1 0
3
2 2
4
0 0
5
3 3 0 0 4 4 0 0 5 5 0
6.1 小波分析中的通用函数
用户可以实现与小波相关的滤波器组进行信号的插值和 采样、计算小波函数和尺度函数以及小波管理等功能。 表6.1 通用小波变换函数
6.1 小波分析中的通用函数
1.biorfilt 功能:双正交小波滤波器组