質問: plt.specgram(filterAlready, NFFT=datanumber, Fs=128, noverlap=0, window=hammingWindow) plt.axis([0, datanumber/samplingFreq, 0, nyq]) plt.xlabel("time [second]") plt.ylabel("frequency [Hz]") plt.colorbar() plt.show() ``` ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/b99a0d492496b738f541ab7160293a9d.png) 参考までに振幅スペクトルをグラフ化したものも載せておきます。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/ac1f17430f1131bc322be896a65e50cf.png) 心当たりのある方いたらご教示いただけると幸いです。 よろしくお願いいたします。
回答: ご承知のとおり、スペクトログラム表示を行う為には、短い時間区間にデータを区切って、その区間毎にフーリエ変換を行います。 で、`NFFT` の値ですが、データをどのくらいの区間でデータを区切るか(何サンプル毎にデータを区切るか)を指定するパラメータとなります。 現在ここに、かなり大きな値(データ長?)を与えているようですので、この値を小さな値(とりあえずデフォルト値の`256`あたり)を設定してください。 > > 当然、窓関数の範囲も同じ値で設定する必用があります。 > > >