
使用pyeemd需要libeemd,这是一个c语言写的库(编译时需早漏要gsl库),下载后经过常规编译之后生成一个静态库libeemd.a,一个动态库libeemd.so,和相应头文件 eemd.h,一般指定静态库 *.a(LIBRARY_PATH)或者动态库 *.so(山兄LD_LIBRARY_PATH)的位置就可以 。用C 直接用eemd这个库也可以,速度上比matlab版本是有提升的。
这个分解是基于希尔伯特-黄变换和希尔伯特变换而来,通过黄变换滤除信号里局域的直流成分,短时内是纯交流成分。而之所以不直接使用希尔伯特变换后利侍逗用复信号的d(phi)/dt=w (phi是角度)的方式来求信号的瞬时频率,是因为信号可能存在非频率波动的成分,也就是说可能信号的波动是因幅值引起,这样求得的频率可能是负值,而希尔伯特变换的信号频率不存在负的,所以才需要以上的黄变换这个分解imf的过程。但这个分解精度纯粹因信号本身而异,存在一定的风险。不过据我认为,信号悉郑在离散的情况下,黄变换并不是必须的,只需要在希尔伯特变换之前加一些简单处理即可,这种方式得到的瞬时频率与用了imf后得到的再matlab下得到的图像基本一样。楼主可自己编写程序,老陆卖这个程序包不是必须欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)