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))可以看到其波形:

Matlab时频工具箱中tfrsp函数的说明和使用方法

sig其实是复数,其模始终为1:

Matlab时频工具箱中tfrsp函数的说明和使用方法

下面我们将用这个信号进行时频分析。

设置窗函数

由于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,结果如下:

Matlab时频工具箱中tfrsp函数的说明和使用方法

Matlab时频工具箱中tfrsp函数的说明和使用方法

可以看到命令行窗口显示了算法进度,并自动产生了TFRQVIEW显示窗口,谱图显示频率从0.1变化为0.4。

输出参数

我们使用imagesc(tfr)来观察第一个输出的参数。结果如下:

Matlab时频工具箱中tfrsp函数的说明和使用方法

由于我们的频率数设置为64,所以纵坐标轴的值除以64才是正规化后的频率,即0.1至0.4。