Re: fft and loss of samples
- From: "stefan_k" <stefan@xxxxxxxxxxxx>
- Date: Sat, 31 Mar 2007 12:26:08 -0500
Gentlemen, you make things look a bit clearer now. Which leads to a much
more specific question - in case of 1024 real values as input, and 512
"non-redundant" analytic values as output of an FFT, what is a good way to
feed the IFFT? I came across some people padding the rest 512 with 0's so
that the IFFT will receive 1024 complex and output 1024 time domain
complex values..
or
"stefan_k" <stefan@xxxxxxxxxxxx> wrote in message
news:s9GdnavNNvIoDZDbnZ2dnUVZ_oernZ2d@xxxxxxxxxxxxxxx
Hi all:
I'm going to pose a question that everyone has come across some time
complexanother.
Say I'd like to do an FFT of a 1024 point vector. The result is
zeroedvalues from 0 to f/2 (513 complex values). In case some bins are
mirroringfor filtering purposes, and IFFT is to be done, should it be performed
directly to the 513 values or should they be expanded with their
512to 1024. And if so should the IFFT be done with order 2^9 (since only
513values are available) or 2^10 since it's a part of 1024 point package?
Because it seems like of we go from 1024 real time domain values to
complex frequency domain and then back to 513 real time domain values,
half of the samples will be lost forever...
Others have already said this in one way or another:
An N-point DFT (or IDFT) yields the same number of output points as input
points. If the input is real, there is a zero complex part. So, 1024real
samples as input are really 1024 "special" complex numbers. Thus, 2048(which
values in both sequences - input and output.
An FFT of 1024 real samples yields 1024 complex samples.
An IFFT of 1024 complex samples yields 1024 complex samples - where the
imaginary part *may* be zero.
That's all there is to it. However .....
Because of redundancy in some cases, the *particular* implementation
you have not identified) may take advantage of redundancy and do manyit
different things:
- if the input is real then the output is complex: real symmtetric,
imaginary antisymmetric. Thus, if you understand this and can deal with
you can eliminate half the output samples (with caution).another.
- the inverse transform still needs all the samples ... one way or
Either explicitly or by some algorithmic "trick".samples
It is not correct to say that 1024 real samples yields 512 complex
(thus it's still 1024 samples). This incorrect observation actuallyalludes
to a trick. As a related matter, it *is* correct to say that 1024 realof
samples yields 512 complex *non-redundant* samples - but that is a matter
information content and not about the most straightforward implementationof
the FFT algorithm. More clever implementations may take advantage ofthis
but requires some care in how to deal with the result.samples
It is correct to say that 1024 real samples *implies* 1024 complex
and yields 1024 complex samples. Quite a few mainstream FFT algorithms
carry the zero-valued complex samples along in the input.
Fred
_____________________________________
Do you know a company who employs DSP engineers?
Is it already listed at http://dsprelated.com/employers.php ?
.
- References:
- fft and loss of samples
- From: stefan_k
- Re: fft and loss of samples
- From: Fred Marshall
- fft and loss of samples
- Prev by Date: Re: fft and loss of samples
- Previous by thread: Re: fft and loss of samples
- Next by thread: interface between two different rate modules
- Index(es):
Relevant Pages
|