logo资料库

EMD信号处理方法在LabVIEW和MATLAB中的实现.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
第 23卷  第 2期 2008年 6月         北 京 机 械 工 业 学 院 学 报 Journal of Beijing Institute ofM achinery        Vol. 23 No. 2 Jun. 2008 文 章 编 号 : 1008 - 1658 (2008) 02 - 0023 - 05 EMD 信号处理方法在 LabV I EW 和 M ATLAB中的实现 付 瑶 ,王红军 ,吴国新 (北京信息科技大学  机电工程学院 ,北京 100192) 摘    要 :经验模态分解方法 ( EMD )在非平稳信号的分析和处理中起着重要的作用 ,为了 能够方便的使用 EMD方法对信号进行处理 ,现将 LabV IEW 虚拟仪器开发平台良好的用户图形界 面和 MATLAB软件强大的数值分析功能相结合 ,利用 LabV IEW 调用 MATLAB 实现 EMD信号处理 方法 。仿真结果表明对信号进行 EMD分解后 ,使得瞬时频率具有了物理意义 ,但只是对信号进行 了初步处理 ,可根据实际需要进行相应后续处理 。 关  键  词 : 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 Hong xin jun,WU Guo ( School of Electromechanical Engineering, Beijing Information Science and Technology University, Beijing 100192, China) Abstract: Emp irical mode decomposition is an important method for analyzing non stationary signal. LabV IEW virtual instrument is perfect in computer user 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 simulation result indicates that the EMD analysis makes instanta neous frequency physically significant, but it is only the beginning of p rocessing and can be imp roved ac cording to the requirement. Key words: LabV IEW ; MATLAB; signal p rocessing; EMD   EMD 是近年来在机电系统故障诊断中最受关 注 、应用前景比较好的信号处理方法之一 。它在非 平稳信号分析及处理等领域起着十分重要的作用 。 随着机电系统复杂性的提高 ,对信号的处理能力要 求也越来越高 。良好的人机交互界面 、计算机图形 化显示以及强大的数据处理分析能力 ,成为目前信 号处理领域的研究重点 。为此 ,本文利用 LabV IEW 和 MATLAB混合编程技术实现 EMD 方法对非平稳 信号的处理 ,既能提供良好的计算机图形化界面 ,又 具有强大的数据处理分析能力 ,实验仿真结果表明 了该方法的有效性 。 LabV IEW 是美国 National Instruments公司推出 的虚拟仪器开发平台软件 ,它对于一般信号的分析 处理方便 ,但是不能完全提供用户所需要的驱动程 序和调用系统程序实现底层操作 , 不擅长完成大量 数据处理的任务 。因此对于一些虚拟仪器中需要进 行大量数据运算处理的复杂应用就显得有些力不从 心 [ 1 ] 。 MATLAB 软件为工程计算领域提供了准确 、高 效的多种功能的工具箱 ,在信号和图像处理等领 域具有无可比拟的优势 。但是 , MATLAB 的人机交 互界 面 、数 据 采 集 功 能 较 差 。通 过 LabV IEW程 序 接口函数来调用 MATLAB 软件中强大的数据处理 软件包 ,使软件平台具有更强的数据处理能力 ,用 收稿日期 : 2008 - 05 - 23 基金项目 :北京市自然科学基金项目 (3083019) ;北京市自然科学基金项目 (3062008) 作者简介 :付  瑶 (1981 - ) ,女 ,吉林梨树人 ,北京信息科技大学机电工程学院硕士研究生 ,主要从事机械故障诊断及预测方面的研究。
42 北京机械工业学院学报                   第 23卷 LabV IEW 设计用户图形界面 ,负责数据采集和网络 通信 ;由 MATLAB 在后台提供算法供 LabV IEW 调 用 。 1 基于 EMD 的信号处理方法 基于模态分解的时频分析方法于 1998 年由美 国国家宇航局的 Norden E. Huang提出 ,他是运用基 于经验的模态分解方法 ,将一个时间序列信号分解 成有限个不同时间尺度的内禀模态函数 IMF ( intrin sic mode function) ,然后将每个 IMF进行 H ilbert - Huang变换 ,得到时频平面上的能量分布谱图 ,用来 分析信号时频谱特征的信号分析方法 。 H ilbert - Huang变换适合处理非线性 、非平稳信号 。用这种 方法进行分析可更准确有效地掌握原信号的特征信 息 。此方法包括两个过程 :经验模态分解和 H ilbert 变换 ,其中最关键的部分是 EMD 方法 。 EMD 方法 基于信号的局部特征时间尺度 ,能把复杂信号函数 分解为有限的内禀模态函数之和 ,每一个 IMF所包 含的频率成分不仅与分析频率有关 ,而且最重要的 是随信号本身变化而变化 ,因此 , EMD 方法是自适 应的信号处理方法 。 1. 1 EMD 基本理论 假设 :任一信号都是由若干内禀模态函数组成 的 ,任何时候 ,一个信号都可以包含许多内禀模态函 数 ,如果内禀模态函数之间相互重叠 ,便形成复合信 号 。对于内禀模态函数 ,可以用 H ilbert变换构造解 析信号 ,然后求出瞬时频率 。而对于一般的不满足 内禀模态函数条件的复杂信号 ,先要采用 EMD方法 将其分解 。 EMD 方法将一个复杂的信号分解为若 干个内禀模态函数之和 ,它基于一个基本假设 ,任何 复杂的信号都是由一些不同的内禀模态函数组成 , 每一个内禀模态函数不论是线性或是非线性的 、非 平稳的 ,都具有相同数量的极值点和过零点 ,在相邻 的两个过零点之间只有一个极值点 ,而且上下包络 线关于时间轴局部对称 ,任何两个模态之间是相互 独立的 ;任何时候 ,一个信号都可以包含许多内禀模 态函数 ,如果模态函数相互重叠 ,便形成复杂信号 。 在此假设基础上 ,可以采用 EMD方法通过下面的步 骤对任何信号 x ( t)进行分解 [ 2 ] 。 ①确定信号的所有的局部极值点 , 然后用 3次 样条线将所有的局部极大值点连接起来形成上包络 线 。 ②再用 3次样条线将所有的局部极小值点连 接起来形成下包络线 , 上下包络线应该包络所有的 数据点 。 ③上下包络线的平均值记为 m 1 ,求出 x ( t) - m 1 = h1 ( 1) 理想地 ,如果 h1 是一个 IMF,那么 h1 就是 x ( t) 的第 1个 IMF分量 。 ④如果 h1 不满足 IMF的条件 ,把 h1 作为原始 数据 ,重复步骤 ①~③, 得到上下包络线的平均值 m 11 ,再判断 h11 - h1 - m 11是否满足 IMF的条件 ,如 不满足 ,则重循环 k次 ,得到 h1 ( k - 1) - m 1k = h1k ,使得 h1k满足 IMF的条件 。记 c1 = h1k ,则 c1 为信号 x ( t) 的第 1个满足条件的分量 。 ⑤将 c1 从 x ( t)中分离出来 ,得到 ( 2) r1 = x ( t) - c1 将 r1 作为原始数据重复步骤 ①~④,得到 x ( t) 的第 2个满足 IMF条件的分量 c2 ,重复循环 n次 ,得 到信号 x ( t)的 n 个满足 IMF条件的分量 。这样就 有 r1 - c2 = r2 r2 - c3 = r3   ⁝ rn - 1 - cn = rn 当 rn 成为一个单调函数不能再从中提取满足 IMF条件的分量时 ,循环结束 。这样由式 ( 2 )和式 (3)得到 ( 3) n i = 1 ci + rn x ( t) = ∑ 式中 , rn 称为残余函数 ,代表信号的平均趋势 。 EMD的分解过程其实是一个“筛分 ”过程 ,在 “筛分 ”的过程中 ,不仅消除了模态波形的叠加 ,而 且使波形轮廓更加对称 。 EMD 方法从特征时间尺 度出发 ,首先把信号中特征时间尺度最小的模态分 离出来 ,然后分离特征时间尺度较大的模态函数 ,最 后分离特征时间尺度最大的分量 ,可以把 EMD方法 看成是一组高通滤波器 。 如图 1所示为整个“筛分 ”过程的流程 [ 3 ] 。 分解过程中多次应用了 3次样条插值 ,使得信 号两端点附近出现大的失真 ,严重时可能使后续分 解失去继续研究的意义 ,即所谓的“端点效应 ”,所 以在进行 EMD分解后还要进行必要的端点效应抑 制处理 。
 第 2期           付  瑶等 : EMD信号处理方法在 LabV IEW 和 MATLAB中的实现 52 右键 , Functions Palette 的 Mathematics → 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 Out put”。这样数据就可以通过 LabV IEW 与 MATLAB 接口传递给 MATLAB 应用程序 ,完成对信号的分析 和处理 ,然后再将处理完成的结果返回给 LabV IEW 并显示出来 。LabV IEW 与 MATLAB 间的调用关系 以及数据传递可以通过图 2清晰地表达 [ 5 ] 。 图 1 EMD方法的流程图 2 EMD 信号分析方法的实现过程 2. 1 LabV IEW 中调用 M ATLAB的方法 在 LabV IEW 中调用 MATLAB 应用程序 ,主要 有两种实现方法 。一种是使用 ActiveX函数模板来 实现 ,另一种是直接调用 MATLAB Scrip t节点来实 现 。 ①使用 ActiveX 函数模板对 MATLAB 有很强 的控制能力 。可以 随时 打开和 关闭 MATLAB , 与 MATLAB进行字符数组传输 。但是在使用 ActiveX 函数模板时 ,经常会遇到数据类型的转换以及在 LabV IEW 顺序结构中不提供使用 ActiveX等问题 , ActiveX函数模板适于较大的应用程序开发 。 ② MATLAB Scrip t节点具有多输入 、多输出的 特点 ,可以一次处理较大的信息量 。MATLAB 脚本 可以先在 MATLAB 环境下调试 ,运行无误后再导入 到 MATLAB Scrip t节点中 。MATLAB Scrip t节点对 输入 、输 出数 据的 类型 有明确 的要 求 , 只 有 Lab V IEW 中的数据类型与 MATLAB 中的数据型相匹 配 ,才能进行数据传输 。使用 MATLAB Scrip t节点 的方法快捷方便 ,但不利于较大的应用程序开发 。 当需要使用时 ,可将其模块化 ,采用主程序动态加 载 。 本文采取调用 MATLAB Scrip t节点的方法 。其 具体调用方法为 :在 LabV IEW 的程序框图界面单击 图 2 LabV IEW 与 MATLAB 的调用关系图 EMD 方法在 LabV IEW 和 M ATLAB中的 2. 2 实现 将 LabV IEW 和 MATLAB 相结合来实现 EMD 信号分析的方法 ,可以对复杂信号进行分解 ,使其瞬 时频率具有物理意义 。下面以一种典型的旋转机械 非平稳振动信号为例来验证这种方法的有效性 [ 6 ] 。 选取一个具有周期性信号 、调幅 、调频 、峰值脉冲及 噪声背景特征的信号为对象 ,它的数学描述表示为 : s ( t) = 1. 2 sin (2π400 t) [ 1 + 0. 2cos ( 2π50 t) ] + 0. 8 sin[ 2π150 t + sin (2π30 t) ] + 2. 5 sin (2π900 t) + x ( t) + v ( t) 其中 , x ( t)是脉宽为 2 个采样单位 , 幅值为 3. 5, 中 心分别位于 200, 800采样点处的三角脉冲 ; v ( t)是 均值为 0,方差为 0. 01的随机噪声 。振动信号采样 频率为 6 400 Hz,采样点序列长度为 1 024点 。该信 号的时域波形如图 3所示 。 用 MATLAB 程序语言将这个信号表述出来 ,并 作为原始数据载入到 LabV IEW 中 。当按下开始按 钮后 ,被载入的信号由预先编制好的程序进行 EMD 处理 ,其中 ,可以选择需要分解的 IMF分量的个数 以及端点效应的抑制方法 。本例采用了多项式拟合 极值延拓 、镜像极值延拓 、神经网络序列延拓等多种 端点效应的抑制方法 ,用户可以根据需要任意选择 。 当然 ,这些处理方法都要在 MATLAB 程序中预先编
62 北京机械工业学院学报                   第 23卷 制好 。图 4为 LabV IEW 中主要程序框图 。 图 3 分析信号的时域波形图 图 4 LabV IEW 框图程序   其中 , t为信号的时间信息 , s为信号的幅值信 息 , n为分解的 IMF数目 , l为端点效应抑制方法的 代码 。从图中可以看出 , LabV IEW 中两次调用了 MATLAB ,其中第一次调用的目的是导入原始待分 析信号 ,并使其显示在 LabV IEW 前面板上 ;第二次 调用的目的是用 EMD方法对信号进行处理 ,其中包 括 EMD分解及端点效应的处理等 。图 5为程序运 行后的仿真结果 。 图 5 EMD方法处理后的 LabV IEW 前面板显示
 第 2期           付  瑶等 : EMD信号处理方法在 LabV IEW 和 MATLAB中的实现 72 2. 3 应注意的问题 由于 LabV IEW 和 MATLAB 分属于不同的编程 环境 ,因此在程序调用过程中还应注意一些问题 。 首先对 MATLAB 的版本要求应该在 5. 0 及更高版 本以上 ,才能确保调用的顺利进行 ; 再者由于 Lab V IEW 和 MATLAB 有着各自的数据类型 ,在编写程 序时一定要注意数据类型的匹配性 ,否则无法在两 者之间实现参数传递 ; 最后对于将要导入或写入 MATLAB Scrip t 节 点 的 程 序 , 注 意 不 要 引 起 Lab V IEW 在辨识上混淆 ,以免导致数据传递的失败 ,后 续的程序无法执行 。 3 结论及应用 通过仿真结果可以说明在 LabV IEW 中通过调 用 MATLAB应用程序实现 EMD 方法可以顺利的执 行 ,且效果理想 ;另一方面也证明用 EMD 方法能有 效地对非平稳信号进行处理 。在实际工程应用中 , 有更为复杂的信号需要及时的采集 、分析和处理 ,本 文为解决这类问题提供了依据 ,此方法完全可以应 用在机电系统的故障诊断及早期的故障趋势预警等 领域 。另外 ,本文只是对信号分析方法进行了初步 处理 ,在应用中可以结合实际情况对分解得到的各 IMF分量再进行 H ilbert变换 ,将各个 IMF 转化为解 析信号 ,从而可以在频域进行继续分析 。通过 H il bert变换得到的瞬时频率具有清晰的物理意义 ,能 够得到非平稳信号完整的时频分布 。 在工程领域 , LabV IEW 和 MATLAB 是世界上倍 受工程应用人员青睐的 , EMD 信号处理方法也是是 近年来最新且高效的信号处理方法 ,三者的有机结 合必然会为工程应用带来更为广阔的前景 。 参考文献 : [ 1 ] 周  惠 ,韩  焱. LabV IEW 和 MATLAB 在水声 信号处理中的应用 [ J ]. 微计算机信息 , 2007 (8) : 110 - 111 [ 2 ] Norden E Huang, Zheng Shen, Steven R Long, et al. The emp irical mode decomposition and the H il bert apectrum for nonlinear and non stationary time series analysis[ J ]. Proc R Soc Lond A , 1998 (454) : 903 - 995 [ 3 ] 于德介 ,程军圣 ,杨  宇. 机械故障诊断的 H il huang变换方法 [M ]. 北京 : 科学出版社 , bert 2006 [ 4 ] 陈锡辉 ,张银鸿. LabV IEW 8. 20 程序设计从入 门到精通 [M ]. 北京 :清华大学出版社 , 2007 [ 5 ] 周  萍 ,应启戛 ,张燕连. 基于 LabV IEW 的小波 分析的实现及应用 [ J ]. 技术创新 , 2007 ( 9 ) : 179 - 180 [ 6 ] 李建伟. 非平稳状态下的机电系统状态分析中 信号分析技术的研究 [D ]. 北京 :北京信息科技 大学机电工程学院 , 2005
分享到:
收藏