1
내가 문제 푸리에 변환에서 주파수 스펙트럼을 얻는 데
... 난 일부 데이터가 비애 : FFT 파워 스펙트럼은
내 말은 중심이 있고, 너무 가지고하지 않는 것 나는 그것을 푸리에 변환을 플롯
... 추세의 많은 : ....
를 내가 좋은하지 무언가를 얻을 수
here에서 가져온 코드에서 적응으로def fourier_spectrum(X, sample_freq=1):
ps = np.abs(np.fft.fft(X))**2
freqs = np.fft.fftfreq(X.size, sample_freq)
idx = np.argsort(freqs)
plt.plot(freqs[idx], ps[idx])
: 16,
여기 내 코드입니다.
일부 순진 죄 웨이브 데이터를 작동하는 것 같다:
fourier_spectrum(np.sin(2*np.pi*np.linspace(-10,10,400)), 20./400)
그래서 제 질문은 : '비 제로 거의-사방 스펙트럼을 기대하고있어, 내가 무엇이다 잘못하고있는거야? 내가 틀린 일을하지 않는다면, 내 데이터의 어떤 기능이 이것을 일으키는 것입니까? 또한 잘못된 일을하지 않고 fft가 내 데이터에 적합하지 않은 경우 데이터에서 중요한 주파수를 추출하려면 어떻게해야합니까?
너무 많은 "DC"구성 요소가있는 경우 fft의 0 빈을 플롯하지 마십시오. 또한 안구에 의해 데이터는 매우 낮은 주파수에서 강한 주파수 성분을 갖는 것처럼 보입니다 - 첫 번째 50 개 정도의 쓰레기통을보고 더 합리적인 것처럼 보일 수도 있습니다 – f5r5e5d
"DC에서 큰 구성 요소를 제거하는 FFT 전에 신호의 평균을 뺍니다 "(즉, FFT의 bin 0). 또한/대안으로, FFT 출력의'log10 (abs (...))'(즉, dB 또는 데시벨)을 그려서 무슨 일이 일어나고 있는지 더 잘 이해할 수 있습니다. –
또한 [periodogram] (https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.periodogram.html)과 같은 통계적 스펙트럼 추정기와'scipy.signal'의 관련 메소드를 살펴보십시오. –