As the hacker-physicist I am, I chose a task where could combine my abilities. Considering that I made a Commodore Amiga computer from 1984-93 do spectrum analyzis of comparable quality to a $50 000 instrument of the same era, I really did deserve the grade of 1.5.
In order to make such a slow machine do such a demanding task, i had to make everything efficient. The fourier part was constructed with the aid of number theoretic analyzes of matrixes and fields, giving a next to ultimately fast program for fourier transform on a 68000 Motorola processor. The sampling and drawing of the spectrum is also done with efficient interleaved methods, too complex to describe here. I also designed and built the sampler itself, which is of a clean simple design, with low distortion, noise comparable to the quantization noise, and good immunity to radio noise, a necessity, since the lab was next to a radio station.
I have since translated the fourier routine to C for use in other processors. The processors of today, 1997, are very different beasts compared to the M68000. Their caches, pipelines, and multiplicators make other implementations of the fourier transform more efficient. However, microcontrollers of today have similar architecture to the Motorola 68000, and will therefore be excellent candidates for my program. Email me if you are interested.
(PS: My English has improved since I wrote the thesis.)
2 What can the spectral analyzer be used for?
4 Ear and sound
5 The Fourier Transform
6 The Large Winograd FFT
7 Processor specifics
8 The Program
A. Programs and makefiles
K. Spectral analyzer main program
L. Interrupt sampler and drawer of spectrum
M. Debugged small Winograd FFT of length 9
N. Sampler board