基于 LabVIEW 和 Matlab 混合编程的小波去噪方法
0 引言 信号降噪是信号处理领域的经典问题之一。传统的降噪方法主要 包括线性滤波方法和非线性滤波方法,滤波器在工作时对信号进行筛选,只让 特定频段的信号通过。当信号中的有用成分和噪声成分各占不同频带,可以将 噪声成分有效除去。但如果信号和噪声的频谱重叠,则经典滤波器将不起作用。 这些滤波器按滤波的频段可分为高通、低通及带通滤波器,根据设计滤波器的 思想可以把滤波器分为巴特沃斯滤波器、贝塞尔滤波器、椭圆滤波器及切比雪 夫滤波器等。 此外,传统的滤波器降噪方法的不足在于使信号变换后熵增加, 无法刻画信号的非平稳性并且无法得到信号的相关性。为了克服上述缺点,采 用小波变换来解决信号降噪的方法应用越来越广泛。但是,由于小波变换数学 理论较深,对于初学者而言,使用传统的 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 代码如下: 3
LabVIEW
和 Matlab
混合编程方法
3.1
LabVIEW 简介
LabVIEW(Laboratory Virtual Instrument Engineer-ing)是 NI(National Instruments) 公司的产品,是一种图形化的编程语言,它广泛地被工业界、学术界和研究实 验室所接受,视为一个标准的数据采集和仪器控制软件。这是一个功能强大且 灵活的软件,利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编 程及使用过程都生动有趣。利用 LabVIEW,可产生独立运行的可执行文件。tips: 感谢大家的阅读,本文由我司收集整编。仅供参阅!