logo资料库

小波降噪程序.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
信号的小波降噪 小波分析的重要应用之一就是用于信号降噪。在此,简要地阐述一下小波分析对信号降 噪的基本原理。 我们知道,一个含噪的一维信号模型可表示为如下形式: )( ks  )( kf   ( ), kke  ,1,0  , n  1 其中, )(ks 为含噪信号, )(kf 为有用信号, )(ke 为噪声信号。这里我们认为 )(ke 是一个 1 级高斯白噪声,通常表现为高频信号,而实际工程中 )(kf 通常为低频信号或者是一些比 较平稳的信号。因此我们可按如下的方法进行降噪处理。 首先对信号进行小波分解,一般地,噪声信号多包含在具有较高频率的细节中,从而, 可利用门限阀值等形式对所分解的小波系数进行出来,然后对信号进行小波重构即可达到对 信号降噪的木的。对信号降噪实质上是一直信号中的无庸部分,恢复信号中有用部分的过程。 1. 噪声在小波分解下的特性 在此,我们将噪声 e 看做普通信号分析以下它的相关性、频谱和频率分布这 3 个主要特 征。 总体上,对于一维离散信号来说,其高频部分所影响的是小波分解的第一层细节,其低 频部分所影响的小波分解的最深层和低频层。如果对一个仅由白噪声所组成的信号进行分 析,则可得出这样的结论:高频系数的幅值随着分解层次的增加而迅速地衰减,且其方差也 有同样的变化趋势。在这里用 ),( kjC 表示对噪声用小波分解后的系数,其中,j 表示尺度, k 表示时间,对离散时间信号引入如下的属性: (1) 如果 e 是一个平稳、零均值的白噪声,那么它的小波分解系数是相互独立的。 (2) 如果 e 是一个高斯型噪声,那么其小波分解系数是互不相关的,且服从高斯分 布。 (3) 如果 e 是一个平稳、有色、零均值的高斯型噪声序列,那么他的小拨分解系数 也是高斯序列,并且对每一个分解尺度 j,其相应的系数是一个平稳、有色的 序列。如何选择对分解系数具有解相关性的小波是一个很困难的问题,在目前 也没有得到很好的解决。进一步需指出,即使存在一个小波,但是它对噪声的 解相关性取决于噪声的有色性,为了用小波计算噪声的解相关性,必须知道噪 声本身的颜色。 (4) 如果 e 是一个固定的零均值 ARMA 模型,那么对每一个小波分解尺度 j, ,( kjC (), k  也是固定的零均值 ARMA 模型,且其特性取决于尺度 j。 z ) (5) 如果 e 是一个噪声: ● 若其相关函数已知,则可计算系数序列 ),( kjC 和 ,( kjC  ; ) ● 若其相关函数谱已知,则可计算 ,( kjC (), k  的谱及尺度 j 和 j 的交叉谱。 z ) 2. 小波降噪的步骤和方法 一般而言,一维信号降噪的过程可分为如下 3 个步骤。
(1) 信号的小波分解。选择一个小波并确实分解的层次,然后进行分解计算。 (2) 小波分解高频系数的阀值量化。对各个分解尺度下的高频系数选择一个阀值进 行软阀值量化处理。 (3) 一维小波重构。根据小波分解的底层低频系数和各层高频系数进行一维小波重 构。 这 3 个步骤中,最关键的是如何选择阀值及如何进行阀值量化,在某种程度上,它关 系到信号降噪的质量。 应用一维小波分析进行信号降噪处理,主要通过前面介绍的两个函数 wden 和 wdencmp 来实现。wden 函数返回的是经过对原始信号 s 进行降噪处理后的信号 sd。wdencmp 函数是 一种使用更为普遍的函数,它可以直接对一维或二维信号进行降噪或压缩,处理方法也是通 过对小波分解系数进行阀值量化来实现。 小波分析进行阀值处理一般有下述 3 种方法。 (1) (2) (3) 默认阀值消噪处理。该方法利用函数 ddencmp 生成信号的默认阀值,然后 利用函数 wdencmp 进行消噪处理。 给定阀值消噪处理。在实际的消噪处理过程中,阀值往往可通过经验公式 获得,且这种阀值比默认阀值的可信度高。在进行阀值量化处理时可用函 数 wthresh。 强制消噪处理。该方法是将小波分解结构中的高频系数全部置为 0,即滤掉 所有高频部分,然后对信号进行小波重构。这种方法比较简单,且消噪后 的信号比较平滑,但是容易丢失信号中的有用成分。 3. 一维小波降噪的综合应用实例 下面用具体的例子来说明小波分析对信号的降噪作用。 %当前延拓模式是补零 %设置信噪比和随机数种子 snr=3;init=2055615866; %产生原始信号,并叠加标准高斯白噪声 [xref,x]=wnoise(3,11,snr,init); %对 x 使用 sym8 小波进行 5 层分解,得到高频系数。使用 SURE 阀值、软阀值进行 降噪 lev=5; xd=wden(x,'heursure','s','one',lev,'sym8'); figure(1); set(gcf,'color','w'); %画出原始信号 subplot(311),plot(xref),axis([1 2048 -10 10]); title('原始信号'); subplot(312),plot(x), axis([1 2048 -10 10]); title(['降噪信号-信噪比为',num2str(fix(snr))]); subplot(313),plot(xd), axis([1 2048 -10 10]); title('降噪信号-heuristic SURE'); % 使用软 SURE 阀值降噪 xd=wden(x,'heursure','s','one',lev,'sym8'); %画出信号 figure(2);
set(gcf,'color','w'); subplot(311),plot(xd), axis([1 2048 -10 10]); title('降噪信号-SURE'); % 对噪声标准差进行单层估计,使用 fixed form 阀值降噪 xd=wden(x,'sqtwolog','s','sln',lev,'sym8'); % 画出信号 subplot(312),plot(xd), axis([1 2048 -10 10]); title('降噪信号-Fixed form 阀值'); % 对噪声标准差进行单层估计,使用 minimax 阀值降噪 xd=wden(x,'minimaxi','s','sln',lev,'sym8'); % 画出信号 subplot(313),plot(xd), axis([1 2048 -10 10]); title('De-noised signal-Minimax'); % 如果需要多次尝试,最后是执行一次分解,多次设置阀值 % 分解 [c,l]=wavedec(x,lev,'sym8'); % 使用小波分解结构[c,l]设置阀值 xd=wden(c,l,' minimaxi','s','sln',lev,'sym8'); 结果如图所示。
分享到:
收藏