Sunteți pe pagina 1din 3

THE FAST FOURIER TRANSFORM

In this chapter we introduce the reader to the Fast Fourier Transform, to its history
and its development, to prepare the background over which we we will show some
of the latest and most used versions of this extremely important algorithm. We will
also give a look at the C++ implementation of the Cooley-Tuckey Algorithm, so that
comparisons will be easy to do when we will talk about the Sparse FFT. 2.1 What is
the FFT? The Fast Fourier Transform is an algorithm, as we said, to compute the
DFT and its inverse. Its importance derives from the fact that it made the Fourier
analysis of digital signal an affordable task: an algorithm which naively implements
DFT definition takes O(N2 ) arithmetical operations to define the set of N
coefficients, while an FFT is much faster, and can compute the same DFT in only
O(N log N) operations. This time complexity is often called linearithmic. The
difference in speed can be enormous, especially for long data sets, where N could
be 1069 . Moreover, many FFT have an interesting feature that grants an
increase on accuracy at the expense of increase computations. We say many
due to the fact that there is NOT a single FFT algorithm, instead there are many
different algorithms which involve a wide range of mathematics to attain high
speed. We cannot see all of them, but the reader is free of reviewing what we left
out in [3]. One of the most used is the Cooley-Tukey Algorithm (CT), which was
developed in 1965 and which we will review later on in this chapter. It is a divide
and conquer algorithm that recursively breaks down a DFT of any composite size
N = N1N2 into many smaller DFTs of sizes N1 and N2, along with O(N)
multiplications by complex root of unity traditionally called twiddle factors. Another
wide spread algorithm cares about the case in which N1 and N2 are coprime, and
is known as Prime-Factor (or Good-Thomas) algorithm.

Traduccin he interpretacin del texto


LA TRANSFORMACIN RPIDA DE FOURIER
La transformada Rpida de Fourier, en su historia y su desarrollo, es preparar el
trasfondo sobre lo que se va mostrar en algunas de las versiones ms recientes y
ms utilizadas de este algoritmo extremadamente importante. Tambin se dar un
vistazo a la implementacin C ++ del Algoritmo Cooley-Tuckey, por lo que las
comparaciones sern fciles de hacer cuando vamos a hablar de la FFT Dispersa.
Qu es la FFT?
La Transformada Rpida de Fourier es un algoritmo, como expresamos, para
calcular la DFT y su inversa. Su importancia deriva del hecho de que hizo del
anlisis de Fourier de seal digital una tarea asequible: un algoritmo que
ingenuamente implementa la definicin de DFT toma O (N2) operaciones
aritmticas para definir el conjunto de N coeficientes, mientras que una FFT es
mucho ms rpido, y puede Calcular el mismo DFT en slo O (N log N)
operaciones. Esta complejidad del tiempo se llama a menudo linearithmic. La
diferencia en velocidad puede ser enorme, especialmente para conjuntos de datos
largos, donde N podra ser 106 ~ 9. Por otra parte, muchos FFT tienen una
caracterstica interesante que otorga un aumento en la precisin a expensas de
los clculos de aumento. Decimos "muchos" debido al hecho de que no hay un
solo algoritmo FFT, en su lugar hay muchos algoritmos diferentes que implican una
amplia gama de matemticas para alcanzar alta velocidad. No podemos ver todos
ellos, pero el lector est libre de revisar lo que dejamos fuera en [3]. Uno de los
ms utilizados es el Algoritmo de Cooley-Tukey (CT), que fue desarrollado en 1965
y que veremos ms adelante en este captulo. Es un algoritmo de divisin y
conquista que rompe de manera recursiva una DFT de cualquier tamao
compuesto N = N1N2 en muchas DFT ms pequeas de tamaos N1 y N2, junto

con O (N) multiplicaciones por raz compleja de unidad tradicionalmente llamadas


factores twiddle. Otro algoritmo de amplio alcance se preocupa por el caso en el
que N1 y N2 son coprime, y se conoce como algoritmo de Prime-Factor (o GoodThomas).