一种基于混合编程的小波去噪方法
0 引言
本文引用地址:http://www.amcfsurvey.com/article/235356.htm信号降噪是信号处理领域的经典问题之一。传统的降噪方法主要包括线性滤波方法和非线性滤波方法,滤波器在工作时对信号进行筛选,只让特定频段的信号通过。当信号中的有用成分和噪声成分各占不同频带,可以将噪声成分有效除去。但如果信号和噪声的频谱重叠,则经典滤波器将不起作用。这些滤波器按滤波的频段可分为高通、低通及带通滤波器,根据设计滤波器的思想可以把滤波器分为巴特沃斯滤波器、贝塞尔滤波器、椭圆滤波器及切比雪夫滤波器等。
此外,传统的滤波器降噪方法的不足在于使信号变换后熵增加,无法刻画信号的非平稳性并且无法得到信号的相关性。为了克服上述缺点,采用小波变换来解决信号降噪的方法应用越来越广泛。但是,由于小波变换数学理论较深,对于初学者而言,使用传统的C语言等编程方法,编程难度很大。本文采用LabVIEW 和Matlab 混合编程的方法,将LabVIEW 完美的图形编程技术和Matlab强大的数学解算功能结合起来,实现了小波降噪的数学建模和信号图像显示。
1 小波变换原理
小波变换的理论主要包括连续小波变换、离散小波变换和多分辨分析。
1.1 连续小波变换
按如下方式平移和伸缩而生成的函数族 {ψ a,b } 叫分析小波或连续小波(Continue Wavelet Transform,CWT),ψ 称为基本小波。
任意函数在某一尺度a 、平移点b 上的小波变换系数,实质上表征的是在b 位置处,时间段2aΔψ 上包含在中心频率为ω* a ,带宽为2Δψ - /a 频窗内的频率分量大小,随着尺度a 的变化,对应窗口中心频率为ω* a 及窗口宽度2Δψ - /a 也发生变化。
1.2 离散小波变换
在实际应用中,一般分析的信号都是经过离散采样后得到的离散时间序列,需要把连续小波及其变换离散化,以进行数字信号处理。具体作法是通过对其伸缩尺度因子a 和平移因子b 的采样而离散化。
式中:m,n 分别称为频率范围指数和时间步长变化指数。
在连续小波变换Wψ f (a,b) 中,由于a,b 是连续变化的,它是高冗余的,只要母小波ψ(t) 满足容许条件,则可由Wψ f (a,b) 完全恢复原信号f (t) .对于离散小波变换,由于对a,b 进行了离散采样,为了使Wψ f (m,n) 包含足够的信息以恢复原信号f (t) ,就需要对变换使用的母小波作出更严格的限制。
在Hilbert空间H中的一族函数{- }jj ∈ J称为是一个框架,如果存在A,B ∈(0,∞) 时,对于所有f ∈ H,有:
2 小波降噪原理
小波变换具有低熵性、多分辨率特性、去相关性、选基灵活性的特点,因此小波降噪得到更广泛的应用。其中阈值去噪方法是一种实现简单、结果较好的小波降噪方法。
阈值去噪方法就是对小波分解后的各层系数中模大于和小于某阈值的系数分别处理,然后对处理完的小波系数进行反变换,重构经去噪的信号。在现实情况下,有用的信号通常是低频信号,而噪声信号通常是高频信号,在去噪的过程中,通常对小波分解的高频系数进行阈值化后重构信号。阈值的获取是小波去噪的关键,本文中的小波去噪模块借助于Matlab小波分析工具箱中的小波分析函数获取阈值。
Matlab 中实现信号阈值获取的函数有ddencmp、thselect、wbmpen 和wdcbm,本文采用了wbmpen.小波去噪的部分Matlab代码如下:
滤波器相关文章:滤波器原理
滤波器相关文章:滤波器原理
电源滤波器相关文章:电源滤波器原理
数字滤波器相关文章:数字滤波器原理
评论