2017-11-12 4 views
0

파이썬에서 고속 푸리에 변환에 문제가 있습니다. 신호의 저주파 및 고주파 전력을 추출하고 싶습니다. 나는 다음과 같은 예를 보았다 :인자 n으로 푸리에 변환 나누기

Y = np.fft.fft(signal)/n #Calculate FFT 
Y = Y[range(n/2)] #Return one side of the FFT 
lf = np.trapz(abs(Y[(frq>=0.04) & (frq<=0.15)])) 
hf = np.trapz(abs(Y[(frq>=0.16) & (frq<=0.5)])) #Do the same for 0.16-0.5Hz (HF) 

signal 값 단지 배열입니다 (의 10000 개 값을 가정 해 봅시다).

여기서 문제는 무엇이 n이어야하는지 보지 못한다는 것입니다. n의 길이는 signal이어야하나요?

답변

2

아니요, n은 항상 신호의 길이가 아니어야합니다. n은 FFT의 길이이며, 필요한 주파수 분해능 및 시간 위치 파악에 의해 결정되며, 이는 또한 윈도 윙 또는 제로 패딩을 사용할 지의 여부뿐만 아니라 신호의 안정성 및/또는 다른 특성에 의존 할 수있다 .