나는 FFT를 사용하고 그것을 음모하려고 노력 중이다. 문제는 내 코드가 작은 주파수 (예 : 50)에서는 작동하지만 필요한 더 큰 주파수에서는 작동하지 않는다는 것입니다. 내 코드는 어떻게됩니까? 나는 사인파 입력의 주파수에서 스파이크를 볼 것으로 예상하지만 스파이크는 내가 사용하는 샘플 간격에 따라 다른 주파수에 있습니다.이상한 FFT 출력 파이썬
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"의 값을 바꿀 때 스파이크가 움직이는 것처럼 보입니다. –