MATLAB R2018a中信號處理相關的新函數: 求瞬時頻率 instfreq, emd, hht

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一致, 進一步, 還可以看到這些瞬時頻率分別是多少.


推薦閱讀:

matlab矩陣對角元元素修改問題?
APPs(000)關於專欄內容介紹
【線性代數】對矩陣做初等變換
解析Matlab的workspace(2)
如何畫三維波函數圖像?

TAG:MATLAB | 數字信號處理 |