質問: stftやpspectrumで表示するスペクトログラムの横軸を秒や分に任意に変える方法 stftやpspectrumで表示するスペクトログラムの横軸を秒や分に任意に変える方法はありますか? stftやpspectrumのスペクトログラムプロットの機能には、入力された時間データの長さに従って単位を秒や分に自動で変える機能があります。 例えば以下のように、時刻データ長さを10秒にした場合は横軸が秒スケールになり、 また、以下のように100秒にしたときは分スケールになります。 100秒にした場合でも横軸のスケールが秒であってほしいのですが、そのための方法はありますか?
回答: stft や pspectrum を戻り値なし実行で表示されるグラフについては、現状、単位が自動的に決定されます。誠に恐れ入りますが、関数の引数として単位を変更するオプションは提供されていません。 方法としては、 stft 実行時に戻り値を付けて頂きますと、得られる時間ベクトル t の単位が秒になりますので、手動でグラフ描画してください。 (実行例) [s,f,t] = stft(x,fs); imagesc(t,f,20*log10(abs(s))),caxis([-30 30])