## Can I calculate FFT without using floating point numbers?

8 posts / 0 new
Author
Message

Can I calculate FFT without using floating point numbers?

I have 8 or 10 bits samples coming from an Analog Digital Converter. They are unsigned integers.
I want to perform FFTs using an 8 bit AVR on blocks of 128 to 1024 samples.

Question: Can I evaluate those FFTs without using floating point variables, just signed or unsigned integers, to speed up calculations?

FFT algorithm in C: http://www.codeproject.com/KB/re...

ChaN has a fixed point fft library written in assembler.
http://elm-chan.org/works/akilcd...

Quote:
The FFT operations are done in 16-bit fixed-point. These 128 point FFT processes, applying window, butterfly operations and scalar output, could be executed in real-time (within 7.3 msec). The sampling frequency is 9.6 kHz

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it"

Hmmm--a Google search on 'FFT "integer only" ' gives some interesting hits. Several mention CORDIC which has been brought up here before.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

In my application i started with ChaN's fixed-point FFT implementation, but changed to another algorithm due to arithmetical reasons (incorrect results, i believe). Now i'm using an optimized Hartley algorithm to perform a floating-point-based 128 bin FFT on an array of ADC values. The FFT is done within about 23ms on a 12 MHz ATmega32.

Einstein was right: "Two things are unlimited: the universe and the human stupidity. But i'm not quite sure about the former..."

There is a pc app called fixfft that might be port-able to an avr c compiler

Imagecraft compiler user