基于小波分析的信号去噪Word文档格式.docx

上传人:b****5 文档编号:20492897 上传时间:2023-01-23 格式:DOCX 页数:16 大小:113.65KB
下载 相关 举报
基于小波分析的信号去噪Word文档格式.docx_第1页
第1页 / 共16页
基于小波分析的信号去噪Word文档格式.docx_第2页
第2页 / 共16页
基于小波分析的信号去噪Word文档格式.docx_第3页
第3页 / 共16页
基于小波分析的信号去噪Word文档格式.docx_第4页
第4页 / 共16页
基于小波分析的信号去噪Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于小波分析的信号去噪Word文档格式.docx

《基于小波分析的信号去噪Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于小波分析的信号去噪Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

基于小波分析的信号去噪Word文档格式.docx

滤波器去噪是实际应用最广泛的一种方法,但时常在滤除噪声的同时导致了有用信号的失真,它是从纯频域的角度来分析应该消除哪些频率范围内的噪声。

而且如果信号与噪声频带重叠区域很大时,就无法实现去噪的效果了。

1995年Donoho和Johnstone提出了小波收缩去噪的技术,他们研究的是在叠加性高斯白噪声环境下检测出真实信号的情况,利用正交小波变换和高斯随机变量的性质对信号的小波分解系数做阈值量化,无失真的还原出真实信号。

由小波变换的特性可知,高斯噪声的小波变换仍然是高斯分布的,它均匀分布在频率尺度空间的各部分,而信号由于其带限性,它的小波系数仅仅集中在频率尺度空间上的有限部分。

相比于传统的傅里叶变换,小波分析方法是一种窗口大小(即窗口面积)固定但其形状可改变,时间窗和频率窗都可改变的时频局部化分析方法,它在低频部分具有较宽的时间窗和较高的频率分辨率,在高频部分具有较宽的频率窗和较高的时间分辨率。

正是这种特性,使小波变换具有对信号的自适应性。

本文对小波去噪方法进行了研究,验证了小波去噪的可靠性并对比了傅里叶去噪和小波去噪的效果。

2.小波分析基本理论

2.1小波去噪原理

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

(2.1)

其中

为含噪信号,

为“纯净”采样信号,

为独立同分布的高斯白噪声

为噪声水平,信号长度为

.为了从含噪信号

中还原出真实信号

,可以利用信号和噪声在小波变换下的不同的特性,通过对小波分解系数进行处理来达到信号和噪声分离的目的。

在小波域,有效信号所产生的小波系数其模值往往较大;

而噪声经过小波变换有白化趋势(高斯白噪声经过小波变换,在小波域仍然表现为很强的随机性,通常仍认为是高斯分布),其小波域对应系数模值很小。

而且有用信号通常表现为低频信号或是一些比较平稳的信号,而噪声信号则通常表现为高频信号,所以我们可以先对含噪信号进行小波分解(如进行三层分解):

(2.2)

图2.1三层小波分解示意图

为分解的近似部分,

为分解的细节部分,

则噪声部分通常包含在

中,用门限阈值对小波系数进行处理(小于门限值的系数置零),最后重构信号即可达到去噪的目的。

2.2小波去噪步骤

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

(1)对观测数据作小波分解变化:

(2.3)

其中

表示观测数据向量

,…

是真实信号向量

是高斯随机向量

,其中用到了小波分解变换是线性变换的性质。

(2)对小波系数

作门限阈值处理(根据具体情况可以使用软阈值处理或硬阈值处理,而且可以选择不同的阈值形式,这将在后面作详细讨论),比如选取最著名的阈值形式:

(2.4)

门限阈值处理可以表示为

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

(3)对处理过的小波系数作逆变换

重构信号:

(2.5)

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

3.小波去噪的阈值

3.1阈值函数

在对小波系数作门限阈值处理操作时,可以使用软阈值处理方法或硬阈值处理方法,硬阈值处理只保留较大的小波系数并将较小的小波系数置零,表达式见式(3.1)。

(3.1)

软阈值处理将较小的小波系数置零但对较大的小波系数向零作了收缩,表达式见式(3.2)。

(3.2)

直观形式见图3.1(图中取t=0.4)从图上我们可以看出软阈值处理是一种更为平滑的形式,在去噪后能产生更为光滑的结果,得到的估计小波系数连续性好,容易处理,但它与真实的小波系数之间存在着一定的偏差,进而降低了重构信号的精度,会造成边缘模糊等。

而硬阈值处理能够更多的保留真实信号中的尖峰等局部特征,但是得到的估计小波系数连续性差,在某些点上会产生间断,可能会引起重构信号的振荡。

软阈值处理实质上是在硬阈值的基础上将边界出现的不连续点收敛到零,对小波分解系数作了收缩,从而Donoho-Johnstone将这种去噪技术称之为小波收缩。

这样可以有效避免间断,获得比较光滑的重建新号。

针对硬阈值函数的不连续性和软阈值函数存在恒定偏差,以及阈值函数中参数选择的问题,提出了渐近半软阈值函数。

半软阈值形式较为复杂,它将软阈值和硬阈值的优点结合起来,更有效地抑制了噪声,提高了信噪比,最大限度地提高了去噪的效果。

由于篇幅所限,这里不多加介绍。

图3.1硬阀值和软阀值

3.2阈值的选取

目前常见的阈值选取规则主要有固定阈值估计,极值阈值估计,无偏似然估计和启发式阈值估计几种。

(1)sqtwolog:

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

其计算公式为:

(3.4)

其中,N为信号长度。

(2)minimaxi采用极大极小原理选择的阈值,和sqtwolog一样也是一种固定的阈值,准则采用固定门限获得理想过程的极小极大特性。

极小极大原理是在统计学中为设计估计量而采用的,由于去噪信号可以假设为未知回归函数的估计量,则极小极大估计量是实现在最坏条件下最大均方误差最小的任选量。

(3.5)

(3)rigrsure:

采用史坦的无偏似然估计原理进行阈值选择,首先得到一个给定阈值t的思然估计,再将非似然的t最小化,就得到了所选的阈值。

(4)heursure:

选择启发式阈值,它是sqtwolog和rigrsure的综合,是最优预测变量选择。

当信噪比很小时,无偏似然估计有很大误差,这时heursure采用固定阈值sqtwolog。

一般来讲,极值阈值估计和无偏似然估计方法比较保守,当噪声在信号的高频段分布较少时,这两种阈值估计方法效果较好可以将微弱的信号提取出来。

而固定阈值估计和启发式阈值估计法去噪比较彻底,在去噪时显得更为有效,但是也容易把有用的信号误认为噪声而去掉。

3.3三种阈值去噪形式

在实际应用中,处理信号和图像常借助计算机工具。

MATLAB相应的为我们提供了小波分析工具箱,对于利用小波变换方法对数据的处理提供了方便。

利用小波分析工具箱中的函数对信号和图像进行阈值去噪大致可分为三种:

(1)强制去噪处理。

该方法把小波分解结构中的高频系数全部变为零,即把高频部分全部滤除掉,然后再对信号进行重构处理。

这种方法比较简单,重构后的去噪信号也比较平滑,但容易丢失信号的有用成分。

(2)默认阈值去噪处理。

该方法利用'

'

ddencmp'

函数产生信号的默认阈值,然后利用'

wdencmp'

函数进行去噪处理。

(3)给定软(或硬)阈值去噪处理。

在实际的去噪处理中,阈值往往可以通过经验公式获得,而且这种阈值比默认阈值更具有可信度。

在进行阈值量化处理中可用'

wthresh'

函数进行。

在三种方法中,强制去噪处理方法较简单,去噪后的信号较平滑,但容易丢失有用信号。

对于第三种方法,阈值需要通过经验公式获得。

因此此方法本文也不考虑。

对于初学者来说,自己设定阈值是一件较困难的事情,为此,对于阈值需要根据经验设定的选项不予以考虑。

所以本文中采取默认阈值方法消噪。

另外在利用阈值进行小波系数的处理时,可以选择全局阈值处理和部分阈值处理。

全局阈值即在每层分解的小波系数进行处理时采用相同的阈值。

局部阈值即在每层分解的小波系数进行处理时根据不同层的噪声估计值不断调整阈值,采取不同的阈值。

全局阈值对于不同特征的信号区分度差,不论信号的低频域分量小,还是高频分量小,都是由默认阈值来处理,有时效果会较差。

比如对于含高频分量较大,而低频分量较小的信号,采用全局阈值算法消噪往往会丢失大量的高频部分信息,从而引起偏差。

但是全局阈值较为简单,且可由'

直接获得,若采用局部阈值处理,仍然需要按照经验获取阈值向量,本文不予考虑。

综上,本文采用全局默认阈值的处理方法。

4.小波去噪的Matlab实现

MATLAB中的小波工具包提供了全面的小波变化及其应用的各种功能,其中小波去噪方面实现Donoho-Johnstone等的去噪算法,而且可以选择使用图形界面操作工具或者去噪函数集合两种形式,这里利用小波去噪函数集合编写MATLAB程序,完成仿真。

4.1Matlab中小波去噪的函数集合

下面是几个最为常用的与小波去噪有关的函数:

(1)wnoise函数:

调用方式:

x=wnoise(fun,n,snr);

作用:

产生Donoho-Johnstone设计的6种用于测试小波去噪效果的典型测试数据,函数根据输入参数fun的值输出名为'

blocks'

,'

bumps'

heavy'

doppler'

quadchirp'

或'

mishmash'

的6种函数数据,数据长度为2n。

信噪比为'

snr'

这6种测试数据在验证和仿真实验时非常有用。

(2)wden函数:

调用方式:

[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'

wname'

);

[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'

作用:

wden'

是最主要的一维小波去噪函数。

其中输入参数'

x'

为输入需要的信号,'

TPTR'

为3.2节中4种阀值形式,'

SORH'

设定为'

s'

表示用软门限阈值处理,'

h'

表示用硬门限阈值处理。

3.2节中提到的4种阈值形式是基于信号水平为1的高斯白噪声模型推导得到的,当噪声不是白噪声时,必须在小波分解的不同层次估计噪声水平,SCAL='

one'

不进行重新估计,SCAL='

sln'

只根据第一层小波分解系数估计噪声水平,SCAL='

mln'

在每个不同的小波分解层次估计噪声水平,根据'

SCAL'

参数的设定'

函数决定最终应用于每一个小波分解层次的阈值函数。

最后两个参数'

N'

和'

表示利用名为'

的小波对信号进行N层分解。

除'

外还有功能更强大的用于一维或二维小波去噪或压缩的函数'

(3)ddencmp函数:

[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X);

[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'

wp'

X);

wv'

函数'

用于获取信号在消噪或压缩过程中的默认阈值。

输入参数'

X'

为一维或二维信号;

IN1'

取值为'

den'

cmp'

表示进行去噪,'

表示进行压缩;

IN2'

表示选择小波,'

表示选择小波包。

返回值'

THR'

是返回的阈值;

是软阈值或硬阈值选择参数;

KEEPAPP'

表示保存低频信号;

CRIT'

是熵名(只在选择小波包时使用)。

(4)wdencmp函数:

[XC,CXC,LXC]=wdencmp('

gbl'

X,'

N,THTR,SORH,KEEPAPP);

[XC,CXC,LXC]=wdencmp('

lvd'

N,THTR,SORH);

C,L,'

作用:

用于一维或二维信号的消噪或压缩。

是所用的小波函数,'

('

global'

的缩写)表示每一层都采用同一个阈值进行处理,'

表示每层采用不同的阈值进行处理,'

表示小波分解的层数,'

为阈值向量,对于后面两种格式,每层都要求有一个阈值,因此阈值向量'

的长度为N,'

表示选择软阈值或硬阈值(分别取值为'

),参数'

取值为1时,则低频系数不进行阈值量化,反之,低频系数要进行阈值量化。

XC'

是要进行消噪或压缩的信号,'

[CXC,LXC]'

是'

的小波分解结构。

MATLAB中与小波去噪有关的函数总结见表4.1和表4.2。

表4.1小波分解和重构函数

分类

函数名

说明

提取系数函数

appcoef

提取一维小波变换的低频系数

detcoef

提取一维小波变换的高频系数

小波分解函数

dwt

单尺度一维离散小波变换

wavedec

多尺度一维小波分解

小波重构函数

upcoef

一维小波系数的直接重构

upwlev

一维小波系数的单尺度重构

idwt

单尺度一维离散小波逆变换

waverec

多尺度一维小波重构

wrcoef

小波分解结构的低频或高频重构

表4.2压缩和消噪函数

名称

阈值获取函数

ddencmp

获取在消噪和压缩中的默认阈值

thselect

去噪的阈值选择

wbmpen

获取一维小波去噪阈值

wdcbm

用Birge-Massart算法获取小波变换阈值

去噪函数

wden

用小波变换对一维信号自动消噪

wdencmp

用小波进行消噪或压缩

阈值处理函数

wthcoef

一维信号小波系数的阈值处理

wthresh

软阈值或硬阈值处理

4.2小波去噪的MATLAB仿真

(1)以下为仿真源代码:

clc;

clearall;

snr=4;

%设置信噪比

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%MATLAB中用'

wnoise'

产生测试信号

%原始信号为xref,含高斯白噪声的信号为x

%信号类型为blocks(由函数中参数1决定)

%长度均为2^11(由函数中的参数11决定)

%信噪比snr=4(由函数中的参数snr决定)

[xref,x]=wnoise(1,11,snr);

xref=xref(1:

2000);

%取信号的前2000点

x=x(1:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%用全局默认阈值进行去噪处理

[thr,sorh,keepapp]=ddencmp('

'

x);

%获取全局默认阈值

xd=wdencmp('

x,'

sym8'

3,thr,sorh,keepapp);

%利用全局默认阈值对信号去噪

%下面是作图函数,作出原始信号和含噪声信号的图

figure

subplot(211);

plot(xref);

%画出原始信号的图

title('

原始信号'

);

subplot(212);

plot(x);

含噪声信号'

%画出含噪声信号的图

%下面用傅里叶变换进行原信号和噪声信号的频谱分析

%通过在频域上的分析选择合适的滤波器对信号进行去噪

%最后将这一经典的去噪结果与小波去噪结果进行比较

dt=1/(2^11);

%时域分辨率

Fs=1/dt;

%计算频域分辨率

df=Fs/2000;

xxref=fft(xref);

%对原始信号做快速傅里叶变换

xxref=fftshift(xxref);

%将频谱图平移

xxref=abs(xxref);

%取傅里叶变换的幅值

xx=fft(x);

%对含噪声信号做快速傅里叶变换

xx=fftshift(xx);

%将频谱搬移

absxx=abs(xx);

ff=-1000*df:

df:

1000*df-df;

%设置频率轴

figure

(2)

plot(ff,xxref);

%画出原始信号的频谱图

原始信号的频谱图'

plot(ff,absxx);

含信号噪声的频谱图'

%画出含噪声信号的频谱图

%进行低通滤波,滤波频率为0~200的相对频率

indd2=1:

800;

%0频左边高频率系数置零

xx(indd2)=zeros(size(indd2));

indd2=1201:

2000;

%0频右边高频系数置零

xden=ifft(xx);

%滤波后的信号作傅里叶逆变换

xden=abs(xden);

%取幅值

figure(3)

plot(xd);

%画出小波去除噪后的信号

小波去除噪后的信号'

plot(xden);

%画出傅里叶分析去噪的信号

傅里叶分析去噪的信号'

(2)以下是仿真结果:

原始信号和含高斯白噪声的信号波形见图4.1。

原始信号和含高斯白噪声的信号经傅里叶变换的频谱图见图4.2。

小波去噪后的效果图和用傅里叶分析去噪后的效果图见图4.3。

图4.1原始信号和含高斯白噪声的信号

图4.2原始信号的频谱与含噪声信号的频谱

图4.3小波去噪后的信号与傅里叶变换去噪后的信号

在command窗口显示如下信息:

thr=

3.8528

sorh=

s

keepapp=

1

可知阈值为3.8528,进行软阈值去噪,且低频系数不进行阈值量化。

(3)仿真结果分析:

从比较中可以看出,用小波进行信号去噪可以很好地保存有用信号中的尖峰和突变部分,而用傅里叶变换进行分析后滤波,由于信号集中在低频部分,噪声分布在高频部分,所以可用低通滤波器进行滤波,但是,它不能将有用信号的高频部分和噪声引起的干扰加以有效的区分,使得滤波后的信号还残留了大量的噪声。

若低通滤波器太窄,则在滤波后信号中仍存在大量噪声,若低通滤波器太宽,则将一部分有用信号当做噪声而滤掉了。

因此小波分析对非平稳信号有着傅里叶分析不可比拟的优点。

5.结语

小波去噪是一个正在研究的课题,新的方法在不断地提出。

小波变换是一种信号的时频分析方法,它具有多分辨率分析的特点,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,有效区分信号中的突变部分和噪声。

因此利用小波变换能有效的对信号进行消噪的同时提取含噪信号。

用传统的傅立叶变换分析,显得无能为力,因为傅立叶分析是将信号完全在频率域中进行分析,它不能给出信号在某个时间点的变化情况,使得信号在时间轴上的任何一个突变,都会影响信号的整个频谱。

小波变换正广泛的应用于各个领域,MATLAB给我们提供了一个很方便的工作平台,通过MATLAB编制程序给定信号的噪声抑制和非平稳信号噪声的消除。

在本次结课作业中,我们经过大量查找文献资料,不断调试程序,最终通过实例证明:

基于小波变换的消噪方法是一种提取有用信号、展示噪声和突变信号的优越方法,具有广阔的实用价值。

我们在本次作业中收获颇多,不但理解了小波去噪的原理和掌握了用MATLAB编写去噪程序,还培养了查找文献资料的能力及团队合作能力。

6.参考文献

[1]桂林.周林.张家祥等.MATLAB小波分析高级技术[M].西安:

西安电子科技大学出版社,2006.

[2]胡昌华.李国华.刘涛等.基于MATLAB6.X的系统分析与设计——小波分析[M].西安:

西安电子科技大学出版社,2004.

[3]李正周.MATLAB数字信号处理与应用[M].北京:

清华大学出版社,2008.

[4]陈文.基于MATLAB的信号去噪研究[D].湖南:

湖南城市学院,2009.

[5]杨艳.基于MATLAB的信号去噪研究[D].江西:

江西理工大学,2009.

7.人员分工

人员

分工

贡献率

原理及其算法设计

25%

整体设计

程序设计

20%

算法调试

15%

资料收集

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1