# what are butterfly's in DSP

Ive noticed in many DCT and FFT 'C' source codes there are references to
something called butterfly, can someone explain what this is.
Im a self taught programmer, so dont understand math jargon too well,
so if you could explain it's purpose in english that would be great.

thankyou
###### Who is Participating?

Commented:
Here is a C language implementation of the Cooley-Tookey FFT algorithm with the butterflies calculations.

http://www.science.uva.nl/pub/computer-systems/ias/groen/aim/aim/fft1.c

Butterflies are just a way of scrambling the inputs in an organized way.
0

Commented:
0

Commented:
0

Author Commented:

In english, assume Im a really dummy please :-)
some pseudo code would help.
0

Commented:
A butterfly is a simple operation on a complex number.
Part of the process of an FFT is having an network of these butterflies to achieve it's algorithmic aims.
You may notice that the end product of the network of butterflies there is bit reversal, a phenomina of the FFT.
Don't worry if you don't understand it very easily. The FFT is one of mankinds greatest algorithmic achievements and requires a reasonable background in mathematics to understand it. It's just not easy.
0

Author Commented:

I understand fft,dct and signal processing, as far as how to code them,
but the math jargon i dont understand, so if you can explain butterflies
in the form of C code for something other than DSP, that would
do the trick...
0

Commented:
apakian, Unless you are hot stuff on the old maths stuff you are not going to understand the subtleties of the FFT and DCT. You do not need complex numbers for the DCT and they really are not required for the FFT but it is a nightmare without them.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.