On 4 Mar, 05:28, "cherriegeller" <cherrie.gel...@gmail.com> wrote:
> Hi, appreciate if someone can explain to me why is it when i do a FFT the
> output spectra is symmetrical? Is this to do with the formulae we used?
It's symmetrical only if the input data are real-valued.
If you try to apply the DFT to complex-valued data the
spectrum is not symmetric.
Rune
Reply by robert bristow-johnson●March 4, 20092009-03-04
On Mar 3, 11:28�pm, "cherriegeller" <cherrie.gel...@gmail.com> wrote:
> Hi, appreciate if someone can explain to me why is it when i do a FFT the
> output spectra is symmetrical? Is this to do with the formulae we used?
well, what particular formulae are you referring to?
the fact is that if the input is real, the output of the continuous
Fourier Transform is conjugate-symmetric.
if Im{ x(t) } = 0 for all t
then X(-f) = conj{ X(f) }
it's the same with the DFT (of which the FFT is "merely" an efficient
method of implementation). but you have to periodically extended it.
if Im{ x[n] } = 0 for all n
then X[-k] = conj{ X[k] }
but the DFT is periodically extended: X[k+N] = X[k] where N is the DFT
size.
so then you get
if Im{ x[n] } = 0 for all n
then X[N-k] = conj{ X[k] }
which is the symmetry i s'pose you're referring to.
r b-j
> Thanks.
Reply by ●March 4, 20092009-03-04
On Mar 3, 11:28�pm, "cherriegeller" <cherrie.gel...@gmail.com> wrote:
> Hi, appreciate if someone can explain to me why is it when i do a FFT the
> output spectra is symmetrical? Is this to do with the formulae we used?
>
> Thanks.
Symmetry comes about due to the use of a complex exponential in the
DFT (for which the FFT is a more efficient implementation). The
complex exponential also allows us to express numbers in complex form
(real and imaginary parts, with that tricky little letter 'j' thrown
in).
If you have a N point real valued input waveform, your samples are the
real valued inputs to the DFT or FFT, and the imaginary parts are set
to zero. After forward transforming it, you get N outputs that
display some symmetry (e.g.: with N even, outputs 0 and N/2 will be
real and unique, and outputs 1 to N/2-1 will be conjugate symmetric
with outputs N-1 to N/2+1).
When you compute the inverse DFT or FFT using the above symmetry, you
get your real valued samples back. In contrast, if your input to the
inverse DID NOT display the required symmetry, then the result of the
inverse would be complex valued with non-zero imaginary parts (perhaps
that should be: 'would most likely be complex' - there may be some
function that I haven't used in a while that'll give you real results
- I'll have to check).
So the symmetry is kind of a requirement in being able to get your
original input back after computing an inverse DFT or FFT.
Now it is also entirely possible to write DFT or FFT algorithms for
real valued inputs that don't result in the (redundant) symmetric
output. Rather, they result in 'one-sided' outputs from 0 to N/2.
When computing an inverse using the outputs of those programs, then
typically, you'd use an algorithm that was designed to operate without
them (or create the redundant points before doing the inverse
calculation).
The symmetry question is further complicated by the fact that it's
slightly different depending on whether N is even or odd, and it
differs even more when doing 2D or higher processing.
Kevin
Reply by cherriegeller●March 4, 20092009-03-04
Hi, appreciate if someone can explain to me why is it when i do a FFT the
output spectra is symmetrical? Is this to do with the formulae we used?
Thanks.