1. 程式人生 > >Matlab時頻工具箱中tfrsp函式的說明和使用方法

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。