[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[f-cpu] just for fun (or: maths can be useful)


just a divagation from the F-CPU, sorry :-)

The Winograd Fourier Transform is really powerful,
the enclosed "real FFT" and "Real iFFT" transform
an 8-tap data with 20 add/sub and 2 multiplies with
a constant (in either way). The less computations,
the faster and more stable the result. I have not
"optimised" the scheduling however.

Two goals for this algorithms : because it is ultimately
oriented for real-time stuff it will certainly exist in
"software" and "hardware". From what i have heard about other's
experiments with the WFFT, it is not straight-forward to
do because it is not a regular structure (unlike the
Cooley-Tuckey version). I'm curious to see how one can
design an "optimised" entity with a fixed number of add/sub
units. According to the book "Understanding behavioural
synthesis" the result is going to be rather ugly
if we rely on automated design partition.
I believe that our radar specialist (Richard) can give a
hint about that :-)

If you need to perform some small transforms, feel free
to reuse this code. It is acurate to the 12th decimal digit
with "double" numbers. I am now trying to translate it to
the integer world. As again, comments and suggestions are
welcome (as long as it is not concerning the way i
write programs :-P)