Dividing fourier transform by factor n

조회 수: 3 (최근 30일)
Sepp
Sepp 2017년 11월 12일
댓글: Star Strider 2017년 11월 12일
Hello everybody
I have a problem with the fast fourier transform. I would like to extract the low and high frequency power of a signal. I have seen the following example (actually it is Python):
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 is just a an array of values (Let's say 10000 values).
The problem here is that I don't see what n should be. Should n just be the length of signal?

채택된 답변

Star Strider
Star Strider 2017년 11월 12일
‘Should n just be the length of signal?’
Yes. (Note that it is the length of the original signal, not of a signal zero-padded to have a length of a power-of-2.)
  댓글 수: 2
Sepp
Sepp 2017년 11월 12일
What do you mean with zero-padded?
Star Strider
Star Strider 2017년 11월 12일
Zero-padding a vector to create an ‘augmented’ vector of length equal to the next highest power of 2 is sometimes desired because (1) it increases the efficiency of the fft calculation, and (2) increases the frequency resolution of the transformed vector.
The point is that all the energy in the vector are in the first ‘n’ samples, and that is the correct normalising value.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by