1

純粋な正弦関数のスペクトログラム プロットを取得しようとしています。それと一緒に、その信号全体の fft のプロットを表示したいと思います。時間的に静止している同じ信号を扱っていたので、ピークが同じ周波数にあると予想しています。

コード

samplingFrequency = 32.
frequency = 4                           #frequency of the sinus wave
t = arange(0,20,1/samplingFrequency)    #time intervals with period 1/sampling frequency
y = cos(2*pi*frequency*t)

Y = fft.fft(y)                          #standard fft on the whole signal
frequencyAxis = fft.fftfreq(len(Y),1/samplingFrequency )          #adjusting the x axis 

#PLOTTING
fig, (ax1,ax2) = plt.subplots(nrows=2, ncols=1)
ax1.specgram(y, Fs = samplingFrequency)
ax2.stem(frequencyAxis,Y,linefmt='r--', markerfmt='ro')

プロット ここに画像の説明を入力

信号全体の fft は予想どおりで、ピークは 4 にあります。ただし、スペクトグラムは 12 に線をプロットしています。エラーの場所についてのアイデアはありますか?

更新 は次のバージョンを使用していました:

  • matplotlib '1.1.1'
  • numpy '1.6.2'
  • パイソン2.7.3
4

1 に答える 1

2

Python 2.7.5 と numpy 1.7.1 および matplotlib 1.2.1 では、コードは期待どおりに動作します。numpy と matplotlib の両方のインストールを最新バージョンに更新してみてください。

于 2013-05-21T19:23:16.340 に答える