Cheapest way to build FFT

Thread Starter

psihodelia

Joined Aug 7, 2006
23
I am very new in electronics.

I did read allaboutcircuits very carefully till "Digital" Part yet. This is incredible book! Who is the author ??? Thank you for this great work! Just an advice: compile LaTeX and publish it.

Right for now I have a question:
What could be the cheapest method to get Fourier Transform ?
I suggest it should be op amps or what ? I'm looking for the most cheapest way, not specially perfect.
 

Papabravo

Joined Feb 24, 2006
21,095
The Fast Fourier Transform (FFT) is an algorithm running on a digital computer, which processes a sampled waveform to extract frequency domain information, developed by Messrs. Cooley and Tukey.

As far as I know there is no conceivable direct analog implementation of the algorithm. The analog method of getting the frequency domain information is called a spectrum analyzer. These instruments start at around $10,000.00 and go up to $100,000.00 depending on their bandwidth and other features.

The least expensive method is your desktop PC and Matlab or one of the free Matlab clones.
 

Dave

Joined Nov 17, 2003
6,969
The book is based on work by Tony Kuphaldt, however in recent times he has been unable to continue his commitment to writing the unfinished sections of the book. The primary author at this time is Dennis Crunkilton. For a list of the contibutors, please see here.

To reiterate what Papabravo has said above the cheapest (and most straight forward) way of computing the FFT is using something like Matlab which has an FFT function built in, but it is a good exercise to look at creating your own from the fundamental principles of the FFT. Matlab is quite expensive and enforces strict licensing conditions on the use of its software so the free clones that Papabravo is referring include:

Octave

And

FreeMAT

For those most familiar with Matlab, FreeMAT provides a more UI-orientated experience, whereas Octave is command-line based.

The other alternative to looking at ways of computing the FFT is to look into using an off-line simulator for a DSP-chip, which will allow you to look at programming the FFT using DSP assembly-language. It is fairly low-level stuff, but with the use of integarted Multiply-and-Accummulate instructions you can implement a full FFT in around 100-lines of code.

Dave
 

Thread Starter

psihodelia

Joined Aug 7, 2006
23
Thank you,
I know how to implement FFT in software , I have done it before in C and in Python.

I know, there are many VHDL/Verilog implementations as well, but FPGA/DSP boards look a bit expensive.

What is interesting for me is fully analog hardware implementation - the most cheapest one. It could be a very very simple, unprecise, inaccurate model. Important is it has Time-to-Freq.domain functionality.
 

Dave

Joined Nov 17, 2003
6,969
psihodelia said:
Thank you,
I know how to implement FFT in software , I have done it before in C and in Python.

I know, there are many VHDL/Verilog implementations as well, but FPGA/DSP boards look a bit expensive.

What is interesting for me is fully analog hardware implementation - the most cheapest one. It could be a very very simple, unprecise, inaccurate model. Important is it has Time-to-Freq.domain functionality.
The idea of implementing an FFT in anything other than digital hardware (at a software level) is something I find somewhat strange (not that that should discourage you from attempting otherwise).

Can I ask what is the reason for looking into a fully analog hardware implementation?

You may also be interested in this site over at fftw.org for some supplementary information.

Dave
 

n9352527

Joined Oct 14, 2005
1,198
Several bandpass filters can be used as a crude analogue approach to obtain the frequency domain data of a signal. This is somewhat similar to spectrum analyser. If you need the accumulation of the individual frequency magnitude, then you could follow each stage with an integrator.

You have to decide how many and which frequencies component you are interested in and then designed the filters to suit this requirement.

As you yourself said, this neither perfect or accurate solution, but I don't see why it can't be done.

I remember that there was a company that produced analogue signal processor with quite diverse capabilities. FT might be one of them. Sadly I couldn't find it through google anymore.
 
Top