What are the frequencies when N in fft(x,N) is odd?

27 Ansichten (letzte 30 Tage)
Ray Lee
Ray Lee am 10 Jul. 2014
Kommentiert: Eric am 4 Jun. 2024
I know when N is even, fft(x,N) corresponds to frequencies 0,df,...,N/2*df,-(N/2-2)*df,...,-df.
What about if N is odd?

Akzeptierte Antwort

Honglei Chen
Honglei Chen am 10 Jul. 2014
Bearbeitet: Honglei Chen am 10 Jul. 2014
In general, you can do it as
f = (0:N-1)*fs/N
If you want to map it to negative frequencies
if N is even
f(N/2+1:end) = f(N/2+1:end)-fs % sample -fs/2
or
f(N/2+2:end) = f(N/2+2:end)-fs % sample fs/2
if N is odd
f((N+1)/2+1:end) = f((N+1)/2+1:end)-fs
HTH
  5 Kommentare
Honglei Chen
Honglei Chen am 10 Jul. 2014
Bearbeitet: Honglei Chen am 10 Jul. 2014
That's not true. Only one point is changed, from fs/2 to -fs/2 and because the result is periodic, they are indeed the same so you can mark it either way
Eric
Eric am 4 Jun. 2024
To be clear, if you are using fftshift on your FFT data and N is even, use the first option (repeated here):
f(N/2+1:end) = f(N/2+1:end)-fs % sample -fs/2

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Michael scheinfeild
Michael scheinfeild am 10 Jul. 2014
if x is ampled at fs you can generate frequency vector use
freqvec=linspace(0,fs,N);
  3 Kommentare
Honglei Chen
Honglei Chen am 10 Jul. 2014
This is incorrect. linspace always sample the last one, which you don't want.
CHAN  CHEN HUA
CHAN CHEN HUA am 7 Okt. 2021
@Honglei Chen Hi, can i know why last sample should not be taken into?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Fourier Analysis and Filtering finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by