Matlab時頻工具箱中tfrsp函式的說明和使用方法
官方說明
TFRSP為Spectrogram time-frequency distribution,即時頻分佈譜圖。
函式原型為 [TFR,T,F]=TFRSP(X,T,N,H,TRACE) ,用於計算離散時間訊號X的譜圖分佈。
X : 訊號
T : 時間序列(s) (預設 : 1:length(X))。
N : 頻率數 (預設 : length(X))。指的是頻率解析度
H : 分析窗,H是正規化的以便成為單位能量 (預設 : Hamming(N/4))。
TRACE :如果非零,則顯示演算法的進展 (預設 : 0)。
TFR : 時頻表示式。當沒有輸出引數時,TFRSP執行TFRQVIEW,用自帶的圖形顯示視窗顯示。
F : 正規化的頻率向量。
具體使用
生成待分析的訊號
首先我們用fmlin這個函式生成一個長度為128,正規化頻率由0.1逐漸變為0.4的線性調頻訊號:
sig=fmlin(128,0.1,0.4);
用plot(real(sig))可以看到其波形:
sig其實是複數,其模始終為1:
下面我們將用這個訊號進行時頻分析。
設定窗函式
由於tfrsp函式的輸入引數H為窗函式,所以我們需要選擇一個合適的窗函式。為什麼在時頻分析時要選擇窗函式,並且選擇什麼樣的窗函式、窗的尺寸是多少,請參考相關文章。如:https://www.vfe.cc/NewsDetail-2239.aspx
這裡我們選擇Kaiser窗函式,並設定長度為17,引數預設(3*pi)。
h=tftb_window(17,'Kaiser');
設定引數
我們按照官方說明的要求,逐一設定引數,訊號為sig,時間點為1至128,頻率數為64,窗函式為h,顯示演算法進展:
tfrsp(sig,1:128,64,h,1);
由於沒有輸出引數,所以直接執行呼叫了TFRQVIEW,結果如下:
可以看到命令列視窗顯示了演算法進度,並自動產生了TFRQVIEW顯示視窗,譜圖顯示頻率從0.1變化為0.4。
輸出引數
我們使用imagesc(tfr)來觀察第一個輸出的引數。結果如下:
由於我們的頻率數設定為64,所以縱座標軸的值除以64才是正規化後的頻率,即0.1至0.4。