You are on page 1of 5

Implementaci on de la Transformada R apida de Fourier en un dsPIC30F4011 para clasicaci on de metales

Jaime Fernando Am ezquita Rivera


Facultad de Ingenier a Electr onica Universidad Antonio Nari no Email: jaamezquita@uan.edu.co

Angela Viviana Pe na Puerto


Facultad de Ingenier a Electr onica Universidad Antonio Nari no Email: angelapena@uan.edu.co

Oscar Ricardo Montero Tovar


Departamento de Ingenier a El ectrica U. Nacional de Colombia Email: ormonterot@unal.edu.co

AbstractEste art culo presenta la implementaci on de la Transformada R apida de Fourier en un controlador de senales digitales dsPIC30F4011, se describen algunos algoritmos usados para la implementaci on de la FFT, la estructura de programaci on usada y una aplicaci on para la vericaci on del algoritmo selec cionado basada en la busqueda de patrones en el dominio de la frecuencia sobre ondas sonoras pulsadas que viajan a trav es de un material s olido para su identicaci on. Index TermsDiezmado en frecuencia, factores de giro, FFT, dsPIC.

la elecci on del algoritmo para la implementaci on de la FFT. Para implementar la FFT en procesadores con DSP, se preeren los algoritmos base 2 o base 4 diezmado en frecuencia en t erminos de velocidad y exactitud[1]. La estructura irregular de los algoritmos SRFFT los hace menos adecuados para su implementaci on en los dsPIC, ya que este tipo de c alculo necesita la combinaci on de dos tipos de algoritmos Radix-2 y Radix-4, haciendo m as eciente este tipo de c alculo. Para el desarrollo de este proyecto se escogi o el algoritmo Radix-2 Diezmado en frecuencia ya que reduce el n umero de sumas y multiplicaciones respecto al algoritmo original de la DFT, separando en dos partes el algoritmo, uno con ndices pares y otro con impares. Adem as el hardware de los dsPIC se ajusta a este tipo de algoritmos, ya que soportan direccionamiento por inversi on de acarreo o bit de reverso para algoritmos en base 2, este proceso se realiza en tres etapas, reduciendo y haciendo m as eciente el algoritmo de la FFT. A. Algoritmo Radix-2 Diezmado en frecuencia Para decucir el algoritmo Radix-2 diezmado en frecuencia se parte de la ecuaci on de la Transformada Discreta de Fourier (DFT) (1).
N 1

I.

INTRODUCCI ON

Las se nales presentes en nuestro ambiente, nos transmiten diversos tipos de informaci on dependiendo del an alisis que se efect ue en cada una de ellas. Estas se nales se pueden estudiar de varias formas como de las cuales las mas comunes son: El estudio en el dominio del tiempo para determinar par ametros como amplitud, periodo y otras caracteristicas relativas a esta dimensi on; y el estudio en el dominio de la frecuencia, donde se pueden observar caracteristicas como el ancho de banda, relaciones entre las magnitudes en las diferentes frecuencias y caracteristicas de fase entre otros parametros. Por otro lado, se encuentra que los materiales presentan diferentes respuestas frente al estimulo de una se nal, lo cual es utilizado en este articulo con el objetivo de discriminar el tipo de material segun las alteraciones que causa sobre la se nal aplicada. En la primera parte de este trabajo se describe la elecci on del algoritmo y los fundamentos te oricos como los factores de Giro o Twiddle, y los diagramas mariposa que representan relaciones matem aticas para el c alculo de la Transformada R apida de Fourier (FFT). En la segunda parte se hace una descripci on de las caracter sticas generales, estructura, funcionamiento de los bloques principales y el M odulo DSP del controlador de se nales digitales dsPIC30F4011. Tambi en se describe el software principal llamado VertebraldsPIC que se dise na para realizar el acople de los m odulos y las diferentes funciones necesarias para poder implementar la Transformada R apida de Fourier (FFT) en el dsPIC. Y en la tercera parte se desarrolla una aplicaci on para identicar materiales s olidos utilizando las ondas sonoras generadas por el material golpeado II. AN ALISIS TE ORICO

X (k ) =
n=0

kn x(n)WN

(1)

Se obtiene usando la metodolog a divide y vencer as. Se comienza dividiendo la f ormula de la Transformada Discreta de Fourier (DFT) en dos sumatorias, uno de los cuales contiene ltimos N/2 los primeros N/2 puntos de datos y el otro los u puntos de datos. Si aplicamos las propiedades de simetria y periodicidad y dividimos las muestras en pares e impares obtenemos la deducci on del algoritmo Radix-2 diezmado en frecuencia como se muestra en las siguientes expresiones: Ecuaci on para los datos Pares:
(N/2)1

X (2k ) =
n=0

kn g1 (n)WN/ 2

(2)

Los avances en la tecnolog a para el proceso de se nales tanto en hardware como en software, contin uan inuenciando

g1 (n) = x(n) + x(n + N/2) n = 0, 1, 2, ......, N/2 1

Ecuaci on para los datos Impares:


(N/2)1

X (2k + 1) =
n=0

kn g2 (n)WN/ 2

(3)

n g2 (n) = [x(n) x(n + N/2)WN n = 0, 1, 2, ......, N/2 1

de la F F T de X muestras, los factores de giro est an elevados a cero y cualquier n umero elevado a la cero es igual a 1, esto es importante en el momento de implementar el algoritmo de la F F T en el dsP IC ya que no se necesita realizar ninguna ltima etapa haciendo m multiplicaci on en la u as eciente el algoritmo.
TABLE I. FACTORES DE G IRO PARA FFT DE 8 MUESTRAS .
FFT8 Etapa3 Etapa2 Etapa1
0 W8 0 2 W8 , W8 0 1 2 3 W8 , W8 , W8 , W8

Este procedimiento computacional puede repetirse diezmando las DFTs de N/2 puntos, X (2k ) y X (2k + 1) de la ecuaci on (2) y (3). El proceso completo conlleva a una reducci on de operaciones v = log2 N etapas de diezmado, donde cada etapa implica N/2 mariposas [1]. B. C alculo de los Factores de Giro Los factores de giro o tambi en conocidos en ingles como Twiddlle son muy importantes en el desarrollo de cualquier Transformada R apida de Fourier, muchas veces se calculan n los mismos valores de WN , ocupando al procesador en operaciones repetitivas y recargando las operaciones del DSP. Se debe tener en cuenta que cada vez que se realiza un diezmado en cada una de las etapas, los factores de giro son diferentes. En la ecuaci on (5) se desglosa el factor de giro en senos y cosenos o en parte real y parte imaginaria. WN = ei2/N ei2/N = cos(2/N ) isen(2/N ) Coef iciente P arte Real : + cos(2/N ) Coef iciente P arte Imaginaria : sen(2/N ) Donde N= N umero de muestras. La Transformada Discreta de Fourier (DFT), es ineciente, porque no aprovecha la simetr a y periodicidad del factor de giro WN . El objetivo de un buen algoritmo FFT es ser capaz de incorporar estos factores extra sin ocupar demasiado tiempo al DSP. Ejemplo de la propiedad de simetr a:
k WN = W N 10 2 = 0.7071 + 0.7071i = W16 = W16 k+N/2

TABLE II.

FACTORES DE G IRO PARA FFT DE 16 MUESTRAS .


FFT16
0 W16 0 4 W16 , W16 0 2 4 6 W16 , W16 , W16 , W16 0 1 2 3 W16 , W16 , W16 , W16 4 5 6 7 W16 , W16 , W16 , W16 0 W8 0 2 W8 , W8 0 1 2 3 W8 , W8 , W8 , W8 0 1 2 3 W16 , W16 , W16 , W16 4 5 6 7 W16 , W16 , W16 , W16

Etapa4 Etapa3 Etapa2 Etapa1

(4)

C. Diagrama Mariposa del algoritmo Diezmado en Frecuencia en base-2 El diagrama mariposa es la representacion gr aca del algoritmo Diezmado en Frecuencia base-2, esta mariposa se deduce de las ecuaciones (2), (3) y se visualiza en la Figura 1.

(5)

Fig. 1.

Mariposa B asica del algoritmo diezmado en frecuencia en base 2.

2+16/2 W16

Ejemplo de la propiedad de periodicidad:


k+N 2+8 k 10 2 WN = WN W8 = W8 = W8 = 0 1i

Para realizar el diagrama de mariposa con m as muestras se debe reducir el diagrama siempre a la mitad hasta llegar al diagrama b asico, tambi en se debe tener en cuenta que los factores de giro en cada diezmado van cambiando y el resultado siempre se da en desorden, en la Figura 2 se encuentra el diagrama mariposa para 16 muestras. III. IMPLEMENTACI ON

Dado que WN es una funci on, con un n umero limitado de valores diferentes, se puede acelerar el c alculo de la transformada reduciendo el n umero de veces que este factor tiene que ser calculado. En la Tabla I y II se tienen los factores de giro para la Transformada R apida de Fourier de 8 y 16 muestras, donde se observa que los factores de giro de la secci on roja son equivalentes a los factores de giro de la secci on azul. Por lo anterior se puede obtener las equivalencia k WM para muestras 4, 8, 16, 32, 64, 128, 256 en cada una de las etapas sin necesidad de calcular todos los factores de giros. Adem as se puede concluir que siempre la ultima etapa

Para la implementaci on del algoritmo Radix-2 Diezmado en frecuencia, se utiliza el dsPIC30F4011 del grupo de controladores de se nales digitales (DSC), debido a que posee todos los recursos de los mejores microcontroladores embebidos de 16 bits, velocidad, potencia, manejo exible de interrupciones, un amplio campo de funciones perif ericas anal ogicas y digitales, opciones de reloj, protecciones, perro guardi an, seguridad del c odigo, simulaciones, etc., conjuntamente con las principales caracter sticas de los DSP, permitiendo su aplicaci on en el procesamiento de las se nales anal ogicas y digitalizadas.

de la componente imaginaria, a continuacion se muestran unos ejemplos con n umeros complejos: sea, Z0 = (x0 + y0 i) = 5 + 4i y Z1 = (x1 + y1 i) = 3 + 3i Ejemplo Suma y Resta Compleja :
Z0 + Z1 = (x0 + y0 i) + (x1 + y1 i) = (x0 + x1 ) + (y0 + y1 )i = 8 + 7i Z0 Z1 = (x0 + y0 i) (x1 + y1 i) = (x0 x1 ) + (y0 y1 )i = 2 + 1i

Ejemplo P roducto Complejo :


Z0 Z1 = (x0 x1 y0 y1 ) + (x0 y1 + x1 y0 )i = 3 + 27i

Fig. 2.

Diagrama Mariposa 16 Muestras.

3) Direccionamiento por inversi on de acarreo o Bit Reverso: Esta funci on Bit Reverso crea un ordenamiento que es aplicado posterior al c alculo de la FFT y se consigue intercambiando los bits del puntero de direcciones, con lo que el resultado es la imagen espejo de esta direcci on. A continuaci on se muestra el proceso de bit de acarreo para 4 datos, teniendo en cuenta que el bit0 siempre vale cero para apuntar siempre datos de tama no palabra.
La suma siempre va hacia la derecha 0000 0000 0000 000 0 + 010 0 0000 0000 0000 010 0 + 010 0 0000 0000 0000 001 0 + 010 0 0000 0000 0000 011 0

A. Implementaci on de la FFT en el dsPIC30F4011 Inicialmente se elige el tipo de dato que se puede almacenar en la memoria del dsPIC, hay que tener en cuenta que se tienen que almacenar n umeros enteros con parte decimal y signo, realizar operaciones con n umeros complejos como sumas, restas, multiplicaciones. 1) Tipo de Datos: El tipo de datos que se utiliza para almacenar informaci on en el dsPIC30F4011, es el formato punto jo, utiliza una representaci on similar a la de un n umero entero, salvo que se considera la existencia de un punto binario virtual mediante el cual se escalan los valores enteros para de esta forma, obtener n umeros fraccionarios. En la Figura 3, se describe la representaci on en modo entero y modo fraccional utilizada, el bit 15 de color rojo indica el signo del n umero, los bits de color verde y el bit blanco representan el n umero ltimo los bits de color amarillo representan la entero y por u parte fraccionaria.
Wx Apunta a la direcci on 0 Se suma el dato de XB=2 Wx Apunta a la direcci on 2 Se suma el dato de XB=2 Wx Apunta a la direcci on 1 Se suma el dato de XB=2 Wx Apunta a la direcci on 3

B. Estructura del software base para el dsPIC30F4011 Estudiando y analizando las diferentes caracter sticas, m odulos, perif ericos y estructura del dsPIC30F4011, se dise na un software base llamado VertebraldsPIC, es la columna vertebral de la Transformada R apida de Fourier (FFT), este software contiene todos los procedimiento como velocidad de muestreo, n umero de muestras y dem as funciones y operaciones realizadas con este dispositivo, en la Figura 4 se observa la estructura de este software.

Fig. 3.

Representaci on en modo entero y en modo fraccional.

En la Tabla III, se muestran los rangos en modo entero y modo fraccional para un n umero de 16 Bits.
TABLE III.
TAMANO 16 Bits

TABLA CON R ANGOS EN MODO ENTERO Y F RACCIONAL DE 16 B ITS .


RANGO 256.0 hasta 255.27 Formato Q.7 con 8 Bits de Guarda EN MODO RESOLUCION FRACCIONAL 7.8125 103

2) Operaciones complejas: El resultado de la FFT se representa por medio de n umeros complejos, un n umero complejo tiene la forma z = a + bi, est a compuesto por una parte real Re(z ) = a, y una parte imaginaria Im(z ) = b, la constante i, representa el valor de 1, solo es un indicador

Fig. 4.

Estructura del software VertebraldsPIC.

C. Vericaci on del Software Para la vericaci on del software implentado en el dsPIC30F4011 se debe tener en cuenta la relaci on que hay con los datos del conversor A/D y la magnitud de un dato. El conversor del dsPIC30F4011 toma se nales de 0 a 5v pero en el momento de procesar estos valores se trabajan en modo fraccionario de 0 a 1, a continuaci on se muestra un ejemplo de la relaci on para entender la gracas de espectro de magnitud.
5 voltios 2.5 voltios 0 voltios 1 0.5 0 Dato Fraccionario Dato Fraccionario Dato Fraccionario

acondicionar la se nal al conversor an alogo digital del dsPIC, esta etapa de amplicaci on se realiza por medio de un amplicador operacional, en la Figura 7, se visualiza el m odulo del micr ofono.

Fig. 7.

Micr ofono MEMS ADMP401.

En las gr acas de los espectros de magnitud se denen las siguientes variables:


Valor Real = Magnitud = Frecuencia = n= Datos Real de la magnitud Datos en modo fraccional (0-1) Frecuencia fundamental N umero de muestra (Voltios) (Intensidad) (Fm) (X)

3) Comunicaci on de tarjeta principal con PC: Esta interfaz realiza la comunicaci on entre la tarjeta principal y la computadora, en la Figura 8 se visualiza la tarjeta de comunicaci on.

Como experimento se usa una se nal de entrada seno de 1kHz del generador de se nales, se muestrea a una frecuencia de 3kHz y se toman 256 muestras, estos datos fueron comparados con MATLAB para corroborar esta informaci on en la gura 5 se visualiza el resultado del experimento. Error cuadr atico medio es de errorcm = 0.0207

Fig. 8.

Comunicaci on de tarjeta principal con PC..

4) Tarjeta Principal: Esta tarjeta gestiona toda la ejecuci on de proyecto, desde la adquisici on de datos, visualizacion de los diferentes menus en la LCD, comunicaci on serial (UART) y resultado nal de la Transformada R apida de Fourier (FFT).

Fig. 5.

Resultado del experimento con una onda seno de 1kHz. Fig. 9. Descripci on de la Tarjeta Principal.

D. M odulos del Proyecto En esta secci on se visualizan los diferentes m odulos que fueron necesarios para la construcci on del prototipo nal. 1) Fuente de alimentaci on: Es la encargada de suministrar la corriente y los voltajes necesarios para cada uno de los circuitos desarrollados para este proyecto, en la Figura 6 se visualiza el m odulo de alimentaci on. IV. DE MATERIALES IDENTIFICACI ON Para comprobar el funcionamiento de la FFT en el dsPIC, se desarroll o una aplicaci on para identicar materiales s olidos, la t ecnica de identicaci on se basa en la b usqueda de patrones en el dominio de la frecuencia sobre las ondas sonoras generadas por el material golpeado. Despu es de generar un golpe, el material genera un sonido que es capturado por un micr ofono que capta las ondas sonoras convirti endolas en una se nal el ectrica, esta se nal es enviada a un comparador el cual inicia la toma de muestras que son capturadas por el dsPIC30F4011 el cual procesa esta informaci on aplicando la FFT, nalmente se visualiza el material golpeado en la LCD, en la Figura 10 se ilustra el diagrama general del identicador de materiales. El identicador de materiales trabaja a una frecuencia de muestreo de 50kHz y 256 muestras, tambi en funciona sin necesidad de utilizar un computador, pero el usuario puede observar gr acamente los espectros de magnitud del material por medio de un computador, utilizando un software llamado TesisFFT creado en Visual Basic, la conexi on

Fig. 6.

Fuente de Alimentaci on.

2) Tarjeta con micr ofono y acondicionamiento de la se nal al dsPIC: Para la captura del sonido del material se utiliza un micr ofono MEMS ADMP401, esta se nal obtenida por el micr ofono necesita una etapa de amplicaci on para poder

entre la aplicaci on y el computador se realiza v a serial, esta conexi on es opcional.

2) Barra de Hierro: En la Figura 14 se visualiza el espectro de la barra de Hierro con un n=28 que corresponde a una frecuencia de 5468.75 Hz.

Fig. 14. Fig. 10. Identicador de Materiales.

Espectro de Barra de Hierro.

V.

C ONCLUSIONES

A. Materiales que se utilizan en la aplicaci on Se escogieron por su forma geom etrica y propiedades del material. El hierro, aluminio, bronce son materiales met alicos que se encuentran f acilmente en el mercado en forma cil ndrica, tambi en se utiliza una lamina de aluminio para hacer una comparaci on entre dos materiales iguales pero de distinta ltimo se utiliza un material que no forma geom etrica y por u hace parte de los metales pero tiene forma cil ndrica llamado te on, en la Figura 11 se muestra los materiales utilizados.

Se implemento la transformada R apida de Fourier (FFT) sobre un controlador de se nales digitales dsPIC30F4011. Y se desarrollo una aplicaci on de identicaci on de materiales que se desempe no con exito permitiendo incluso la discriminaci on de geometr as. Se trabajo con hierro, aluminio, bronce y te on en forma de cilindros y con una l amina de aluminio. El dispositivo tiene la capacidad de conmutar el n umero de muestras tomadas sobre la se nal y la velocidad de muestreo, lo que permite que el dispositivo sea m as vers atil para el an alisis de diferentes tipos de se nales. Este art culo aporta una explicaci on importante sobre c omo se procesan los n umeros complejos, ya que la transformada es una operaci on compleja, y la forma en que se calculan y k . almacenan los factores de giro WN

Fig. 11. (a) Barra de Aluminio; b) Barra de Bronce; c) Barra de Hierro; d) Barra de Te on; e) Lamina de Aluminio.

B. Resultados En la gura 12 se presenta el prototipo nal con el cual se realizan las diferentes pruebas para identicar los materiales. Una desventaja importante, se encuentra en la memoria RAM del dsPIC30F4011 ya que es una limitaci on para la cantidad de muestras que se pueden almacenar, limitando as la resoluci on de la transformada.

AGRADECIMIENTOS Los autores desean agradecer a Luis Ernesto Am ezquita Rivera por su valiosa asesor a en el dise no de circuitos y aportes en m etodos de programaci on. Por sus aportes y consejos para lograr obtener un texto mas completo, los autores agradecen a Julian Arias y Miguel Montilla. Finalmente este trabajo no seria posible sin la colaboracion de Gustavo Rivera Gonzales quien facilit o los equipos electr onicos necesarios para la toma de mediciones. R EFERENCES
J. Proakis, D. Manolakis, Tratamiento digital de se nales, 3rd ed. Prentice Hall, Madrid. [2] S. MITRA, Procesamiento digital de se nales, 2rd ed. Mc Graw-Hill. [3] J. Mar a, A. Usategui, dsPIC Dise no pr actico de aplicaciones, 1rd es. McGRAW-HILL. ISBN 84-841-5156-9. [4] J. Mar a, A. Usategui, Microcontroladores PIC dise no pr actico de aplicaciones segunda parte: PIC16F87X, PIC18FXXX, 2rd es. McGRAWHILL. ISBN 84-841-4627-1. Fig. 13. Espectro de Barra de Te on. [1]

Fig. 12.

Prototipo Final

1) Barra de Te on: En la Figura 13 se visualiza el espectro de la barra de Te on con un n=7 que corresponde a una frecuencia de 1367.1875 Hz.