matlab声音去噪研究报告

matlab声音去噪研究报告
matlab声音去噪研究报告

个人资料整理仅限学习使用

课程设计说明书

课题名称:基于MATLAB的信号去噪研究

姓名及学号:吴永21006021078

周浩然21006021099

胡军 21006021024

专业班级:09电本1班

成绩:

指导教师:

课题工作时间:2018年 11月20日—12月12日

引言1

1. 小波去噪原理分析 (2)

1.1 小波去噪原理 (2)

1.2 小波去噪步骤 (3)

2. 阈值的选取与量化3

2.1 软阈值和硬阈值 (3)

2.2 阈值的几种形式 (4)

2.3 阀值的选取 (5)

3. 小波消噪的MATLAB实现5

3.1小波去噪函数集合 (5)

3.2 小波去噪验证仿真 (6)

4. 小波去噪的MATLAB 仿真对比实验8

结语11

参考文献11

小波变换的概念是由法国从事石油信号处理的工程师J.Morlet在1974年首先提出的,I.Daubechies[1]的《小波十讲》对小波的普及起了重要的推动作用。现在,它已经在科技信息产业领域取得了令人瞩目的成就。小波分析的应用领域十分广泛[2][3][4]。在数学方面,它已用于数值分析、构造快速数值方法、曲线曲面构造、微分方程求解、控制论等。在信号分析方面的滤波、去噪声、压缩、传递等。在图象处理方面的图象压缩、分类、识别与诊断,去污等。在医学成像方面的减少B超、CT、核磁共振成像的时间,提高分辨率等。

在实际的计算机控制系统中,采样信号不可避免的受到各种噪声和干扰的污染,使得由辨识采样信号得到的系统模型存在偏差而妨碍了系统控制精度的提高。通信信号去噪工作原理是利用噪声和信号在频域上分布的不同来进行的。在传统的基于傅氏变换的信号去噪方法中,总是使得信号和噪声的频带重叠部分尽可能小,这样在频域通过时不变滤波,就将信号和噪声区分开。但如果两者重叠区域很大时,就无法实现去噪的效果了。Donoho和Johnstone[5]提出的小波收缩去噪算法对去除叠加性高斯白噪声非常有效。由小波变换的特性可知,高斯噪声的小波变换仍然是高斯分布的,它均匀分布在频率尺度空间的各部分,而信号由于其带限性,它的小波系数仅仅集中在频率尺度空间上的有限部分。

如何从这些受噪声干扰的信号中估计得到“纯净”的信号是建立系统高精度模型和实现高性能控制的关键。

滤波器去噪是实际应用最广泛的一种方法,但时常在滤除噪声的同时导致了有用信号的失真,它是从纯频域的角度来分析应该消除哪些频率范围内的噪声。1995年Donoho 和Johnstone提出了小波收缩去噪的技术,他们研究的是在叠加性高斯白噪声环境下检测出真实信号的情况,利用正交小波变换和高斯随机变量的性质对信号的小波分解系数做阈值量化,无失真的还原出真实信号。

本文对Donoho -Johnstone的去噪方法做了总结推广,研究了在高斯白噪声情况下选择小波变换的去噪效果,并公式化了实际数据中的几种更复杂的噪声模型;并对Donoho -Johnstone的小波去噪方法在MATLAB环境下做了较为详尽的研究,验证了小波去噪的可靠性并对比了傅里叶去噪和小波去噪的效果。

1. 小波去噪原理分析

1.1 小波去噪原理

叠加性高斯白噪声是最常见的噪声模型[6],受到叠加性高斯白噪声“污染”的观测信号可以表示为:

(1-1>

其中y i为含噪信号,为“纯净”采样信号,z i为独立同分布的高斯白噪声

,为噪声水平,信号长度为n. 为了从含噪信号y i中还原出真实信号,可以利用信号和噪声在小波变换下的不同的特性,通过对小波分解系数进行处理来达到信号和噪声分离的目的。在实际工程应用中,有用信号通常表现为低频信号或是一些比较平稳的信号,而噪声信号则通常表现为高频信号,所以我们可以先对含噪信号进行小波分解[7]<如进行三层分解):

(1-2>

图1-1 三层小波分解示意图

其中为分解的近似部分,为分解的细节部分,,则噪声部分通常包含在,,中,用门限阈值对小波系数进行处理,重构信号即可达到去噪的目的。

1.2 小波去噪步骤

总结去噪过程,可以分成以下三个步骤:

1>对观测数据作小波分解变化[8]:

(1-3>

其中y表示观测数据向量y1,y2,…y,f是真实信号向量f1,f2,…f n,z是高斯随机向量z1,z2,…z n,其中用到了小波分解变换是线性变换的性质。

2)对小波系数W0作门限阈值处理<根据具体情况可以使用软阈值处理或硬阈值处理,而且可以选择不同的阈值形式,这将在后面作详细讨论),比如选取最著名的阈值形式[9]:

(1-4>

门限阈值处理可以表示为,可以证明当n趋于无穷大时使用阈值公式(4>对小波系数作软阈值处理可以几乎完全去除观测数据中的噪声。

3>对处理过的小波系数作逆变换重构信号[10]:

(1-5>

即可得到受污染采样信号去噪后的信号。

2. 阈值的选取与量化

Donoho-Johnstone小波收缩去噪方法的关键步骤是如何选择阈值和如何进行门限阈值处理,在这将作较为详细的讨论。

2.1 软阈值和硬阈值

在对小波系数作门限阈值处理操作时,可以使用软阈值处理方法或硬阈值处理方法,硬阈值处理只保留较大的小波系数并将较小的小波系数置零:

(2-1>

软阈值处理将较小的小波系数置零但对较大的小波系数向零作了收缩:

(2-2>

直观形式见图2-1<图中取t=1)从图上我们可以看出软阈值处理是一种更为平滑的形式,在去噪后能产生更为光滑的结果,而硬阈值处理能够更多的保留真实信号中的尖峰等特征软阈值处理实质上是对小波分解系数作了收缩,从而Donoho-Johnstone将这种去噪技术称之为小波收缩[11][12]。

图2-1 硬阀值和软阀值

2.2 阈值的几种形式

阈值的选取有多种形式,选取规则都是基于含噪信号模型式(1.1>中信号水平为1的情况,对于噪声水平未知或非白噪声的情况可以在去噪时重新调整得到的阈值。

在MATLAB中有4种阈值函数形式[13]可以选用:

(1>sqtwolog:采用固定的阈值形式,如式(1.4>,因为这种阈值形式在软门限阈值处理中能够得到直观意义上很好的去噪效果。

(2>minimaxi采用极大极小原理选择的阈值,和sqtwolog一样也是一种固定的阈值,它产生一个最小均方误差的极值,计算公式为:

(2-3>

(3> rigrsure:采用史坦的无偏似然估计原理进行阈值选择,首先得到一个给定阈值的风险估计,选择风险最小的阈值作为最终选择。

(4> heursure:选择启发式阈值它是sqtwolog和rigrsure 的综合,当信噪比很小时,估计有很大的噪声,这时heursure, 采用固定阈值sqtwolog。

2.3 阀值的选取

阈值化处理的关键问题是选择合适的阈值如果阈值(门限> 太小,去噪后的信号仍然有噪声存在。相反,如果太大,重要信号特征将被滤掉,引起偏差。从直观上,对于给定小波系数,噪声越大,阈值就越大。大多数阈值选择过程是针对一组小波系数,即根据本组小波系数的统计特性,计算出一个阈值。

Donoho 等提出了一种典型阈值选取方法,从理论上给出并证明阈值与噪声的方差成正比,其大小为:

(2-4>

3. 小波消噪的MATLAB实现

MATLAB中的小波工具包提供了全面的小波变化及其应用的各种功能,其中小波去噪方面实现Donoho-Johnstone等的去噪算法,而且可以选择使用图形界面操作工具或者去噪函数集合两种形式,图形界面操作工具直观易用,而利用函数集合可以实现更灵活强大的功能。我们利用小波去噪函数集合在中MATLAB 作了一系列实验,充分体会到了小波去噪的强大功能。

3.1小波去噪函数集合

下面是几个最为常用的小波去噪函数[14]:

1> x=wnoise(fun,n>:产生Donoho-Johnstone设计的6种用于测试小波去噪效果的典型测试数据,函数根据输入参数fun的值输出名为

“blocks”,“bumps”,“heavy”,“doppler”,“quadchirp”或

“mishmash”的6种函数数据,数据长度为2n。这6种测试数据在验证和仿真实验时非常有用。

2)[xd,cxd,lxd]=wden(x,tptr,sorh,scal,level,wname>:最主要的一维小波去噪函数。其中输入参数为输入需要的信号,tptr为2.2节中4种阀值形式,sorh设定为“s”表示用软门限阀值或硬门限阀值处理。2.2节中说过4种阈值形式是基于信号水平为1的高斯白噪声模型推导得到的,当噪声不是白噪声时,必须在小波分解的不同层次估计噪声水平,scal=“one”不进行重新估计,scal=“sln”

只根据第一层小波分解系数估计噪声水平,scal=“mln”在每个不同的小波分解层次估计噪声水平,根据scal参数的设定,wden<)函数决定最终应用于每一个小波分解层次的阀值函数。最后两个参数level和wname表示利用名为wname的小波对信号分解结构[cxd,lxd]。还有功能更强大的用于一维或二维小波去噪或压缩的函数wdencmp(>。

3> thr=thselect(x,tptr>:去噪阀值选择函数。

4> y=wthresh(x,sorh,t>:对信号x做阀值为t的门限阀值处理。

3.2 小波去噪验证仿真

实验信号是由wnoise(>函数产生的含标准的高斯白噪声信噪比为3的heavy sine信号,用wden(>函数进行去噪处理[15][16].

1>首先产生一个长度为210点,包含高斯噪声的heavy sine信号及heavy sine 含噪信号, 其噪声标准差为3 , 如图3.1a及b所示。

2>利用‘sym8’小波对信号分解,在分解的第5层上,利用软阈值法去噪,结果如图3.1c 所示

3>同样的条件下,利用固定阈值选择算法对信号去噪,结果如图3.1d 所示

图3-1 小波去噪验证仿真图

验证仿真程序如下:

x=wnoise(3,10>。

ind=linspace(0,1,2^10>。

subplot(4,1,1>。

plot(x>。

title('(a>'>;

[x,noisyx]=wnoise(3,10,3,2^10>。

subplot(4,1,2>。

plot(noisyx>。

title('(b>'>;

xd=wden(x,'rigrsure','s','sln',5,'sym8'>。

subplot(4,1,3>。

plot(xd>。

title('(c>'>

xd=wden(x,'sqtwolog','h','sln',5,'sym8'>。

subplot(4,1,4>。

plot(xd>。

title('(d>'>;

通过以上的例子,可以看出对原始信号添加噪声后得到含噪信号,利用MATLAB 中的小波工具箱对含噪信号分别进行软阈值化和硬阈值化去噪处理,得出的去噪结果与原始信号效果非常接近, 由此可以看出利用MATLAB 中的小波变换工具箱对信号进行去噪处理是非常理想的。

4. 小波去噪的MATLAB 仿真对比实验

选择MATLAB6.5 中含有噪声的仿真信号noisbloc 作为原始信号,分别使用FFT 和小波分析方法对信号进行去噪处理,采用的小波是sym8,分解层数为5,对比结果如图4.1。由图4.1可以看出,利用小波分析去噪的结果明显优于Fourier 变换,这是由于Fourier 变换只能在频域范围内表述,对系数进行处理的方法也相对单一,而利用小波对信号进行分解后,可以采用多种计算阈值和处理阈值的方法. 对信号的噪声成分进行抑制,手段更加灵活。为了更加精确地表示去噪结果,可以计算去噪后信号的信噪比(R SN> 和均方根误差(RMSE>[17][18]。

图4-1 小波去噪和FFT去噪效果对比图

a为含噪信号图,b为软阀值去噪信号图,c为硬阀值去噪图,d为FFT去噪图

表4-1 几种方法去噪后的R SN 和RMSE

rigrsure sqtwolog FFT SNR 41.2376 37.6389 24.9344

RMSE 0.9600 1.1493 2.1692

信号的信噪比越高,原始信号和去噪信号的均方根误差越小,去噪信号就越接近原信号,去噪的效果也就越好。表4.1 给出了3种方法去噪后信噪比和均方根误差的比较,可以看出,小波分析去噪结果的信噪比和均方根误差指标均优于FFT。

实验程序如下:load noisbloc。

x=noisbloc。

subplot(2,2,1>。

plot(x>。title('a'>

xd=wden(x,'rigrsure','s','sln',5,'sym8'>。

subplot(2,2,2>。

plot(xd>。title('b'>

p1=1/length(x>*norm(x>^2。

p2=1/length(x>*norm(x-xd>^2。

snr1=10*log(p1/p2>

RMSE1=sqrtm(p2>

xd=wden(x,'sqtwolog','h','sln',5,'sym8'>。

subplot(2,2,3>。

plot(xd>。title('c'>

p1=1/length(x>*norm(x>^2。

p2=1/length(x>*norm(x-xd>^2。

snr2=10*log(p1/p2>

RMSE2=sqrtm(p2>

wc=0.3。

N=5。

[b,a]=butter(N,wc>。

xd=filter(b,a,x>。

subplot(2,2,4>。plot(xd>。title('d'>。

p1=1/length(x>*norm(x>^2。

p2=1/length(x>*norm(x-xd>^2。

snr3=10*log(p1/p2>

RMSE3=sqrtm(p2>

结语

小波去噪是一个正在研究的课题,新的方法在不断地提出。小波变换是一种信号的时频分析方法,它具有多分辨率分析的特点,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,有效区分信号中的突变部分和噪声。因此利用小波变换能有效的对信号进行消噪的同时提取含噪信号。用传统的傅立叶变换分析,显得无能为力,因为傅立叶分析是将信号完全在频率域中进行分析,它不能给出信号在某个时间点的变化情况,使得信号在时间轴上的任何一个突变,都会影响信号的整个频谱。小波变换正广泛的应用于各个领域,MATLAB给我们提供了一个很方便的工作平台,通过MATLAB编制程序给定信号的噪声抑制和非平稳信号噪声的消除。通过实例证明:基于小波变换的消噪方法是一种提取有用信号、展示噪声和突变信号的优越方法,具有广阔的实用价值。

参考文献

[1] Delyon B,Juditsky A,Benveniste A.Accuracy Analysis for Wavelet Approximat-

ion[J].

IEEE Transactions on Neural Networks,1995,(6> :320-350.

[2] Gregory B Pepus.用Domino 开发Web 站点[M].北京:机械工业出版社, 1998.

[3] 林昱,钱昆. Lotus Domino R5 开发教程[M].北京:电子工业出版社, 2001.

[4] 冯锦峰,惠月. Lotus Domino/Notes R5 应用开发指南[M].北京:北京希望电子出版

社,2000. [7] 刘贵忠,邸双亮.小波分析及其应用[M].西安:西安电子科技大学出版社,1997.

[5] Divid L,Donoho.DenoisingbySoftthresholding [J].IEEE Transaction

oninformation theory,1995,(41>:609-632.

[6] 吴湘淇.信号系统与信号处理(下>[M].北京:电子工业出版社,1996.

[7] 孙兆林.MATLAB 6.X图像处理[M].北京:清华大学出版社,2002.

[8] D L Donoho,I M Johnstone,G Keryacharian and D Picard.Wavelet shrinkag:As

ymptopia

[J].Joumal of the Royal Statistical society sense B,1994.

[9] DL Donoho. De-noising by soft-thresholding[J].IEEETransInfo Theory,1995,(5>:

613-627.

[10] 孙延奎.小波分析及应用[M].北京:机械工业出版社,2006.

[11] 李加升,黄文清,戴瑜兴.基于自定义阈值函数的小波去噪算法[J].电力系统保护与控

制,2008(19>21-24.

[12] 徐长发,李国宽.实用小波方法[M].武汉:华中科技大学出版社,2001.

[13] 胡昌华,张军波,夏军,等.基于MATLAB的系统分析与设计(小波分析>[M].西安:西安电

子科技大学出版社,1999.217-225.

[14] 杜浩藩,丛爽.基于MATLAB小波去噪方法的研究 [J].计算机仿真,2003,(7>:119-122.

[15] 高萍,祖静.基于MATLAB小波去噪技术浅析[J].科技信息(学术版>,2006(11>1-3.

[16] 王书林.小波变换在信号去噪中的应用[J].弹箭与制导学报,2006(4>293-296.

[17] 王吉华,袁翔.小波变换在单片机信号去噪中的应用[J].计算机仿真,2004(7>55-57.

[18] 陈武凡. 小波分析及其在图像处理中的应用[M].北京:科学出社,2002.

相关主题
相关文档
最新文档