基于DSP的小波阈值去噪算法的实现
扫描二维码
随时随地手机看文章
摘要:小波去噪是信号处理领域中的热点与前沿课题。阐述了小波去噪的基本原理和方法。利用TMS320F2812 DSP高速的运算能力、强大的实时处理能力等特点,在DSP上实现小波阈值去噪算法,为小波去噪提供了实时处理平台。采用软阁值函数和tein无偏风险阈值2t(rigrure规则)对噪声污染信号进行小波阈值去噪处理,实验发现,该法可以很好的去除噪声,满足信号去噪的光滑性和相似性准则。
关键词:小波变换;阈值函数;信号去噪;Mallat算法;DSP
0 引言
信号在采集、转换和传输过程中,会不可避免的引入噪声,这样就会导致信号失真,因此,如何从被噪声污染的信号中提取出原始信号成为研究的一个重要课题。基于小波变换的非线性滤波方法是在小波变换域,通过小波的多层分解对小波系数进行削切、阈值处理等非线性处理,以达到滤除噪声的目的,采用这种方法滤波可以在一定程度上避免一般低通滤波器滤波时造成的信号突变部分变模糊,小波变换具有低墒性、多分辨率、去相关性和选基灵活性等特点,因此利用小波变换在小波域实现信噪分离的方法获得了广泛的应用。
1 小波阈值去噪算法
在信号出现的短暂时刻内,小波系数将出现模极大值,而且随着分解尺度的增大而增大,并达到一个峰值。白噪声具有负的奇异性,它的小波系数极大值和稠密度将随着分解尺度的增大而减小。利用这一截然相反的特性,可以通过小波变换进行信噪分离。
1.1 小波分解与重构理论
Mallat在构造正交小波基的时候提出了著名的Mallat算法,Mallat算法是实现多分辨率分析的快速算法,在小波分析中的地位相当于快速傅立叶变换在经典傅立叶变换中的地位,Mallat分解算法公式为:
[!--empirenews.page--]
1.2 小波阈值去噪理论
—般来说,一维信号的去噪过程可分为三个步骤进行:
(1)一维信号的小波分解。选择一个小波并确定小波分解的层数N,对染噪号进行N层小波分解。
(2)小波分解高频系数的阈值量化。对第一到第N层的每一层高频系数,分别选择一个阈值进行阈值量化处理。
(3)一维小波的重构。根据小波分解的第N层的低频系数和经过阈值量化处理的高频系数进行小波重构。
以上三个步骤的关键是选取小波基、分解的层数、阈值函数和阈值。
本研究采用软阈值函数对小波系数进行处理,其具体表达式为:
y代表了经过阈值处理后的小波系数,t代表软阈值函数的阈值。
确定阈值函数之后,关键是如何确定一个合理的阈值。根据实际处理信号的特点以及各种阈值规则的特点,通过实际实验比较,本研究采用tein无偏风险阈值2t(rigrure规则)来确定阈值。
2 基于DSP的算法实现
算法实现主要分为三个部分:小波分解部分、小波系数阈值量化部分和小波重构部分。具体程序实现流程为图1。
[!--empirenews.page--]
在小波分解和小波重构编程时,在数据边界采用周期延拓的方法来解决式(3)、式(4)、式(6)中n+2k大于该层系数长度的问题。
对小波分解部分,采用db3小波对污染信号进行5层分解,具体实现部分程序为:
对分解的各层小波系数通过tein无偏风险阈值2t(rigrure规则)来确定各层阈值,采用软阈值函数对各层小波系数进行处理。
对处理完的各层小波系数进行小波重构,具体实现部分程序为:
[!--empirenews.page--]
3 实验结果及分析
在实验时,处理的数据长度为256,其未叠加噪声时波形为图2,对原始信号加入10 dBW的噪声,染噪信号波形为图3,采用db3小波对污染信号进行小波5层分解,对分解的各层小波系数进行阈值处理后再进行小波重构,得到的重构信号波形为图4。从实验结果可以看出,去噪效果良好,说明了采用此方法的可行性。