利用Hilbert变换提取信号瞬时特征的算法实现
研究了在工程中如何通过算法来实现利用 Hilbert 变换提取信号的瞬时特征。深入地分析了如何利用数值微分法提高提取瞬时频率特征的精度。最后,给出了一种可行的算法,并通过实验验证了这种方法可以在工程中有效地提取信号的瞬时频率特征。84微机发展第13卷①H(x)=y;H(x)=y;(i=0,1,…n)(j=0,1(11)②在每个小区间/x1,x1+17i=0,1,…,n-1)上由相关定理知:当划分的小区间的长度趋于零时H(x)是三次多项式。s(x)及其一至三阶导数分别一致收敛到f(x)及其一至可以写出分段三次 Hermite插值函数的分段表达式:三阶导数。所以用三次样条插值函数去近似表达用离散值(x)=(1+2x-x过+)2v;+表示的原函数,具有较高的可靠性。3)两种插值的比较挨尔米特 Hermite插值较三次样I-i,1+2条插值具有较好的稳定性与收敛性,但它只能休让各段曲线在连接点上的连续性,而不能保证整条曲线在这些点上y+1Ditl的光滑性。而有时不仅要求曲线连续,而且要求曲线的曲X/(i=0,18)率也连续即要求分段插值函数具有连续的一阶导数,埃H(x)的导数为尔米特 Hermite插值此时就不能满足上述要求6次样条插值较埃尔米特 Hermite插值具有较好的H(x光滑程度,用三次样条插值函数求数值导数比用埃尔米特+2(x-x2(xHermite插值可靠性大,但计算比较复杂,二者的区别见图h2yV+17, h(i-0,12)三次样条插值。已知函数y=f(x)在区间/a,b上的n+1个节点上的值y=f(x;)(i=0,1,…m),求插值函数s(x),使(i=0,1图4 Hermite插值与三次样条插值的比较图2在每个小区间x,x+1(=0.1.…n-1)上利用埃尔米特 Hermite插值得到的2FSK信号的瞬时s(x是三次多项式,记为s(x频率见图5,利用二次样条插值得到的该信号的瞬时频率③3(x)在la,b/上二阶连续可徵。见图6。数s(x)称为f(x)的三次样条插值函数可以利用节点处的二阶导数值为参数,也可以利用节点处的导数值为参数求三次样条插值涵数的表达式。若利用节点处的一阶导数值为参数,求得的三次样条插值函数的表达式为(x)=M-1x-x-)36 h6 hMihi5 DEMeN5a亩pai66hx∈[x;,x+17,b-x+1-x,S"(x)=M图5由 Hermite插值提取图6由三次样条插值提取(j=0,1的2FSK信号的瞬时频率的2FSK信号的瞬时频率对s(x)进行求导,利用S(x)在节点处一阶导数连从图5、图6可以看出利用三次样条插值得到的瞬时续的性质结合边界条件求解出参数M,把求得的参数代频率可以准确反映出信号具有的的摒时频率特征而利用入公式(10),即得三次样条插值函数的s(x)分段表示式。埃尔米特 Hermite插值得到的瞬时频率与信号具有的瞬s;(x)的导数为时频率特征不符。这是因为利用数值微分法求瞬时频率插值以后喫进行求导。三次样条插值函数具有连续的二阶M2 hiM; 2 hj导数,因而具有较好的光滑程度,符合求导条件,所以可以J+1-h(M2+1-M/)准确求出信号的瞬时频率;而埃尔米特 Hernite插值.不够光滑,虽能保证插值多项式收敛于原函数,但不能保证插x Elx,x;+1 h,=xi+I-x, S(xj )=M;值多顷式的导数收敛于原函数的导数,所以求得的值与信o1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net第6期刘慧婷等:利用 Hilbert变提取信号瞵时特征的算法实现号实际的瞬时频率值不符。实验结果和理论分析结果是(1) Hilbert变换只能近似应用于窄带信号,即形如纹的(t)=a(1)cosu+6(1)),其中>>B(B为信号带2.3.3结论宽)的信号。但实际应用中,存在许多非窄带信号, Hilbcrt利用数值微分法求瞬时频率ω(t)的步骤可以归纳变换对这些信号无能为力为:首先通过三次样条插值得到分段多项式p(1),(2)对于任意给定时刻,通过 Hilbert变换运算后的结pp(抄);然后分别对分段多项式p(t),Pp()关于变量t果只能存在一个频率值,即只能处理任何时刻为单一频率进行求导,得到pd(,ppd(t);最后求出每一时刻t所对的信号。这显然不合理,因为在实东中同一信号会含有多应的导数值,即求得t(t,u(t)。再把求得的值代入公种频率成分式(6)就完成了提取瞬时频率ω(1)的过程。求解结果见(3)对信号进行 Hilbert变换时,信号的两端会出现严图7重的端点效应。提取某些信号瞬时特征所得的瞬时频率在局部出现了负数,端点效应是造成负频率的一个原因而端点效应可以通过利用特征波对原有数据序列进行延拓的方法来解决,具体解决办法将在今后讨论。尽管目前出现了EMD担论4,其目的是将不满足Hibt变换的信号进行分解得到若干个IMF( intrinsic mode function),然后进行 Hilbert运算,达到提取信号瞬时特征的目的。该理论开辟了信号处理的新空间。但它还不够成熟还需喫进一步的完善和研究图7利用数值微分法提取信号的瞬时频率特征参考文献从图7可以看出,以三次烊条指值进行的数值微分可[]黄长蓉. Hilbert变换及其应用[J].成都气象学院学报以准确岀提取岀信号的瞬时频率特征。199,14(3):273-276.[2]杨小牛,楼A义,徐建良.软件无线电原理与应用[M].北3结束语京:电子工业出版社,2001在工程中, Hilbert变换使得我们对短信号和复杂信号[3]丁丽妤.数值计算方法[M].北京:北京理工大学出版社,的摒时特征的提取成为可能特别是对瞬时频率特征提1997取,在工程中具有十公重要的意义。文中讨论的利用三次[4] Huang N e. The empirical mode decomposition and the hilbert样条插值进行数值徵分以提取瞬时特征的方法是可行的,spectrum for nonlinear and nor stationary time series anal ysis但还存在着如下问题。[].Proc.R.soc.Lond.A,1998,454:903-995(上接第81页)218994。例22(x)=(1-2siny=223101075一般的(A算法计算了120代,求到的最大值为454176.219。154370083改进的α算法计算了34代,求到的最大值为1048575.875。改进后的αA算法收敛速度(指迭代次数)比一般GA算法几乎快了一个数量级,精度也提高了不少,特别是例2的最大值提高一倍多,速度提高这么快是未曾料到的y=74958参考文献+4X Axl Thla[1]陈国良.遗传算法及其应用[M]·北京:人民邮电出版社,图2函数2的图像1996一般GA算法计算了20代,求到的最大值为[2]袁亚湘,孙文瑜.最优化理沦与方法[M]北京:科学出版社,19991.218983[3]张铃,张钹·遗传算法杋理的硏究[J]·软件学报,改进(A算法计算了5代,求到的最大值为2000,11(7):945952o1994-2010ChinaacAdemicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net
- 2020-12-05下载
- 积分:1
华中8型系统二次开发手册
华中数控8型系统二次开发文档,使用语言C++或C#,实测可用牛屮型数控系统二次开发手册报警简介接口列表升级备份简介接口列表事件简介接口列表代码程序管理简介接口列表网络简介接凵列表牛屮型数控系统二次开发手册修订说明新增报警、升级备份、网络接口牛屮型数控系统二次开发手册二次开发简介通过二次开发,用户可以仅关注需要的东西,通过接口定制软件功能,而不用了解底层功能到底如何实现,能够加快开发进度,提高开发效率。二次开发流程华中型数控系统二次开发软件提供接口,能够采集并设置下位机数据,从而实现对下位机的控制。用户只需要自己开发自己关注的功能界面,然后通过调用封装好的二次开发接口,来调用底层数据,调用成功后将值返回给用户。牛屮型数控系统二次开发手册网络版开发网络版开发,可以脱离下位机,比如开发的软件可以独立到用户的电脑,实现上位机和下位机的个相互独立的部分之间通信。电脑上运行的客户端二次开发软件可以采集或者设置到卜位机的数据如下所小运行在用户电脑上,用户可以自己选择要连接的下位机,连接成功后,可以实现对下位机的实时监控等架作。● Net Server楼回自动co连按2014-061214:35:37信息奇存器变量l参数升级备分轴信息机实买尔机床指令没置是示列信息X284340毫米4916毫米F11Y376080享米-37.6271米G200毫米∠17.8500毫米17.8500亳米7.8500毫米00Q度0.000加工程忘名图1 NetServer运行界面牛屮型数控系统二次开发手册软件包配置及使用日前针对的主流开发平台和,提供了不同的二次开发软件包软件包的介绍对于开发,根据开发环境是或者分别提供两种不冋的软件包。只体如下图所小表1软件包列表开发环境SDK包文件动态Lib库文件( HncNetDillib、 HncNetdildl)C++nclude头文件文件夹WindowsHncApi.CS接口文件HncNetdlldl!动态链接库文件Windows下软件包配置及使用在平台下进行的二次开发,需将的二次开发提供的相关软件包文什加入自己的工程文件夹中。下面就分别介绍中的使用环境下开发库、开发库的配置及使用。二次开发库配置配置开发环境步骤:启动新建一个应用程序工程在工程目录下新建一个目录,将二次开发包中的平台的库文件拷贝到新建的目录下将二次开发包中的头文件目录拷贝到工程目录下右键点击⊥程名称,在弹出菜单中选择属性,弹山属性页;选择酉置属性,,常规,在右边附加包含目录中加入头文件路径。牛屮型数控系统二次开发手册++Demo届性页BC.动D)平含活M2笆运蛋〔D通用属性# USInc到式仨三格式用于“端国实”的程序数兵宇(ZI公共语言运行时支持VC-+三录耿消显示疟动版权标志言等级esCw3优化多处理器编译预处理器为编望序列表用 Unicode代巧生成图2配置 include路径选择酉置属性,,预处理器,在右边预处理定义添加宏定义置C:动 Chur台P:活定in37)「配管理()通卫星性预处理定义WIN52-WINDoWHNC DLL IMP A pEBUG: 9%(Preprace!取所有预处理器宇义否忽暗标唯包含路位否页处西到文件页处理取消显示行号否保密注选择配置属性,链接器,输入,在右边附加依赖项中输入,库文件所在路径在忽略特定目录库中输入C+Deme性页(C)后动 Debue)≌(:活动ir32配置兰理稀p通用唐性加农酸项lib/HncNtDIl lib: %(Additional Dcps置属性忽暗所有默认库常规忽路持正默认库c凵 BCD. LIl调过vC++E录标模块忝序哉入托曾资源文件穿规强制符号引用加载的DLL穿规调式图3配置lib路径牛屮型数控系统二次开发手册在生成目标文件所在的文件夹中,加入文件在应用程序文件中加入凼数库头文件的声明,例如至此,用户就可以在中调用网络模块的函数,开始编写应用程序。具体代码可参见以及二次开发范例。二次开发库配置配置开发环境步骤启动新建一个应用程序工程在工程日录下新增文件将该文件添加至工程,并修改域名使与该程序致ec机!盘G),t计!mn年,tm分‖索dea文件编(E)打开新建女件beImu C#demo2014/522151g文件灾J Debug2014/52316:38文件灾o Debuy2014/5/2315:18文件灾U obj2014/5231510文件lAramanI Properties2014/52315:10文件夹CclbFur_LS2014/5/26 10: 27 VisUal C# SuLIL1 cema C++kc demo s2014/528 14: 32 Visual C+ Project5K8C++De吧 emo scf2014/512614:02 SQL Server Com42,530K82014/5/23 10: 38 Microsoft vis Ia-g Form Maincs2014/5/26 13: 47 Visual C#Sourc.2014(5/23 16: 36 Visi al Cf Soure.13 KR二++602014/5/23 16: 36 NE Managed5K82014/5 28 14: 39 Visual C# Sourc.142 KBD U cnum EXCITICN2014/5/26 9: 51 Visual C+ SourC.bs 9 exteuLliur4 PeNter. D2014/5/265: 52 Visual C+ Sourc.5K8图4添加cs文件将复制到目标文件夹北比,m,bm小Db4提 Debug文件(F编辑(E童看织包含到库平≡新∨出I demo_C*修改日期类丑214/5/2613:47立用程序86KB2J14/5/ 2613: 4/ Program Debug100 KBdemo vshost.ex2014/5/2814:29用程序12 KBdemo, shost. exe. manifest221031722:39 MANIFEST文件E KBPerenan2014/5/2811;34用程序扩晨397KB+-DemD3t3山AA⊥I牛屮型数控系统二次开发手册图5添加d文件至此,用户就可以在中调用网络模块的函数,开始编写应用程序。具体代码可参见以及二次开发范例。二次开发接口范例介绍二次开发范例为例,该次开发程序连接下位机后可实时显示:坐标值进给速度主轴速度;进给修条、主轴修条、快移修条:代码当前运行行号,当前运行代码路径及名称;主轴功率、主轴负荷;下位机当前状态;当前程序运行时间;历史报警个数:报警详细信息;从上位杋加载代码到下位机;获取宏变量值。具体功能实现,可参见代码。配置成功后,运行程序,生成界面。红栏状态主接坐标显示生标佰主轴久苛z丛柝坐标值运行时时间Stat进给速度坐标值警历史个数tatC主袖束度斗标值振警详细言息进给修条坐标值仅移诊录生标佰物修杀坐标值当前运行行号坐标直当前运行程序乞序名方克里值选督程尸乞图6运行界面点击连接后,界面显示当前设备运行状态。若连接成功,将显示网络已连接。点击获取宏变量值,显示当前坐标值。选择程序名,输入电脑上待加载的代码路径后,点击确认,将从电脑加载代码到设备。如下所示。
- 2020-12-07下载
- 积分:1