MATLAB R2018a中信號處理相關的新函數: 求瞬時頻率 instfreq, emd, hht
03-19
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)
※如何畫三維波函數圖像?