泪目, 以前自己写代码写emd函数, 现在官方有这个函数了!
instfreq: Estimate instantaneous frequency
适用于瞬时频率的成分只有一个的信号, 如果成分有多个, 可以先进行EMD分解.
两种算法:
1 基于STFT.
以功率为权重, 频率的加权平均的频率为瞬时频率.
2 基于hilbert变换.
几个例子:
emd: Empirical mode decomposition
hht: Hilbert-Huang transform
hht本质是emd+hilbert, 具体分两步:
第一步, 对信号进行emd分解, 生产若干个imf
第二步, 对每个imf进行hilbert变换, hilbert变换的函数就是hilbert, R2006a之前就有了.
emd函数是R2018a的新函数, 第三方函数很早就有了.
hht相比hilbert的优势是:
hilbert只能对任意时刻的瞬时频率成分单一的信号求瞬时频率.
但是, 如果如果某个时刻的瞬时频率成分有多个怎么办呢?
emd就是将信号分成若干个imf, 每个imf的瞬时频率是单一的, 这样就满足了hilbert的适用范围了.
举个例子:
进行emd分解:
可以看出1000 samples之前, 瞬时频率成分有2个, 1000 samples之后, 瞬时频率成分有3个.
使用hht:
可以非常清晰看到: 1秒之前, 瞬时频率成分有2个, 1秒之后, 瞬时频率成分有3个(采样频率为1000Hz). 这个结论和emd一致, 进一步, 还可以看到这些瞬时频率分别是多少.
创作不易, 请大家"素质三连": 点赞, 收藏, 分享.