Matlab 小波工具箱入门

上传人:206****923 文档编号:36275956 上传时间:2018-03-27 格式:DOCX 页数:11 大小:273.34KB
返回 下载 相关 举报
Matlab 小波工具箱入门_第1页
第1页 / 共11页
Matlab 小波工具箱入门_第2页
第2页 / 共11页
Matlab 小波工具箱入门_第3页
第3页 / 共11页
Matlab 小波工具箱入门_第4页
第4页 / 共11页
Matlab 小波工具箱入门_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Matlab 小波工具箱入门》由会员分享,可在线阅读,更多相关《Matlab 小波工具箱入门(11页珍藏版)》请在金锄头文库上搜索。

1、使用 MATLAB 小波工具箱进行小波分析:如上图所示的小波分解过程,可以调用 wfilters 来获得指定小波的分解和综 合滤波器系数,例如:% Set wavelet name. wname = db5;% Compute the four filters associated with wavelet name given % by the input string wname. Lo_D,Hi_D,Lo_R,Hi_R = wfilters(wname); subplot(221); stem(Lo_D); title(Decomposition low-pass filter); su

2、bplot(222); stem(Hi_D); title(Decomposition high-pass filter); subplot(223); stem(Lo_R); title(Reconstruction low-pass filter); subplot(224); stem(Hi_R); title(Reconstruction high-pass filter); xlabel(The four filters for db5)% Editing some graphical properties,% the following figure is generated. 以

3、上例子,得到db5小波的分解和综合滤波器系数,并显示出来。下面是 wfilters 的具体用法:Wname 可指定为列表中的任意一种小波,直接调用Lo_D,Hi_D,Lo_R,Hi_R = wfilters(wname)会返回分解和综合滤波器系数。如果只想返回其中的一些而不是全部,可以调 用F1,F2 = wfilters(wname,type)其中type可指定为 4 种类型,每种类型的具体意义详见 matlab wfilters 帮助。查看具体小波的信息waveinfo(wname)获得一个标准的正交变换/双正交变换 的尺度和小波函数(数字近似值)PHI,PSI,XVAL = wavefu

4、n(wname,ITER)PHI1,PSI1,PHI2,PSI2,XVAL = wavefun(wname,ITER)例如% Set number of iterations and wavelet name. iter = 10;wav = sym4; % Compute approximations of the wavelet function using the% cascade algorithm. for i = 1:iter phi,psi,xval = wavefun(wav,i); plot(xval,psi); hold on endtitle(Approximations

5、 of the wavelet ,wav, . for 1 to ,num2str(iter), iterations); hold off 如果已知小波分解滤波器系数,计算小波变换的最简单方法就是C,S = wavedec2(X,N,wname)C,S = wavedec2(X,N,Lo_D,Hi_D)反过来,已知小波综合滤波器系数,计算反小波变换,只需X = waverec2(C,S,wname)X = waverec2(C,S,Lo_R,Hi_R)% 图片的小波分解clear allclc im = imread(././std_images/lena.bmp); %灰度im = dou

6、ble(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

7、);% figure,colormap graysubplot(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 来提取近似矩阵和的

8、 n 级的某一 个细节矩阵。A = appcoef2(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.4 toolboxclear allclc im = imre

9、ad(././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.4 toolbox 的说明文档官方网站。小波综合(重建):waverec2X = waverec2(C,S,wname)X = waverec2(C,S,Lo_R,Hi_R)C,S是使用小波分解函数 wavedec2 得到的小波矢量和矢量描述矩阵,或者符 合这种规定形式的数据。返回 X 是实

10、数图像矩阵,由于计算误差,可能需要经 过一些处理才能正常显示。% 小波综合clear allclcim = 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);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号