我有一个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}是什么意思。 我需要什么来获得频率 - 时间阵列。
答案 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.