Filter löschen
Filter löschen

Converting between zero padded and non zero padded FFT

1 Ansicht (letzte 30 Tage)
John
John am 15 Mär. 2013
I have a signal, x = [1 2 3 4]. I have the fft(x) which is
10.0000
-2.0000 + 2.0000i
-2.0000
-2.0000 - 2.0000i
I want to get the fft for y = [1 2 3 4 0 0 0 0] which is
10.0000
-0.4142 - 7.2426i
-2.0000 + 2.0000i
2.4142 - 1.2426i
-2.0000
2.4142 + 1.2426i
-2.0000 - 2.0000i
-0.4142 + 7.2426i
How can get the fft of y from the fft of x?

Akzeptierte Antwort

Wayne King
Wayne King am 15 Mär. 2013
In this simple case, you have just decreased the separation between adjacent DFT bins by a factor of 2.
y = [1 2 3 4 0 0 0 0];
ydft = fft(y);
ydft = downsample(ydft,2);
% or ydft = ydft(1:2:end);
That will be the same as
xdft = fft(1:4);
but in general, the above won't work.
  2 Kommentare
John
John am 15 Mär. 2013
I'm just trying to compute the FFT of [1 2 3 4 0 0 0 0 0 0 etc.. 0 0 0 0 0] with a lot of zeros efficiently to save time.
Honglei Chen
Honglei Chen am 15 Mär. 2013
Hi John, like Wayne said, from y to x is possible but from x to y in general can't be done. Keep in mind that FFT assumes periodicity in both time and frequency domain so the two signals are indeed different in FFT's eye.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Youssef  Khmou
Youssef Khmou am 15 Mär. 2013
hi,
x and y are two different signals in terms of frequencies, you have to compute both ffts, i am not conscious if there are methods for derive ffts for padded signals

Kategorien

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by