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

在带有 numpy 1.7.1 和 matplotlib 1.2.1 的 Python 2.7.5 上,您的代码完全按预期工作。尝试将您的 numpy 和 matplotlib 安装更新到最新版本。

于 2013-05-21T19:23:16.340 回答