Matlab小波工具箱入门.docx
- 文档编号:28116477
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:10
- 大小:200.06KB
Matlab小波工具箱入门.docx
《Matlab小波工具箱入门.docx》由会员分享,可在线阅读,更多相关《Matlab小波工具箱入门.docx(10页珍藏版)》请在冰豆网上搜索。
Matlab小波工具箱入门
使用MATLAB小波工具箱进行小波分析:
fKJURE7S\
Imir-kuklTUl . 如上图所示的小波分解过程,可以调用wfilters来获得指定小波的分解和综合 滤波器系数,例如: %Setwaveletname. wname='db5: %Computethefourfiltersassociatedwithwaveletnamegiven %bytheinputstringwname. [Lo_D,Hi_D,Lo_R,Hi_R]=wfilters(wname); subplot(221);stem(Lo_D); title('Decompositionlow-passfilter'); subplot(222);stem(Hi_D); title('Decompositionhigh-passfilter'); subplot(223);stem(Lo_R); title('Reconstructionlow-passfilter'); subplot(224);stem(Hi_R);title('Reconstructionhigh-passfilter');xlabel('Thefourfiltersfordb5')%Editingsomegraphicalproperties,%thefollowingfigureisgenerated. 以上例子,得到’db5'小波的分解和综合滤波器系数,并显示出来。 下面是 wfilters的具体用法: wfilters WavdeiSzcis [Lo_D,Hi^D・LO-BL二wfilrerst*vnarrs*I [Fl,F2J-wfilters{rvra^w,■右 Dt5trtption [lo_C/Hz.t>fto_RfHiA]=wfilt&ra(*vr: ai: eTicomputt^fourChersassociatedx\iilithe«ih&f Helowotnpinfilersare *itO-Di6號ehm血归nk'v-pa^sfltn •i>oi_R1xherec&nstnKboaL«v-passfiber ・i_R,Therrcon^oructicohigbp章鹑fiher Ataihbkmh«gpuJorbiwho戡ndwivdctTunica'丁辭口肚主*arclimdmtheublcbek? ^' Wiv«E«tFikiiiltes Daubwhiei ・dbl*sr'ha«r1r*^2*rdblOBr*” C^iflets l 'coifl*t*.*t1coi£51 Symlets • ■sym21f….声1syro81#■…J3yrn.4S* ;DU<«reXlever dm^yrl biorl-1','biorl.3\'biorl.S ・bicrB.l1f*bior3.3\%込医3・h・・bioc3・T Tbicr3,9rf'bior^,4\'biorS.S^'biorG.S7 wfilters(•vnaiKc*f1type-*Irehsnsthefoliatingfitters. Wname可指定为列表中的任意一种小波,直接调用 [Lo_D,Hi_D,Lo_R,Hi_R]=wfilters('wname') 会返回分解和综合滤波器系数。 如果只想返回其中的一些而不是全部,可以调用 [F1,F2]=wfilters('wname','type') 其中’type'可指定为4种类型,每种类型的具体意义详见matlabwfilters 帮助。 查看具体小波的信息 waveinfo(‘wname) 获得一个标准的正交变换/双正交变换的尺度和小波函数(数字近似值) [PHI,PSI,XVAL]=wavefun('wname',ITER) [PHI1,PSI1,PHI2,PSI2,XVAL]=wavefun('wname',ITER) 例如 %Setnumberofiterationsandwaveletname. iter=10; wav='sym4: %Computeapproximationsofthewaveletfunctionusingthe %cascadealgorithm. fori=1: iter [phi,psi,xval]=wavefun(wav,i); plot(xval,psi); holdon end title(['Approximationsofthewavelet',wav,... 'for1to',num2str(iter),'iterations']); holdoff 如果已知小波分解滤波器系数,计算小波变换的最简单方法就是 [C,S]=wavedec2(X,N,'wname') [C,S]=wavedec2(X,N丄o_D,Hi_D) 反过来,已知小波综合滤波器系数,计算反小波变换,只需 X=waverec2(C,S,'wname') X=waverec2(C,S,Lo_R,Hi_R) %图片的小波分解 clearall clc im=imread('../../std_images/lena.bmp);%灰度 im=double(im); [Lo_D,Hi_D]=wfilters('haar;'d'); [C,S]=wavedec2(im,1,Lo_D,Hi_D); isize=prod(S(1,: )); % cA=C(1: isize); cH=C(isize+(1: isize)); cV=C(2*isize+(1: isize)); cD=C(3*isize+(1: isize)); % cA=reshape(cA,S(1,1),S(1,2)); cH=reshape(cH,S(2,1),S(2,2)); cV=reshape(cV,S(2,1),S(2,2));cD=reshape(cD,S(2,1),S(2,2));% figure,colormapgraysubplot(221),imagesc(cA);subplot(222),imagesc(cH);subplot(223),imagesc(cV);subplot(224),imagesc(cD); 其中C是小波变换后的结果数据,以一维矢量的形式组织,S是二维数组,记录了C中数据的分布形式,详见matlab的帮助文档。 此外,dwtmode可以设定输入的边界处理方式。 提取小波的系数。 前面使用的wavedec2得到的[C,S]不是非常的直观,可以利用小波工具箱中的函数appcoef2和detcoef2来提取近似矩阵和的n级的某一个细节矩阵。 A=即pcoef2(C,S,'wname',N) A=appcoef2(C,S,'wname') D=detcoef2(O,C,S,N) 针对特定的小波系数矩阵进行阈值化处理 NC=wthcoef2('type',C,S,N,T,SORH) NC=wthcoef2('type',C,S,N) NC=wthcoef2('a',C,S) NC=wthcoef2('t',C,S,N,T,SORH) 使用wave2gray来显示小波分解的结果 %使用wave2gray显示小波分解的结果,来自dipum_1.1.4toolbox clearallclc im=imread('../../std_images/lena.bmp);%灰度 im=double(im); [Lo_D,Hi_D]=wfilters('haar;'d'); [C,S]=wavedec2(im,2,Lo_D,Hi_D); wave2gray(C,S); 关于wave2gray更多用法详见dipum_1.1.4toolbox的说明文档[官方网站]。 小波综合(重建): waverec2 X=waverec2(C,S,'wname') X=waverec2(C,S,Lo_R,Hi_R) [C,S]是使用小波分解函数wavedec2得到的小波矢量和矢量描述矩阵,或者符合这种规定形式的数据。 返回X是实数图像矩阵,由于计算误差,可能需要经过一些处理才能正常显示。 %小波综合 clearall clc im=imread('../../std_images/lena.bmp);%灰度 im=double(im); [Lo_D,Hi_D]=wfilters('haar;'d'); [C,S]=wavedec2(im,2,Lo_D,Hi_D); X=waverec2(C,S,'haar'); %或者 %[Lo_R,Hi_R]=wfilters('haar','r'); %X=waverec2(C,S,Lo_D,Hi_D); X=(X-min(X(: )))/(max(X(: ))-min(X(: ))); figure,imshow(X); —凶 F>1«liltVioImm*1ToolsViodo*Kelp □ 11■□
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 工具箱 入门