【发布时间】:2015-03-24 08:07:31
【问题描述】:
我正在尝试获取 FFT 并绘制它。问题是,我的代码适用于小频率(如 50),但不适用于我需要的更大频率。我的代码怎么了?!我希望在我输入的正弦波的频率上看到一个尖峰,但根据我使用的样本间距,尖峰的频率不同。
bins = 600
ss = 2048
freq = 44100
centerfreq = freq*bins/ss
# Number of samplepoints
N = ss
# sample spacing
T = 1 / 800.
x = np.linspace(0.0, N*T, N)
y = sin(2*np.pi*centerfreq*x)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)
plt.plot(xf, 2.0/N * np.abs(yf[0:N/2]), 'r')
【问题讨论】:
-
“它不起作用”是什么意思?输入是什么,您期望看到什么,实际发生了什么?
-
输入如我发布的代码所示(bins,ss,freq);输出是图中的一个尖峰,作为与上面代码中的“centerfreq”无关的频率。似乎当我更改“T”的值时,它会移动尖峰。