首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >希尔伯特-黄变换:瞬时频率

希尔伯特-黄变换:瞬时频率
EN

Stack Overflow用户
提问于 2014-04-29 01:54:52
回答 3查看 2K关注 0票数 1

我正在用Java实现“经验模式分解”。下一步是希尔伯特-黄变换,我需要找到如何获得“瞬时频率”。有人知道怎么拿到它吗?

使用EMD方法,任何复杂的数据集都可以分解成有限的、通常很少的分量,这些分量是固有模态函数(IMF)的集合。下一步是希尔伯特-黄变换。由此我计算了信号的相位,在我必须计算瞬时频率之后,我在Matlab代码中搜索,如下所示:http://read.pudn.com/downloads100/sourcecode/math/408870/emd/instfreq/archive/ifreq.m__.htm

但我不明白。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2017-10-28 01:26:03

实例频率可以在Python中通过以下方式计算

代码语言:javascript
复制
def hilb(s, unwrap=False):
    from scipy.signal import hilbert
    H = hilbert(s)
    amp = np.abs(H)
    phase = np.arctan2(H.imag, H.real)
    if unwrap: phase = np.unwrap(phase)
    return amp, phase

inst_amp, phase = hilb(imf, unwrap=True)
inst_freq = np.diff(phase)
票数 1
EN

Stack Overflow用户

发布于 2016-01-19 02:03:54

希尔伯特-黄变换是经验模态分解(EMD)和希尔伯特变换的结合。

首先,EMD是一种给出固有模式函数(IMF)的算法。

然后,将希尔伯特变换应用于每个IMF。

从国际货币基金组织,希尔伯特变换给出一个pi/2相位延迟信号,从中可以计算相位和相位的时间导数,它与瞬时频率成比例。

您可以在该页面上找到有关EMD算法变体的有趣教程和详细信息:http://perso.ens-lyon.fr/patrick.flandrin/emd.html

票数 0
EN

Stack Overflow用户

发布于 2019-06-27 15:35:46

您可以使用希尔伯特-黄变换(HHT)来处理信号数据,HHT是经验模式分解(EMD)和希尔伯特频谱分析(HSA)的组合,使用Matlab或Python。在Matlab或Python中,您可以直接使用HHT方法,而不需要自己计算瞬时频率(IF)。

以Matlab为例:

首先,对信号数据进行emd,得到IMF和残差,代码为: IMF,pchip,info = emd( signal,‘插值’,'pchip','Display',0);

其中fs为采样频率P,F,T,IMFINSF,IMFINSE=hht(IMF,fs);

此外,Python中还有一些工具和方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23347964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档