필터 지우기
필터 지우기

Converting between zero padded and non zero padded FFT

조회 수: 1 (최근 30일)
John
John 2013년 3월 15일
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?

채택된 답변

Wayne King
Wayne King 2013년 3월 15일
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
John
John 2013년 3월 15일
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 2013년 3월 15일
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.

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

추가 답변 (1개)

Youssef  Khmou
Youssef Khmou 2013년 3월 15일
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

카테고리

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