EMD信号处理方法在LabVIEW和MATLAB中的实现
- 格式:pdf
- 大小:575.53 KB
- 文档页数:5
图 1 EMD 方法的流程图
2 EMD 信号分析方法的实现过程
2. 1 LabV IEW 中调用 M ATLAB的方法 在 LabV IEW 中调用 MATLAB 应用程序 ,主要
有两种实现方法 。一种是使用 ActiveX函数模板来 实现 ,另一种是直接调用 MATLAB Scrip t节点来实 现。
第 2期 付 瑶等 : EMD 信号理方法在 LabV IEW 和 MATLAB中的实现
25
右键 , Functions Palette 的 M athematics → Scrip ts & Formulas→ Scrip t Nodes →MATLAB Scrip t Node[ 4 ] 。 MATLAB Scrip t节点的使用有两种方式 ,既可以打 开该节点直接在框图内书写 MATLAB 程序代码 ;也 可以将已经写好的 MATLAB 程序导入节点中 ,这时 需在该节点上单击鼠标右键 ,在弹出的菜单中选取 “ Import…”,在弹出的对话框中选择要导入的文件 。 LabV IEW 与 MATLAB Scrip t节点之间数据的交换可 以通过为 MATLAB Scrip t节点增加输入输出端子来 实现 ,右键单击边框 ,选择“Add Input”或“Add Out2 put”。这样数据就可以通过 LabV IEW 与 MATLAB 接口传递给 MATLAB 应用程序 ,完成对信号的分析 和处理 ,然后再将处理完成的结果返回给 LabV IEW 并显示出来 。LabV IEW 与 MATLAB 间的调用关系 以及数据传递可以通过图 2清晰地表达 [ 5 ] 。
⑤将 c1 从 x ( t)中分离出来 ,得到
r1 = x ( t) - c1
(2)
将 r1 作为原始数据重复步骤 ①~④,得到 x ( t)
的第 2个满足 IM F条件的分量 c2 ,重复循环 n次 ,得
到信号 x ( t)的 n 个满足 IMF条件的分量 。这样就
有
r1 - c2 = r2
r2 - c3 = r3
(3)
⁝
rn - 1 - cn = rn 当 rn 成为一个单调函数不能再从中提取满足 IM F条件的分量时 ,循环结束 。这样由式 ( 2 )和式 ( 3 )得到
n
x ( t) = ∑ci + rn i=1
式中 , rn 称为残余函数 ,代表信号的平均趋势 。 EMD 的分解过程其实是一个“筛分 ”过程 ,在 “筛分 ”的过程中 ,不仅消除了模态波形的叠加 ,而 且使波形轮廓更加对称 。 EMD 方法从特征时间尺 度出发 ,首先把信号中特征时间尺度最小的模态分 离出来 ,然后分离特征时间尺度较大的模态函数 ,最 后分离特征时间尺度最大的分量 ,可以把 EMD 方法 看成是一组高通滤波器 。 如图 1所示为整个“筛分 ”过程的流程 [ 3 ] 。 分解过程中多次应用了 3 次样条插值 ,使得信 号两端点附近出现大的失真 ,严重时可能使后续分 解失去继续研究的意义 ,即所谓的“端点效应 ”,所 以在进行 EMD 分解后还要进行必要的端点效应抑 制处理 。
①确定信号的所有的局部极值点 , 然后用 3 次 样条线将所有的局部极大值点连接起来形成上包络 线。
②再用 3次样条线将所有的局部极小值点连
接起来形成下包络线 , 上下包络线应该包络所有的
数据点 。
③上下包络线的平均值记为 m 1 ,求出
x ( t) - m 1 = h1
(1)
理想地 ,如果 h1 是一个 IM F,那么 h1 就是 x ( t)
关 键 词 : LabV IEW ; MATLAB;信号处理 ; EMD 中图分类号 : TP 311 文献标识码 : A
Rea liza tion of EMD signa l processing m ethod in LabV I EW and M ATLAB
FU Yao,WANG Hong2jun,WU Guo2xin
LabV IEW 是美国 National Instrum ents公司推出
的虚拟仪器开发平台软件 ,它对于一般信号的分析 处理方便 ,但是不能完全提供用户所需要的驱动程 序和调用系统程序实现底层操作 , 不擅长完成大量 数据处理的任务 。因此对于一些虚拟仪器中需要进 行大量数据运算处理的复杂应用就显得有些力不从 心 [1]。
EMD 信号处理方法在 LabV I EW 和 M ATLAB中的实现
付 瑶 ,王红军 ,吴国新
(北京信息科技大学 机电工程学院 ,北京 100192)
摘 要 :经验模态分解方法 ( EMD )在非平稳信号的分析和处理中起着重要的作用 ,为了 能够方便的使用 EMD 方法对信号进行处理 ,现将 LabV IEW 虚拟仪器开发平台良好的用户图形界 面和 MATLAB 软件强大的数值分析功能相结合 ,利用 LabV IEW 调用 MATLAB 实现 EMD 信号处理 方法 。仿真结果表明对信号进行 EMD 分解后 ,使得瞬时频率具有了物理意义 ,但只是对信号进行 了初步处理 ,可根据实际需要进行相应后续处理 。
第
23卷 第 2期 2008年 6月
北 京 Jou rna l
机械工业学 of Beijing Institute
院 学 报 Vol. 23 No.
of M achinery
Jun. 2008
2
文 章 编 号 : 1008 - 1658 (2008) 02 - 0023 - 05
( School of Electromechanical Engineering, Beijing Information Science and Technology University, Beijing 100192, China)
Abstract: Emp irical mode decomposition is an important method for analyzing non2stationary signal. LabV IEW virtual instrument is perfect in computer2user graphical interfaces while MATLAB software has powerful compute ability to callMATLAB to realize EMD analysis in LabV IEW. The two are combined to make EMD p rocessing convenient. The sim ulation result indicates that the EMD analysis makes instanta2 neous frequency physically significant, but it is only the beginning of p rocessing and can be imp roved ac2 cording to the requirem ent.
收稿日期 : 2008 - 05 - 23 基金项目 :北京市自然科学基金项目 (3083019) ;北京市自然科学基金项目 (3062008) 作者简介 :付 瑶 (1981 - ) ,女 ,吉林梨树人 ,北京信息科技大学机电工程学院硕士研究生 ,主要从事机械故障诊断及预测方面的研究 。
24
北京机械工业学院学报 第 23卷
MATLAB 软件为工程计算领域提供了准确 、高 效的多种功能的工具箱 ,在信号和图像处理等领 域具有无可比拟的优势 。但是 , MATLAB 的人机交 互界 面 、数 据 采 集 功 能 较 差 。通 过 LabV IEW程 序 接口函数来调用 MATLAB 软件中强大的数据处理 软件包 ,使软件平台具有更强的数据处理能力 ,用
假设 :任一信号都是由若干内禀模态函数组成 的 ,任何时候 ,一个信号都可以包含许多内禀模态函 数 ,如果内禀模态函数之间相互重叠 ,便形成复合信 号 。对于内禀模态函数 ,可以用 H ilbert变换构造解 析信号 ,然后求出瞬时频率 。而对于一般的不满足 内禀模态函数条件的复杂信号 ,先要采用 EMD 方法 将其分解 。 EMD 方法将一个复杂的信号分解为若 干个内禀模态函数之和 ,它基于一个基本假设 ,任何 复杂的信号都是由一些不同的内禀模态函数组成 , 每一个内禀模态函数不论是线性或是非线性的 、非 平稳的 ,都具有相同数量的极值点和过零点 ,在相邻 的两个过零点之间只有一个极值点 ,而且上下包络 线关于时间轴局部对称 ,任何两个模态之间是相互 独立的 ;任何时候 ,一个信号都可以包含许多内禀模 态函数 ,如果模态函数相互重叠 ,便形成复杂信号 。 在此假设基础上 ,可以采用 EMD 方法通过下面的步 骤对任何信号 x ( t)进行分解 [2 ] 。
② MATLAB Scrip t节点具有多输入 、多输出的 特点 ,可以一次处理较大的信息量 。MATLAB 脚本 可以先在 MATLAB 环境下调试 ,运行无误后再导入 到 MATLAB Scrip t节点中 。MATLAB Scrip t节点对 输入 、输 出 数 据 的 类 型 有 明 确 的 要 求 , 只 有 Lab2 V IEW 中的数据类型与 MATLAB 中的数据型相匹 配 ,才能进行数据传输 。使用 MATLAB Scrip t节点 的方法快捷方便 ,但不利于较大的应用程序开发 。 当需要使用时 ,可将其模块化 ,采用主程序动态加 载。
①使用 ActiveX 函数模板对 MATLAB 有很强 的控制 能力 。可 以 随 时 打 开 和 关 闭 MATLAB , 与 MATLAB 进行字符数组传输 。但是在使用 ActiveX 函数模板时 , 经常会遇到数据类型的转换以及在 LabV IEW 顺序结构中不提供使用 ActiveX 等问题 , ActiveX函数模板适于较大的应用程序开发 。
LabV IEW 设计用户图形界面 ,负责数据采集和网络 通信 ;由 MATLAB 在后台提供算法供 LabV IEW 调 用。