您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 小波去噪matlab程序代码
小波去噪matlab程序代码 1、小波去噪实现步骤 (1)二维信号的小波分解。选择一个小波和小波分解的层次N,然后计算信号s到第N层的分解。 (2)对高频系数进行阈值量化。对于从1~N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。 (3)二维小波重构。根据小波分解的第N层的低频系数和经过修改的从第一层到第N的各层高频系数,计算二维信号的小波重构 2、Matlab函数介绍 (1)wavedec2函数 该函数用于对多尺度二维小波进行分解,其常用调用格式: [C,S]=wavedec2(X,N,wname):用小波函数wname对信号X在尺度N上的二维分解,N是严格正整数。 (2)wrcoef2函数 该函数用于对二维小波系数进行单支重构,其调用格式: X=wrcoef2(type,C,S,wname,N):用指定的小波函数wname进行N尺度重构。当type=a时,仅对信号的低频部分进行重构,此时N可以为0;当type=h(或v/d)时,对信号(水平、垂直、对角)的高频进行重构,N为严格正整数。 (3)wthcoef2函数 该函数用于对二维信号的小波系数阈值进行处理,常用调用格式: NC=wthcoef2(type,C,S,N,T,SORH):返回经过小波分解结构[C,S]进行处理后的新的小波分解向量NC,[NC,S]即构成一个新的小波分解结构。N是一个包含高频尺度的向量,T是相应的阈值,且N和T长度须相等。返回type(水平、垂直、对角线)方向的小波分解向量NC。参数SORH用来对阈值方式进行选择,当SORH=s时,为软阈值,当SORH=h时,为硬阈值。 3、小波去噪Matlab实例 实例1: clearall; loadfacets; subplot(2,2,1);image(X); colormap(map); xlabel((a)原始图像); axissquare %产生含噪声图像 init=2055615866; randn(seed,init); x=X+50*randn(size(X)); subplot(2,2,2);image(x); colormap(map); xlabel((b)含噪声图像); axissquare %下面进行图像的去噪处理 %用小波函数coif3对x进行2层小波分解 [c,s]=wavedec2(x,2,coif3); %提取小波分解中第一层的低频图像,即实现了低通滤波去噪 %设置尺度向量 n=[1,2]; %设置阈值向量p p=[10.12,23.28]; %对三个方向高频系数进行阈值处理 nc=wthcoef2(h,c,s,n,p,s); nc=wthcoef2(v,nc,s,n,p,s); nc=wthcoef2(d,nc,s,n,p,s); %对新的小波分解结构[c,s]进行重构 x1=waverec2(nc,s,coif3); subplot(2,2,3);image(x1); colormap(map); xlabel((c)第一次去噪图像); axissquare %对nc再次进行滤波去噪 xx=wthcoef2(v,nc,s,n,p,s); x2=waverec2(xx,s,coif3); subplot(2,2,4);image(x2); colormap(map); xlabel((d)第二次去噪图像); axissquare《spanstyle=font-size:14px》《spanstyle=font-size:14px》《spanstyle=font-size:18px;color:#3366ff》
本文标题:小波去噪matlab程序代码
链接地址:https://www.777doc.com/doc-6838893 .html