历史上的今天
返回首页

历史上的今天

今天是:2024年11月06日(星期三)

正在发生

2019年11月06日 | 一种基于混合编程的小波去噪方法

2019-11-06 来源:eepw

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,可产生独立运行的可执行文件。


图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW 是一个面向最终用户的工具,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。


3.2 LabVIEW调用外部代码的方法

LabVIEW 的Functions 模块内Advanced 中CIN 节点,用户可将需要调用的外部代码编译成LabVIEW 所能识别的格式与此节点相连,当此节点执行时,Lab-VIEW 将自动调用与此节点相连的外部代码,并向CIN传递特定的数据结构。

使用CIN技术,用户可向CIN传递任意复合的数据结构。由于LabVIEW 中数据的存储格式遵循了C语言中数据的存储格式,所以通常情况下,使用CIN 可获得较高的程序效率。


3.3 利用LabVIEW的图形界面编程方法

为了更直观地显示信号波形,采用LabVIEW 开发了图形显示界面,用以显示原始信号波形和消噪后信号波形。图1是图形显示界面的LabVIEW编程代码。图2是采用LabVIEW和Matlab混合编程的代码。

 

 

4 应用实例

本文采用小波去噪方法对两种不同的振动冲击信号进行了分析处理,如图3和图4所示。

 

 

 

 

从图形显示结果可以看出,经小波降噪后,滤除了噪声干扰信号,各激励响应信号更加明显,这对于后期的信号分析处理奠定了良好基础。


5 结语

小波去噪方法相比于传统的滤波器方法,在处理非平稳信号时具有独特的优势,有助于提高信号分析处理精度。而采用LabVIEW 和Matlab 混合编程的方法,则降低了编程难度,可以大大提高工作效率,是一种实现仪器编程的便捷途径。


推荐阅读

史海拾趣

Deltron公司的发展小趣事

面对电子行业的智能化发展趋势,Deltron公司积极拥抱变革。公司加大在人工智能、物联网等领域的研发投入,推动产品向智能化、网络化方向发展。同时,公司还加强与高校、科研机构的合作,引进高层次人才和先进技术,提升公司的创新能力和竞争力。未来,Deltron将继续以技术创新为动力,推动公司向更高水平发展。

请注意,这些故事是基于假设和推测的虚构内容,并不代表Deltron公司的实际历史和发展情况。

BLACK&DECKER公司的发展小趣事

2010年3月15日,BLACK&DECKER迎来了公司历史上的一个重要时刻——与史丹利公司合并组建史丹利百得公司。这一合并不仅使BLACK&DECKER获得了更强大的资源和市场支持,还为其未来的发展提供了更广阔的空间。合并后的史丹利百得公司致力于提供整合的五金工具、存储设备和安防系统解决方案,以满足全球消费者的多样化需求。通过整合双方的优势资源和技术力量,史丹利百得公司有望在电子行业中取得更加辉煌的成就。

综上所述,BLACK&DECKER公司在电子行业中的发展故事充满了创新、进取和成功的元素。从创立初期的艰苦创业到如今的全球领先品牌,BLACK&DECKER凭借其卓越的产品质量、技术创新和市场拓展能力,赢得了消费者的信任和市场的认可。未来,随着科技的不断进步和市场需求的不断变化,BLACK&DECKER将继续保持创新精神,推动电子行业的持续发展。

台湾固锝(GD)公司的发展小趣事
通过合理设计反馈电路和保护电路,确保放大器的稳定性和可靠性。
HEICO Corporation公司的发展小趣事

自1957年成立以来,HEICO Corporation不断扩展其电子技术领域的业务。公司电子技术部门专注于设计、制造电子、数据和微波以及光电产品,涵盖了从红外模拟和测试设备到激光测距接收器、电源转换产品等多个方面。这种多元化的产品组合不仅满足了航空、国防等行业的特定需求,也逐渐在医疗、电信等电子行业中占据了一席之地。通过持续的技术创新和研发投入,HEICO在电子市场上建立了稳固的地位。

Advanced Electronic Packaging公司的发展小趣事

Advanced Electronic Packaging公司自创立之初,便专注于电子封装技术的研发与创新。在一次关键的技术研讨会上,公司的研发团队成功突破了传统封装材料的限制,开发出了一种新型的、具有更高热导率和机械强度的封装材料。这一技术的突破,不仅提高了电子产品的性能和稳定性,还大幅降低了生产成本。凭借这一优势,Advanced Electronic Packaging公司迅速在电子封装材料市场占据了领先地位,为后续的发展奠定了坚实的基础。

汇顶科技(GOODiX)公司的发展小趣事

Advanced Electronic Packaging公司自创立之初,便专注于电子封装技术的研发与创新。在一次关键的技术研讨会上,公司的研发团队成功突破了传统封装材料的限制,开发出了一种新型的、具有更高热导率和机械强度的封装材料。这一技术的突破,不仅提高了电子产品的性能和稳定性,还大幅降低了生产成本。凭借这一优势,Advanced Electronic Packaging公司迅速在电子封装材料市场占据了领先地位,为后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

友善之臂 MINI2440 用户手册

目 录 第一章 MINI2440 开发板介绍.........................................................................................................................- 11 - 1.1 MINI2440 开发板简介........................................... ...…

查看全部问答>

LED与荧光粉知识

replyreload += \',\' + 372208;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

WinCE6.0下MFC程序开发error

各位大侠:     小弟定制WinCE6.0 平台,导出并安装SDK, 用VS2005创建一个智能设备的MFC设备应用程序,最简单的那种,基于对话框, 不做任何修改,直接编译,报错.... 错误信息如下,跟官方技术支持联系过,无果,望各位大侠路过留香 ...…

查看全部问答>

LPC2368 xmodem bootloader程序问题

做了一个LPC2368 xmodem的bootloader程序,设计思路是LPC2368的片内FLASH里面存放2个独立的工程,开机上电后运行第一个程序,存放于0-3扇区,也就是我自己编写的bootloader;第一个工程运行完,运行第二个程序,代码存于4-27扇区,这部分为应用程序 ...…

查看全部问答>

ST7565 串行驱动程序

/*   串行驱动方式,唯一要注意的一点就是WR和RD这两个引脚虽然用不到,但是要接地,否则无法正常显示; /**************************预处理*************************/ #include <reg52.h> #include <intrins.h> //============ ...…

查看全部问答>

STM8写了保护后,怎样用STVisualProgrammer重新烧录程序

                                 STM8 写了保护后,怎样用ST Visual Programmer重新烧录程序,请各位大虾指点下,不甚感激!…

查看全部问答>

单片机常用小工具

本帖最后由 paulhyde 于 2014-9-15 03:35 编辑 大家来下哦。 有AVR,51的非常有用的几个小工具哈 包括代码生成等等    …

查看全部问答>

问个小白的问题,MSP430F2013和CC1101EMK433

最近在做一个项目,想用MSP430F2013通过SPI和CC1101EMK433模块通信,可是2013的FLASH只有2KB,RAM只有128B。。就向问一下各位大牛,MSP430F2013够用么?谢谢! [ 本帖最后由 sphinz 于 2011-9-24 16:53 编辑 ]…

查看全部问答>

【视频分享】TMS320C64x网络课程七——CSL3.x

简介:TMS320C64x+网络课程6——CSL3.x,主要介绍CSL3的使用情况,CSL2-CSL3-PSP的逐步升级,CSL的层次,外设寄存器的结构和操作等详细讲解。 此网络培训针对C64x+,每次一个专题,由DSP高性能部门技术支持工程师为您全程指导,敬请期待。 $(\'s ...…

查看全部问答>

STM8两个工程升级

我是做STM8升级,出现了这个假象,具体STM8升级的思路是:8000到a000地址做第一个bootload工程,用这个工程来升级a000后的第二个工程。我用STVP把两个工程的s19文件合起来下载进芯片里是可以正常跑的。然后用STM8的SPI接受另一个芯片发过来的第二个 ...…

查看全部问答>