之前写过一篇Matlab下经验模态分解工具箱的安装教程。在这里:http://www.jianshu.com/p/d80ed14e4da5
但是作为一个经常用Python的人来说,免不了要找找Python下是否也有EMD的工具包。还真被我找到了。那就是pyhht这个python包。看名字就知道,其实希尔伯特-黄变化的工具包。经验模态分解是 希尔伯特-黄 变换其中的一步。
好了,废话不多说,下面进入正题。
一、系统环境
- windows 10 64bit (版本1607,OS内部版本 14393.693)
- WinPython-64bit-2.7.10.3
它是windows下的一个Python的科学计算环境,便携版的。安装后可以到处移动,非常方便。
- pyhht包
它可以用来进行经验模态分解。
二、文件准备
1、windows 10就不必我说了,其实windows 7肯定也是可以的。大家可以自己试试。
2、安装WinPyhon。下载地址:https://winpython.github.io/
下载基于Python 2.X系列的,因为pyhht那个包不支持python 3.x。我下载的是WinPython-64bit-2.7.10.3。
3、pyhht包,这里下载:https://github.com/jaidevd/pyhht
单击clone and donwload那个绿色按钮,下面有个Download ZIP,就是它了。这样可以不用安装git。
三、安装WinPython
WinPython安装很简单,按照提示下一步就可以了。有一点,别安装到带空格的目录下,建议安装到根目录下吧。例如我就直接安装到了J: 盘根目录下。
四、安装pyhht
有一点值得一提的是,pyhht中有2个示例程序(examples)是依赖pytftb这个包的(simple_emd.py这个示例程序不依赖pytftb),不过,如果你不打算运行那2个示例程序,不用理会pytftb。pyhht主要依赖的NumPy, SciPy 和 matplotlib这三个包,WinPython中都有,不需要我们手动安装。
1、将pyhht-dev.zip解压到某个目录,例如我解压到H盘的tt目录下,h:\tt\pyhht-dev
2、找到WinPython的安装目录,打开WinPython Command Prompt.exe
3、在WinPython Command Prompt命令行窗口中依次输入如下命令:
h:
cd h:\tt\pyhht-dev
python setup.py install
其中命令h:
是切换到H盘符,cd命令进入到pyhht的解压目录,python setup.py install
执行安装。
一般情况下不报错,大功告成!
五、测试
接下来我们测试下,我们安装的pyhht这个包是否真的能进行EMD分解。
1、找到WinPython安装目录。打开Spyder.exe,它是一个python的集成开发环境(IDE)。
2、 在Spyder中打开pyhht解压目录中的示例程序,我的是在:h:\tt\pyhht-dev\docs\examples
3、OK,点击Spyder工具栏上的绿色三角形,或者按下F5
,运行这个示例程序吧,结果如下:
一点点小问题: 我发现调用pyhht这个包里面的函数plot_imfs只绘制出了一个imfs分量,实际的分解分量是有2个的,再加一个residue分量,总共3个。也就是说imfs是有3行的。我看了下,分解的结果是正确的,但是绘图的部分不正确,可能是plot_imfs这个函数有问题吧,有待考证。
4、与Matlab工具箱package_emd分解结果对比,发现对于同一信号,分解出来的结果是一样的。大家可以放心用了。