如何在matlab中获得频率 - 时间数组。

时间:2014-04-25 10:20:56

标签: matlab matlab-figure spectrogram

我有一个wav文件,我想获得该文件的频率 - 时间数组。 为了获得,我在matlab中尝试了STFT。

[s f t]= spectrogram(x,window,overlap,N,FS);
figure(1)
imagesc(t,f,log10(abs(s)));

[X,Y]=meshgrid(t,f);
Z=log10(abs(s));
mesh(X,Y,Z);

我得到了一张我想要的照片。 但我不知道{s,f t,X,Y和Z}是什么意思。 我需要什么来获得频率 - 时间阵列。

1 个答案:

答案 0 :(得分:0)

从MATLAB文档:

  

[S,F,T] =频谱图(...)返回频率矢量F和a   时间矢量T,计算频谱图。

S,F和T正是您所需要的。 T变量包含wav文件包含频率F的时间以及变量S中的相应STFT。在对数刻度上(为了更好地查看频率内容),您计算Z=log10(abs(s));

X和Y用于创建网格图,但如果您想知道:它们包含矩阵形式的T和F,在Y的每一列的X和F的每一行上都有T.