<!-- index.php3 -->
<?php
	$head = "Projects - Fast Fourier Transform for ARM";
	$title = $head;
	$thispage = "fft-arm";
	require("table-top.php3");
	require("sidebar.php3");
	require("table-mid.php3");
?>

<h2>An optimized FFT for the SA-1100 (and other ARM processors).</h2>

<p>
The Fast Fourier Transform is a signal processing algorithm, transforming
signals between time and frequency domain. It is used quite often in audio, vision, 
communication and data analysis.
Most FFT libraries (like <a href="http://www.fftw.org/">fftw</a>) are written 
to use floating point instructions. Unfortunately most ARM processors don't have
integrated FPUs and rely on slow emulated support for floating point. The
<b>fft-arm</b> library solely uses 
<a href="http://www.arm.com/pdfs/DAI0033A_fixedpoint.pdf">fixed point numbers</a> to
achieve high performance.

<p>
This code is a very minimal set of functions for radix 4/5 complex fixed
point in-place FFT routines, optimized for the DEC/Intel StrongARM and other
recent ARM cores.
All that's provided as of now are FFTs with size 20, 64 and 80, with medium user 
effort other sizes can be supported. Since it's all C code, a smart
compiler can tune the scheduling for newer processors (like XScale), and 
you can even test the functionality of the code on another architecture
(like an x86 Linux box).

<h2>Sources</h2>

<?php   dlist("fft-arm*"); ?>


<?php	require("table-btm.php3"); ?>
