基于MATLAB小波去噪方法的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)对小波系数 W0 d 作门限阈值处理(根据具体情况可以 使用软阈值处理或硬阈值处理,而且可以选择不同的阈值形 式,这将在后面作详细讨论),比如选取最著名的阈值形式:
tN = ! #2kogN
(3)
门限阈值处理可以表示为"tNW0 d,可以证明当 N 趋于 无穷大时使用阈值形式(3)对小波系数作软阈值处理可以几 乎完全去除观测数据中的噪声[5]。
不同层次估计噪声水平,scaI =‘one’不进行重新估计,scaI = ‘sIn’只根据第一层小波分解系数估计噪声水平,scaI =‘mIn’
在每个不同的小波分解层次估计噪声水平,根据 scaI 参数的 设定,wde(n )函数决定最终应用于每一个小波分解层次的阈 值数值。最后两个参数 IeveI 和 wname 表示利用名为 wname 的小波对信号作 IeveI 层分解。输出去噪后的数据 xd 及 xd 的附加小波分解结构[cxd,Ixd]。还有功能更强大的用于一 维或二维小波去噪或压缩的函数 wdencm(p )。
总结去噪过程,可以分成以下三个步骤: 1)对观测数据作小波分解变化[3]:
W0 d = W0 f +!· W0 z
(2)
其中 d 表示观测数据向量 f1,f2,… fN,f 是真实信号向量 f1, f2,…,fN,z 是高斯随机向量 z1,z2,…,zN,其中用到了小波分 解变换是线性变换的性质(小波分解变换本质上是一种积分 变换)。
iid
的高斯白噪声 N(0,1)(用符号可表示为:zi ~ N(0,1)),! 为 噪声水平,信号长度为 N。
为了从含噪信号 di 中还原出真实信号 fi,可以利用信号 和噪声在小波变换下的不同的特性,通过对小波分解系数进
行处理来达到信号和噪声分离的目的。在实际工程应用中,
有用信号通常表现为低频信号或是一些比较平稳的信号,而
3)thr = thseIec(t x,tptr):去噪阈值选择函数。 4)y = wthres(h x,sorh,t):对信号 x 作阈值为 t 的门限阈 值处理。
Johnstone 称之为 VisuShrink,因为这种阈值形式在软门限阈值 处理中能够得到直观意义上很好的去噪效果。
4.2 小波去噪对比实验 我们对小波去噪时各种参数设置作了详尽的对比研究,
系数并将较小的小波系数置零:
{ !(H w,t)=
w,\ w \ " t 0,\ w \ < t
(5)
软阈值处理将较小的小波系数置零但对较大的小波系 数向零作了收缩:
{ w - t,w " t
!(S w,t)= 0,\ w \ < t w + t,w # t
(6)
直观形式见图 (l 图中取 t = 0 . 4)。从图上我们可以看出 软阈值处理是一种更为平滑的形式,在去噪后能产生更为光
3)对处理过的小波系数作逆变换 W0-1 重构信号:
— 119 —
f! = W0-l!tNW0 d 即可得到受污染采样信号去噪后的信号。
(4)
值,计算公式为:
{0,N # 32
t= 0 . 3936 + 0 . l829!Iog2 N
(7)
3 阈值的选取和阈值量化
Donoho - Johnstone 的小波收缩去噪方法的关键步骤是如 何选择阈值和如何进行门限阈值处理,在这我们将作较为详 细的讨论。 3.1 软阈值和硬阈值
1 引言
在计算机控制中,需要从控制系统中获得采样信号(观 测数据)用于系统的模型辨识或实时控制,而这些采样信号 将不可避免的受到噪声的污染。如何从这些受噪声干扰的 信号中估计得到“纯净”的信号是建立系统高精度模型和实 现高性能控制的关键。
滤波器去噪是实际应用最广泛的一种方法,但时常在滤 除噪声的同时导致了有用信号的失真,它是从纯频域的角度 来分析应该消除哪些频率范围内的噪声。1995 年 Donoho 和 Johnstone[1]、[2]提出了小波收缩去噪的技术,他们研究的是在 叠加性高斯白噪声环境下检测出真实信号的情况,利用正交 小波变换和高斯随机变量的性质对信号的小波分解系数做 阈值量化(threshokking),无失真的还原出真实信号。文章[3] 中对 Donoho - Johnstone 的去噪方法做了总结推广,研究了在 高斯白噪声情况下选择不同的小波变换形式(如非正交小波 变换)的去噪效果,并公式化了实际数据中的几种更复杂的 噪声模型。
噪声信号则通常表现为高频信号,所以我们可以先对含噪信
号进行小波分解(如进行三层分解):
S = OA1 + OD1 = OA2 + OD2 + OD1 = OA3 + OD3 + OD2 + OD1
(1)
其中 OAi 为分解的近似部分,ODi 为分解的细节部分,i = 1, 2,3,则噪声部分通常包含在 OD1,OD2,OD3 中,用门限阈值对 小波系数进行处理,重构信号即可达到去噪的目的[4]。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
第 20 卷 第 7 期
文章编号:1006 - 934(8 2003)07 - 0119 - 04
计算机仿真
2003 年 7 月
基于 MATLAB 小波去噪方法的研究
杜浩藩,丛爽
2 小波去噪原理
叠加性高斯白噪声是最常见的噪声模型,受到叠加性高 斯白噪声“污染”的观测信号可以表示为:
di = fi +!· zi,i = 1,…,N
(")
基金项目:中科院优秀青年学者奖基金项目 收稿日期:2002Leabharlann Baidu- 06 - 17
其中 di 为 含噪信号,fi 为“纯净”采样信号,zi 为独立同分布
— l20 —
在各种可选参数下的去噪效果作了对比研究,得出了以下结 论。
1)四种阈值选取方式的对比(tptr 的设置) 在 MATLAB 下运行如下程序段: tptr =[‘rigrSure’‘;heurSure’‘;SgtwoIog’‘;minimaxi’]; for I = 1:4, xd = wde(n x,TPTR(I,:),‘S’,‘SIn’,5 ,‘Sym8’); SubpIo(t 2,2,I);pIo(t xd);titI(e TPTR(I,:)); end; 得到四个去噪效果图(见图 2),可以看出固定阈值形式 (SgtwoIog)和启发式阈值形式(heurSure)的去噪更彻底,而由于 rigrSure 和 minimaxi 阈值选取规则较为保守(阈值较小,导致 只有部分系数置零)噪声去除不彻底,但在信号的高频成分 和噪声有重叠时利用这两种阈值可以把弱小信号从噪声中 分离出来。
(中国科学技术大学自动化系,安徽 合肥 230027)
摘要:在实际的计算机控制系统中,采样信号不可避免的受到各种噪声和干扰的污染,使得由辨识采样信号得到的系统模型 存在偏差而妨碍了系统控制精度的提高。Donoho 和 Johnstone 提出的小波收缩去噪算法对去除叠加性高斯白噪声非常有效。 我们对此在 MATLAB 环境下做了详尽的仿真研究,并利用滤波器、傅立叶变换 / 反变换和小波收缩三种方法对实际电机随动 系统的辨识采样数据进行了去噪对比实验,总结了应用小波去噪的一些实际经验。 关键词:小波变化;滤波;去噪 中图分类号:TP301 . 6 文献标识码:A
在对小波系数作门限阈值处理操作时,可以使用软阈值 处理方法或硬阈值处理方法,硬阈值处理只保留较大的小波
3)rigrsure:采用史坦(Stein)的无偏似然估计原理进行阈 值选择,首先得到一个给定阈值 t 的风险估计,选择风险最小 的阈值 t! 作为最终选择。
4)heursure:选择启发式阈值,它是 sgtwoIog 和 rigrsure 的 综合,当信噪比很小时 rigrsure 估计有很大的噪声,这时 heursure 采用固定阈值 sgtwoIog。
2)minimaxi:采用极大极小原理选择的阈值,和 sgtwoIog 一样也是一 种 固 定 的 阈 值,它 产 生 一 个 最 小 均 方 误 差 的 极
实验信号是由 wnois(e )函数产生的含标准的高斯白噪声信噪 比为 3 的‘heavy sine’信号,用 wde(n )函数进行去噪处理,对
图 1 硬阈值和软阈值
3.2 阈值的几种形式 阈值的选取有多种形式,选取规则都是基于含噪信号模
型($)中信号水平为 l 的情况,对于噪声水平未知或非白噪 声的情况可以在去噪时重新调整得到的阈值。
在 MatIab 中有 4 种阈值函数形式可以选用: l)sgtwoIog:采 用 固 定 的 阈 值 形 式,如 式(3),Donoho -
滑的结果,而硬阈值处理能够更多的保留真实信号中的尖峰
等特征。软阈值处理实质上是对小波分解系数作了收缩,从
而 Donoho - Johnstone 将 这 种 去 噪 技 术 称 之 为 小 波 收 缩 (WaveIet Shrinkage)。
4 MATLAB 中的小波去噪
MATLAB 中的小波工具包提供了全面的小波变化及其应 用的各种功能,其中小波去噪方面实现了 Donoho - Johnstone 等的去噪算法,而且可以选择使用图形界面操作工具或者去 噪函数集合两种形式,图形界面操作工具直观易用,而利用 函数集合可以实现更灵活强大的功能。我们利用小波去噪 函数集合在 MATLAB 中作了一系列实验,充分体会到了小波 去噪的强大功能。 4.1 小波去噪函数集合
本文对 Donoho - Johnstone 的收缩去噪方法在 MATLAB 环 境下做了较为详尽的研究,总结了应用小波收缩去噪的一些 实际经验。文章 组 织 如 下:第 一 节 是 小 波 去 噪 原 理;第 二 节 是小波去噪过程中两种门限阈值处理方式和几种阈值选取 方法;第三节是 MATLAB 中的小波去噪对比实验研究;最后 是小结。
ControI U(k)= 500 + PRBS7(5 k) 即在系统工作点 500 个数字量输入信号的基础上加上幅值 为 75 个数字量的伪随机二进制信号,读取系统的输出,由于 系统传感器量测噪声和各种电磁干扰的影响,使得直接由量 测数据辨识得到的系统模型阶次过高(3 阶以上),而且这些 较高的阶次所辨识的是噪声的模型,难以得到一个清晰简洁 的被控对象的模型,给进一步对各种控制算法的设计和控制 精度的提高造成了障碍。我们分别用滤波器,傅立叶变换 / 反变换和小波收缩对对辨识信号中的一段进行去噪处理,见 图 3,其中 a)是原始辨识数据。最简单去噪方法是设计滤波 器对量测数据进行滤波,我们使用了一个 2 阶截止频率为 15HZ 的 FIR 滤波器,滤除了大多数噪声,见图 3 b);直接对含 噪信号作傅立叶变换(FFT)(在作 FFT 前先去除了信号中的 直流成分)得到信号的频谱,硬性的将频谱中的 200 ~ 800HZ 频段的增益置为 0,再用傅立叶反变换(IFFT)还原得到去噪 后的数据,从图上可以看出去噪效果和滤波器近似,见图 3 c),但是傅立叶变换 / 反变换方法在允许的情况下可以对信 号的频谱作任意配置;最后我们用小波收缩方法对量测数据 进行了去噪,小波去噪语句如下:
SymIetS(SymN),coifIetS(coifN),具体选择可以根据实际需要 决定,在我们的实验中选择的是 Sym8。 4.3 实际电机辨识数据去噪对比实验
我们对一个实际的计算机控制的直流电机随动系统的 模型辨识数据用滤波器,并采用傅立叶变换 / 反变换和小波 收缩方法作了去噪对比实验。首先我们给实际随动系统加 上辨识输入信号:
下面是几个最为常用的小波去噪函数: l)x = wnois(e fun,n):产生 Donoho - Johnstone 设计的 6 种 用于测试小波去噪效果的典型测试数据,函数根据输入参数 fun 的 值 输 出 名 为‘bIocks’,‘bumps’,‘heavy sine”,‘doppIer’, ‘guadchirp’或‘mishmash’的 6 种函数数据,数据长度为 2N。这 6 种测试数据在验证算法和仿真实验时非常有用。
2)[ xd,cxd,Ixd] = wden( x,tptr,sorh,scaI,IeveI, ‘wname’:最主要的一维小波去噪函数。其中输入参数 x 为
输入需要去噪的信号,tptr 为 2 . 2 节中的 4 种阈值形式,sorh 设定为‘s’或‘h’表示用软门限阈值或硬门限阈值处理。2 . 2 节中说过 4 种阈值形式是基于信号水平为 l 的高斯白噪声 模型推导得到的,当噪声不是白噪声时,必须在小波分解的
相关文档
最新文档