Matlab 时频分析程序及详解
功能:计算时间序列的短时离散傅里叶变换,得到瞬时频率。
格式:
[tfr, t, f] = tfrstft(x) % 计算时间序列 x 的短时傅里叶变换,参数 tfr 为短时傅里叶
变换系数,t 为系数 tfr 对应的时刻,f 为归一化频率向量
[tfr, t, f] = tfrstft(x, t) % 计算对应时刻 t 的短时傅里叶变换
[tfr, t, f] = tfrstft(x, t, n) % 计算 n 点对应时刻 t 的短时傅里叶变换
[tfr, t, f] = tfrstft(x, t, n, h) % 参数 h 为归一化频率平滑窗
[tfr, t, f] = tfrstft(x t, n, h, trace) % trace 显示算法进程
说明:
x--信号
t--时间(缺省值为 1:length(x))
n--频率数(缺省值为 length(x))
h--频率滑窗,h 归一化为单位能量(缺省值为 hamming(n/4))
trace--如果非零,显示算法的进程(缺省值为 0)
tfr--时频分解(为复值),频率轴观察范围为-0.5~0.5
f--归一化频率
如
sig=[fmconst(128,0.2);
fmconst(128,0.4)]; % 产生由两个常值调频信号(即正弦信号)的组合信号
tfr=tfrstft(sig);
subplot(211); imagesc(abs(tfr)); % 瞬时频率
subplot(212); imagesc(angle(tfr)); % 瞬时相位
Wigner-Ville 时频分布图
功能:计算时间序列的 Wigner-Ville 时频分布图,得到瞬时频率
格式:
[tfr, t, f] = tfrwv(x)
[tfr, t, f] = tfrwv(x, t)
[tfr, t, f] = tfrwv(x, t, n)
[tfr, t, f] = tfrwv(x, t, n, trace)
说明:
x--信号
t--时间(缺省值为 1:length(x))
n--频率数(缺省值为 length(x))
trace--如果非零,显示算法的进程(缺省值为 0)
tfr--时频分解(为复值),频率轴观察范围为-0.5~0.5
f--归一化频率
如
sig=fmlin(128,0.1,0.4);
tfrwv(sig);
伪 Wigner-Ville 时频分布图
功能:计算时间序列的伪 Wigner-Ville 时频分布图,得到瞬时频率
格式:
[tfr, t, f] = tfrpwv(x)
[tfr, t, f] = tfrpwv(x, t)
[tfr, t, f] = tfrpwv(x, t, n)
[tfr, t, f] = tfrpwv(x, t, n, trace)
说明:
x--信号
t--时间(缺省值为 1:length(x))
n--频率数(缺省值为 length(x))
trace--如果非零,显示算法的进程(缺省值为 0)
tfr--时频分解(为复值),频率轴观察范围为-0.5~0.5
f--归一化频率
如
sig=fmlin(128,0.1,0.4);
tfrpwv(sig);
还可以设置成三维显示,如下
其他时频分析
fmt
计算时间序列的快速梅林变换
ifmt
计算快速梅林逆变换。
tfrbj
生成时间序列的 Bord-Jondan 时频分布图,得到瞬时频率。
tfrbud
生成时间序列的 Butterworth 时频分布图,得到瞬时频率。
tfrcw
生成时间序列的 Choi-Williams 时频分布图,得到瞬时频率。
tfrgrd
生成时间序列的广义矩形时频分布图,得到瞬时频率。
tfrmh
生成时间序列的 Margenau-Hill 时频分布图,得到瞬时频率。
tfrmhs
生成时间序列的 Margenau-HillP 谱图时频分布图,得到瞬时频率。