Sunteți pe pagina 1din 4

Implementacon De FFT En Chips DSP Teora y Practica

Suquinagua Raul
raul.suquinagua@ucuenca.ec

ResumenSe trata el problema de como influye los


diferentes chips desarrollados en el comportamiento de
los algoritmos y su eficiencia. Ademas se dara algunos
consejos para optimizar en ciertos procesos y sobre las
consideraciones estructurales.
Palabras ClaveAlgoritmo,Chips,Diagrama de flujo,
Diezmado, Twiddle Factor.

I.

I NTRODUCCI ON

Como en todo algoritmo se desea conocer la


complejidad computacional, en la transformada rapida
de Fourier (FFT), se lo determina mediante el numero
de operaciones matematicas que toma en realizar el
proceso, en algunos casos se considera solamente las
operaciones de multiplicacion [1] y al considerar esto,
se hace mucho mas facil calcular teoricamente el
numero de operaciones [2].
Actualmente, el avance de la tecnologa ha influido en el diseno del algoritmos: mientras que en los
anos 60 y principios del 70 el interes se centraba
en disminuir el numero de multiplicaciones, estos
avances han revelado que tambien son de importancia
fundamental el numero de sumas y de accesos a
memoria . Algunos procesadores modernos incluyen
un modulo optimizado para el calculo por hardware
de la DTF [3].

para un algoritmo radix-2 esta dado por:


N
2 log2 N

multiplicaciones complejas

N log2 N sumas complejas


El diezmado en tiempo, por otro lado, son
algoritmos en las cuales la descomposicion es
basado en descomposiciones de secuencias x(n), a
traves de sub-secuencias pequenas sucesivas [4]. Por
ejemplo consideremos un caso especial en donde
N es potencia de 2, nosotros podemos considerar
calcular X(k) separando x(n) en N/2 secuencias
consistiendo en numeros par de puntos y numero
impar de puntos de x(n) por lo tanto:
P
P
X(k) = neven x(n)WNnk + nodd x(n)WNnk
X(k) = G(k) + WNk H(k)
En la Figura 1(a) se puede observar la mariposa
DIF, mientras que la mariposa DIT se muestra en la
Figura 1(b). Se puede ver que los twiddle factors estan
denotados por: ej2Q/N en donde Q es un numero
entero entre 0 Q (N/2) 1

En este artculo se aborda sobre las caractersticas de los procesadores DSP existentes, as como
sus diferentes arquitecturas. Vamos a ver que ciertos
procesadores son practicos para ciertos algoritmos y
para otros no, todo esto depende de los ciclos de
instruccion que se ocupa para hacer la FFT.
Hay 3 tipos de algoritmos que vamos a analizar:
Radix-2 (R2), Radix-4 (R4) y Split-Radix (SP) (el
Radix es el tamano de la descomposicion de la FFT).
Para esto describimos las propiedades que conllevan,
diferencias y generalidades para decidir crticamente
que algoritmo implementar.
II.

D IFERENCIA ENTRE DIEZMADO EN TIEMPO


(DIT) Y DIEZMADO EN FRECUENCIA (DIF)

Antes de presentar los algoritmos de FFT, tenemos que comprender los tipos de configuracion de
mariposas simples usadas en los algoritmos.

Figura 1. Mariposas DIF y DIT [9].

III.
III-A.

Radix-2

Es la mnima parte en que se puede dividir la FFT,


esta consta de una mariposa con dos entradas y dos
salidas (ver Figura 2).

Como sabemos en los diagramas de flujo de


FFTs con sus arreglos de operaciones pueden se
implementados de diferentes formas las operaciones
mariposa, pero los mas o ptimos son las mariposas de
multiplicacion compleja simple.
Diezmado en frecuencia es llamado debido a que
las muestras de frecuencia se calculan por separado
en grupos alternativos [3]. El costo computacional

T IPO DE ALGORITMOS .

Figura 2. Radix-2.

III-B.

Radix-4

La mariposa de un algoritmo radix-4 consta de


cuatro entradas y cuatro salidas (ver Figura 3). La
longitud FFT es 4M , Donde M es el numero de
etapas. Una etapa es un medio de radix-2. Los radix4 FFT requieren solo un 75 % de mayor numero de
multiplicaciones complejas que las radix-2 FFT [4].

que influye es el paralelismo de operaciones, es decir,


cuantas operaciones simultaneas puede realizar.
Al pasar el tiempo los integrados DSP han tenido
muchas mejoras, un gran avance fue que el tiempo en
que se demoraba en realizar una multiplicacion fue la
misma que un ciclo de instruccion. Luego se realizo
dos extracciones de memoria simultaneamente, lo
que logro una gran convergencia del algoritmo. Y la
capacidad de realizar paralelamente una suma y una
resta [2]. MCU es para representar X Y + U .
C ARACTERI STICAS DE LOS PROCESADORES DSP

Tabla II.

Figura 3. Radix-4.

III-C.

Split-Radix

El algoritmo Split-Radix es una fusion de Radix2 y Radix-4, en terminos de DFTs de longitud N/2 y
dos mas pequenas de longitud N/4.

Clasificacion

Operaciones
AU y k

Recuperacion
simultanea

Ejemplos

TIPO I.0

MPY
o ADD
o SUB

No posible

TMS32010

TIPO I.1

Mismas I.0

TIPO II.1

MPY
o ADD
o SUB
o MAC

ADSP2100

TIPO II.2

Mismas II.1

PCB5011

TIPO III.2

MPY k ADD
o MPY k SUB

TMS320C30

TIPO IV.2

Mismas III.2
o MPY k ADDSUB

DSP96002

Figura 4. Split-Radix.

IV.

P ROPIEDADES DE LOS ALGORITMOS

Para poder implementar o escoger un buen algoritmo es esencial saber las propiedades que tiene cada
uno de ellos, en este caso vamos a analizar: el numero
de operaciones de cada algoritmo, acceso a operandos,
la ponderacion de factor y numero de mariposas(ver
Tabla I).
Tabla I.

P ROPIEDADES DE ALGORITMOS FFT

Tipo

Operaciones Reales
M P Y \ ADD

Operaciones De Recuperacion
DAT A \ T F

R2

4\6

8\2

SR

8 \ 16

16 \ 4

R4

12 \ 22

16 \ 6

DE LOS INTEGRADOS
CLASIFICACI ON

DSP

Existen diferentes integrados para este proposito,


pero estos se clasifican de acuerdo a la rapidez de
procesamiento, por lo tanto la arquitectura sera diferente para cada dispositivo, un factor muy importante

AN ALISIS
DE DIFERENTES ALGORITMOS

En el punto anterior vimos las caractersticas


principales de los procesadores, pero depende de que
algoritmo utilicemos para saber su rendimiento, en
este punto vamos a analizar diferentes situaciones.

VI-A.

Vamos a ver en el siguiente punto que el rendimiento de la transformada depende mucho del paralelismo de las propiedades de los algoritmos.
V.

VI.

Consideraciones para elegir procesadores

Hay que prestar mucha atencion a la Figura 6,


ya que aqu se puede observar los ciclos que toma
en realizar un proceso para las diferentes categoras
de los procesadores, por ejemplo si escogemos el
procesador mas potente(ver Figura 5) vemos que en
el caso del radix-2 ocupa 16 mariposas, en el radix-4
14 mariposas y en el split-radix ocupa solamente 13.3
mariposas, entonces se ve claramente que el algoritmo
SR es el mejor para utilizar. Hay que tomar en cuenta
que en el caso de los procesadores tipo II-2 vemos
que la mejor opcion es el algoritmo radix-2 dado que
en el diezmado en tiempo tiene menor numero de
mariposas que los demas.

Tabla III.

T WIDDLE FACTORS S IMPLES

N/4
WN

PM 2
i=2

N/2i

PM 4
i=2

Figura 5. Numero y tipo de instrucciones.

VI-B.

consideraciones en la arquitectura

La rapidez de ejecucion de un algoritmo depende


de gran medida de la arquitectura del procesador.
Tenemos tres categoras:
El primer caso es el mas simple, con un solo
acumulador y u nico bus de datos. El resultado de la
operacion debe estar en el acumulador e inmediatamente enviarlo por el bus [2], esto genera congestion
consecuentemente demora y eso es lo que precisamente queremos evitar, los primeros procesadores
funcionan as.
En la segunda categora ya contamos con varios
acumuladores, esto de alguna manera disminuye la
carga de procesamiento, pero existe una categora mas
que logra un gran rendimiento.
En la u ltima categora se cuenta con acumuladores
como en el caso anterior, pero ademas se cuenta
con varios buses y unidades aritmeticas [2] lo que
posibilita un gran nivel de procesamiento de datos
haciendo uso de pocos recursos.
VII.

OPTIMIZACI ON

N/4i

N/8

WN

PM 2
i=3

N/2i

N 3(1)M 2
6

PM 4
i=3

N/4i

3N/8

WN

PM 2
i=3

N/2i

N 3(1)M 2
6

PM 4
i=3

N/4i

numero de operaciones. Hay que tomar en cuenta que


las mariposas especiales (ahorra numero de operaciones) es diferente para cada algoritmo. Por ejemplo si
procesamos 1024 puntos sin realizar ninguna optimizacion en Radix-2 con un procesador tipo I tendremos
un total de 96160 operaciones, con optimizacion, en
cambio este resultado se reduce a 77500 operaciones.
La u ltima etapa consiste en un conjunto de bucles
anidados para inicializar contadores y varios registros,
entonces al colocar un solo contador que realice esta
funcion logramos una reduccion de carga estructural
del 30 al 40 % [2].
VII-A.

Reduccion del TF

Consideremos primeramente la generacion de


Twiddle Factors mediante:
sin(2k/n)k = 1, 2, , N/4
Por lo que el limite inferior es N/4 pero este tamano
pequeno requiere gran cantidad de direccionamiento,
por otro lado si hacemos el analisis para todo el
periodo N o para la mitad del periodo N/2 reduce
el costo computacional significativamente [2].
Ahora vamos a analizar una reduccion del numero
de TF para el caso del Radix-2, mediante la relacion
de los TF. primeramente vamos a analizar la figura de
abajo:

Podemos reducir el costo computacional,


analizando los patrones de la operaciones, como por
ejemplo analizar las propiedades del Twiddle Factor
[5]:
k+N/2

Simetria : WN
= WNk
k+N
P erioricidad : WN
= WNk
Tambien vemos que hay Twiddle Factors (TF)
especiales, por su simplicidad, por ejemplo para el
caso del Radix-4 se observa:
Nk

k
WN4 = exp(j k
2 ) = (j)
2N k
4

WN = exp(jk) = (1)k
3N k
k
WN 4 = exp(j 3k
2 ) = (j)

Figura 6. Relaciones TFs

Debido a que analizamos tres algoritmos, en la


tabla I se observa los factores simples de cada caso.
En la primera fila vemos los factores del Radix-2,
en la segunda fila para Split-Radix y la u ltima fila
Radix-4 :

Vemos que para cada coeficiente, el del lado


opuesto es el mismo pero cambiado de signo, es decir,
WNk WNk por lo tanto podemos reducir el calculo
a la mitad y consecuentemente aumentar el numero
de punteros de direccionamiento.

Podemos juntar las dos primeras etapas del diezmado en tiempo en una sola para ahorrar el maximo

Ahora para reducir aun mas el numero de


coeficientes calculados, tomamos N/2 numeros

N/4

WN

TABLA RECUPERACI ON

Tabla IV.

complejos y los combinamos en parejas, lo cual


difieren un factor de:

k
WN
max

Wk

= j

WNk = cos(2k/N ) jsin(2k/N ), para

jM N max k
4

k = 0, 1, , N4 1

jM

k N max
4

Entonces el primer TF del par es:

M N max

k+N/4
WN

= jWNk

Mk N max
2

= sin(2k/N ) jcos(2k/N ), para

jM 3N max
4

N max
8

N max
4
3N max
8
N max
2

N max
8

<k<

<k<
<k<
<k<

5N max
8

N max
4

3N max
8
N max
2
5N max
8

<k

k = 0, 1, , N4 1

VII-B.

Otros Enfoques

Generalmente en la transformada rapida de Fourier


tenemos N entradas y N salidas, pero hay veces que
no necesitamos todas la muestras en la salida [6], por
ejemplo: Solo queremos las transformadas de Fourier
de X(1), X(5), X(9) y X(13), entonces en lugar de
calcular la transformada para todas las muestras se
lo hace solo para una fraccion del diagrama [7] (ver
figura 8).

Concordamos con [2] en el sentido que es de


suma importancia los algoritmos radix-2 diezmado en
tiempo por su simplicidad y gran rendimiento, pero
las tendencias futuras van a ser algoritmos hbridos
como se ve en [7].
Las operaciones en paralelo, dan mayor capacidad
de calculo dado que pueden realizar varias operaciones al mismo tiempo, sin embargo tambien hay que
tomar en cuenta que influyen en el rendimiento los
tiempos de de los datos y los tiempos de direccionamiento.
R EFERENCIAS
[1]

[2]

[3]
[4]
[5]
[6]
Figura 7. Fraccion de FFT [7]

Tambien existe un metodo para la reconstruccion


de los Twiddle factors que une Radix-4 con Radix4/2 desde una memoria ROM que contiene N/8 +
1 coeficientes. Dado que necesitamos soportar varios
tamanos de transformadas hasta un maximo N max
de puntos FFT [6], nosotros guardamos (Nmax /8+1)
coeficientes de valores complejos dentro de la tabla,
M = (M0 , M1 , , MN/8 ) = WNk max . El resto de
twiddle factors puede ser obtenido desde la tabla IV
como sigue:
En donde Mk es el complejo conjugado de Mk
VIII.

C ONCLUSIONES

Las operaciones paralelas son lo que han llevado


a los procesadores a ser aplicados a amplias a reas,
pero no se han visto satisfechos con estas mejoras,
por esta razon siguen realizando investigaciones tanto
en el paralelismo como en la arquitectura.

[7]

M. T. Heideman, Multiplicative complexity of linear and


bilinear systems, in Multiplicative Complexity, Convolution,
and the DFT. Springer, 1988, pp. 526.
R. Meyer and K. Schwarz, Fft implementation on dspchips-theory and practice, in Acoustics, Speech, and Signal
Processing, 1990. ICASSP-90., 1990 International Conference
on. IEEE, 1990, pp. 15031506.
P. Ingle, Proakis, Metodos repidos para el celculo de la tdf,
in Computation of the Discrete Fourier Transform, pp. 715.
R. Lyons, Computing fft twiddle factors, 1998.
Computing fast fourier transform twiddle factors, 2010.
T. Pitkanen, T. Partanen, and J. Takala, Low-power twiddle
factor unit for fft computation, in International Workshop on
Embedded Computer Systems, 2007, pp. 6574.
R. G. Lyons, Computing fast fourier transform twiddle
factors.

IX.

DE LA INVESTIGACI ON

D IFUSI ON

www.youtube.com/watch?v = LO1 icZ zk

S-ar putea să vă placă și