原标题:1024 python EMD HHT
在1024这个时间点,心中虽然感慨万千,却写不出那万水千山。还是老老实实的写个HHT吧——俗称希尔伯特变换,这里不涉及复杂的理论知识以及数学公式,这里只有简简单单的代码,如果想看详细的原理和公式推导的话请出门左拐。
HHT是在EMD的基础上进行的,首先把信号进行EMD分解(俗称的经验模态分解),然后根据EMD分解得到的各个分量进行Hilbert转换得到最终的时频图。
这里主要用的库就是Scipy这个库太强大了,这个库主要是用于科学计算,Scipy值得各位去研究一番。
友情提示:本次代码是在Jupyter上进行编码运行的
直接上代码了
导入所需的包
加载所需的方法1
加载所需的方法2
加载所需的方法3
加载所需的方法5
以上代码为方法准备阶段,接下来进行读取数据绘制图形。
读取数据
分析红色框中的数据
这次主要是对上图红色框内的数据进行EMD and HHT,要不然数据太多了会导致EMD分解的分量太多!
获取红色框内的数据
截取到红色框的数据并进行绘图
红框内的数据波形
接着进行EMD模态分解,这里用的是pyhht的库进行的模态分解,由于我们在上面定义好了plotIMFS方法(绘制每个IMF),所以这里直接调用
直接画图
IMFs各个分量
接着进行单个的HHT转换
hht转换前需要进行IMF分量的包络线
绘制IMF6分量的包络线
HHT转换结果图
从上图可以看出此分量在1秒钟的变化情况。
最后把所有的分量都绘制出来
绘制各个分量的包络线
所有的分量HHT转换的结果
经过hht转换会出现没有意义的负频率,我这里取了绝对值,把各个分量画在一起就会显得非常挤,推荐单独画HHT转换图——在EMD分解后得到的各个分量中选取所需的分量进行单独分析。
Hello World 1024 返回搜狐,查看更多
责任编辑: