0

私は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、ft、X、Y、Z} が何を意味するのかわかりません。周波数と時間の配列を取得するには何が必要ですか。

4

1 に答える 1

0

MATLAB ドキュメントから:

[S,F,T] = spectrogram(...) は、スペクトログラムが計算される周波数のベクトル F と時間のベクトル T を返します。

S、F、T はまさにあなたが必要としているものです。T 変数には、変数 S に対応する STFT を含む周波数 F が wav ファイルに含まれる時間が含まれます。対数目盛で (おそらく周波数成分の可視性を高めるため)、 を計算しZ=log10(abs(s));ます。

X と Y はメッシュ プロットの作成に使用されますが、知りたい場合は、T と F が行列形式で含まれており、X の各行に T が、Y の各列に F が配置されています。

于 2014-04-25T18:38:26.733 に答える