FFT Algorithm on Microcontroller

Status
Not open for further replies.

satria02

Junior Member level 2
Joined
Apr 22, 2011
Messages
24
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Bandung
Activity points
1,467
Hi,

i want to convert time based analog signal to frequency based signal (spectrum signal) by using microcontroller and display it on graphical LCD...,

i think method that i can used is FFT....but i haven't knew yet how to applied FFT method on microcontroller...

can you tell me the algorithm for FFT on microcontroller?

thanks before...

Satria
 

satria

I already used a funcion FFT.C wich had download on web ( don´t remember form where ).
Due uC have few built-in RAM ( generally 2k Bytes ) the precision calculated will not goes much more than ~128 points ( I already performed a test w/ MSP430F149 from TI ).

That kind of application is better performed by a uC with external RAM.
( However LCD resolution is not so wide so 128 may be enought )

+++
 

    thannara123

    Points: 2
    Helpful Answer Positive Rating
Thanks for the information..

can you tell me the algorithm (flow chat) of FFT that you used?
i also get the function of FFT.c, but i still didn't understand about the algorithm of that function...
get the function on C but didn't know yet the flow chat of that function is not so helpful...

i need the algorithm (flow chat) so i can modify the function...

thanks
 

...i need the algorithm (flow chat) so i can modify the function...

No changes shall be performed.
You need only input argument parameters ( resolution points / input data adress ).

+++
 

have a look at the Microchip dsPIC DSC DSP Algorithm Library
**broken link removed**
 

hi..
want to convert time based analog signal to frequency based signal (spectrum signal) by using multitasking computer tinytiger2 and display it on graphical LCD...,

i think method have to use is FFT....but i am not having any idea about FFT

can you tell me the algorithm for FFT In the form of flowchart or procedure it will help for me to understand...
 
Last edited:

Hello!

Be aware that most of the FFT.c you find on the net are general purpose code,
written using float or double numbers. It also calls sin() and cos(). If you run
this on a microcontroller, you get the worst you can imagine in terms of
efficiency.
If you want it to run fast on a microcontroller:
1. Make sure it uses integers or fixed-point multiplications. If not, transform the
code to use integers;
2. Make sure it uses a predefined sin table. If not, make a sine table from
0 to 3π/2;
3. Use a fast multiplier if any. I have implemented it on MSP430 using the
32 bit hardware multiplier. Just for info: one float * float multiplication takes
about 300 clocks. One 16bit * 16bit multiplication takes 7 clocks (if I remember
correctly) on MSP430.

Here is an FFT implementation:
**broken link removed**
It shows the effect of the mechanical parameters on frequency distribution.
The spectrum is normalized, which explains why there is so much noise when
the signal is weak.
The width of the display is 128. I have used a 256 samples FFT, but the power
spectrum is symmetric, so I display only the first half of it.
As the sampling frequency is around 1000 Hz, there are only 4 FFTs every
second. This is why it does not look very responsive, but it is actually very fast.

Dora.
 
Dear Dora nice comments, really helpful.
One problem is that your link is not opening.
Other is that I want to impliment FFT on ATmega32, Can you help me please.
Thanks a lot in advance
 

Finally i decide to implement FFT algorithm on microcontroller using my own script program on C

i transform from FFT equation into C....

you can see the FFT equation on this link
Fast Fourier Transform (FFT)
 

Dear Dora nice comments, really helpful.

i need your help regarding doing FFt in msp 430.. kindly help me
Thanks a lot in advance
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…