1 diseño e implementación de filtros digitales en un procesador dsp ...

12
1 DISEÑO E IMPLEMENTACIÓN DE FILTROS DIGITALES EN UN PROCESADOR DSP TMS320C50 John Kern Molina 1 , Claudio Urrea Oñate 2 , Christian Piel Gamonal 3 1,2,3 Grupo de Automática. Departamento de Ingeniería Eléctrica. Universidad de Santiago de Chile. Avda. Ecuador Nº 3519. Estación Central. Santiago. Chile. 1 Escuela de Ingeniería Electrónica y Computación, Universidad Iberoamericana de Ciencias y Tecnología, Manuel Rodríguez Sur Nº 220, Santiago. Santiago, Chile. 1 [email protected], 2 [email protected], 3 [email protected] RESUMEN Este artículo muestra el diseño, simulación e implementación de filtros digitales de Respuesta Impulso Finita (FIR) a través del empleo de herramientas computacionales y del uso del procesador DSP TMS320C50, de la empresa Texas Instruments. Se realiza un tratamiento de los filtros digitales presentando su correspondiente obtención de coeficientes para los tipos: pasa bajos, pasa altos y subwoofer, considerando diferentes frecuencias de corte. Se realiza el hardware en base a la plataforma DSK (DSP Starter Kit) del procesador y se diseñan los algoritmos de procesamiento en tiempo real que se implementan en el DSP. Los resultados se presentan mediante curvas comparativas de respuestas de magnitud y fase. PALABRAS CLAVES: Filtro digital, procesamiento digital de señales, procesador DSP, TMS320C50. DESIGN AND IMPLEMENTATION OF DIGITAL FILTERS IN A TMS320C50 DSP PROCESSOR ABSTRACT This paper shows the design, simulation and implementation of Finite Impulse Response (FIR) digital filters through the use of computational tools and the DSP processor TMS320C50, of the Texas Instruments Company. A treatment of the digital filters is developed, presenting its corresponding assignment of coefficients to the types: low pass, high pass and subwoofer, considering different cutoff frequencies. The hardware is performed based on platform DSK (DSP Starter Kit) processor and real-time processing algorithms are designed and implemented on the DSP. The results are shown by comparative curves of magnitude and phase responses. KEY WORDS: Digital filter, digital signals processing, DSP processor, TMS320C50. 1. INTRODUCCIÓN En muchas aplicaciones se requiere que el espectro de frecuencias de las señales sea modificado o manipulado de acuerdo a especificaciones deseadas. Tal proceso puede incluir, por ejemplo, la atenuación de un rango de componente de frecuencias o rechazar o aislar un componente específico. Cualquier sistema o red que presente estas características de selectividad de frecuencias es llamado filtro. Los filtros se pueden dividir según su respuesta en frecuencias como: pasa bajos; solamente permite el paso de frecuencias bajas, pasa altos; deja pasar las frecuencias altas, pasa banda; admite todas las frecuencias pertenecientes a cierto rango, atrapa banda; permite el paso de toda la señal excepto un rango de frecuencias específico. Según su forma de implementación, los filtros también pueden clasificarse en análogos y digitales, los primeros se caracterizan por estar construidos en base a componentes análogos como resistencias, condensadores, bobinas, amplificadores operacionales, etc., y los segundos se refieren

Transcript of 1 diseño e implementación de filtros digitales en un procesador dsp ...

Page 1: 1 diseño e implementación de filtros digitales en un procesador dsp ...

1

DISEÑO E IMPLEMENTACIÓN DE FILTROS DIGITALES EN UN PROCESADOR DSP TMS320C50

John Kern Molina 1, Claudio Urrea Oñate2, Christian Piel Gamonal3

1,2,3Grupo de Automática. Departamento de Ingeniería Eléctrica. Universidad de Santiago de Chile.

Avda. Ecuador Nº 3519. Estación Central. Santiago. Chile. 1Escuela de Ingeniería Electrónica y Computación, Universidad Iberoamericana de Ciencias y Tecnología,

Manuel Rodríguez Sur Nº 220, Santiago. Santiago, Chile. [email protected], [email protected], [email protected]

RESUMEN

Este artículo muestra el diseño, simulación e implementación de filtros digitales de Respuesta Impulso Finita (FIR) a través del empleo de herramientas computacionales y del uso del procesador DSP TMS320C50, de la empresa Texas Instruments. Se realiza un tratamiento de los filtros digitales presentando su correspondiente obtención de coeficientes para los tipos: pasa bajos, pasa altos y subwoofer, considerando diferentes frecuencias de corte. Se realiza el hardware en base a la plataforma DSK (DSP Starter Kit) del procesador y se diseñan los algoritmos de procesamiento en tiempo real que se implementan en el DSP. Los resultados se presentan mediante curvas comparativas de respuestas de magnitud y fase. PALABRAS CLAVES: Filtro digital, procesamiento digital de señales, procesador DSP, TMS320C50.

DESIGN AND IMPLEMENTATION OF DIGITAL FILTERS IN A TMS320C50 DSP PROCESSOR

ABSTRACT This paper shows the design, simulation and implementation of Finite Impulse Response (FIR) digital filters through the use of computational tools and the DSP processor TMS320C50, of the Texas Instruments Company. A treatment of the digital filters is developed, presenting its corresponding assignment of coefficients to the types: low pass, high pass and subwoofer, considering different cutoff frequencies. The hardware is performed based on platform DSK (DSP Starter Kit) processor and real-time processing algorithms are designed and implemented on the DSP. The results are shown by comparative curves of magnitude and phase responses. KEY WORDS: Digital filter, digital signals processing, DSP processor, TMS320C50.

1. INTRODUCCIÓN En muchas aplicaciones se requiere que el espectro de frecuencias de las señales sea modificado o manipulado de acuerdo a especificaciones deseadas. Tal proceso puede incluir, por ejemplo, la atenuación de un rango de componente de frecuencias o rechazar o aislar un componente específico. Cualquier sistema o red que presente estas características de selectividad de frecuencias es llamado filtro. Los filtros se pueden dividir según su respuesta en frecuencias como: pasa bajos; solamente permite el paso de frecuencias bajas, pasa altos; deja pasar las frecuencias altas, pasa banda; admite todas las frecuencias pertenecientes a cierto rango, atrapa banda; permite el paso de toda la señal excepto un rango de frecuencias específico. Según su forma de implementación, los filtros también pueden clasificarse en análogos y digitales, los primeros se caracterizan por estar construidos en base a componentes análogos como resistencias, condensadores, bobinas, amplificadores operacionales, etc., y los segundos se refieren

Page 2: 1 diseño e implementación de filtros digitales en un procesador dsp ...

2

a un algoritmo mediante el cual una señal digital o secuencia de números, frecuentemente obtenida a partir de una señal analógica, es transformada en una segunda secuencia de números llamada señal digital de salida. Esta transformación puede realizarse en tiempo diferido mediante un proceso computacional o en tiempo real a través de un procesador digital se señales DSP [1], [2], [3]. En este trabajo se presenta el desarrollo, simulación e implementación de filtros digitales de respuesta impulso finita FIR, de diferente orden y considerando distintas frecuencias de corte, a través del empleo de herramientas computacionales y del uso del procesador DSP TMS320C50 de la empresa Texas Instruments. Se realiza un tratamiento de los filtros digitales presentando su correspondiente obtención de coeficientes para los tipos: pasa bajos, pasa altos y subwoofer. Se realiza el hardware en base a la plataforma DSK (DSP Starter Kit) del procesador y se diseñan los algoritmos de procesamiento en tiempo real que se implementan en el DSP. Los resultados se presentan mediante curvas comparativas de respuestas de magnitud y fase.

2. FILTROS DIGITALES Conceptos básicos El término filtro digital se refiere al proceso computacional o algoritmo por el cual una señal digital o secuencia de números, que actúa como entrada, es transformada en una segunda secuencia de números llamada señal digital de salida. Algunas de las ventajas de usar filtros digitales, en comparación con los análogos, son: alta confiabilidad, alta precisión, el desempeño general del sistema no se ve afectado por la desviación de sus componentes, las tolerancias de sus componentes no son críticas, es fácil cambiar sus parámetros para así alterar las características del filtro (filtros adaptativos) y una característica importante es que pueden realizarse filtros de fase lineal y con especificaciones muy rigurosas [4], [5]. Un filtro digital es denominado no recursivo (también llamado filtro FIR: Finite Impulse Response) cuando la salida depende únicamente de los valores previos de entrada. Un filtro recursivo (conocido como filtro IIR: Infite Impulse Response) es aquel en que además de los valores de entrada previos utiliza los valores de salida previos [6], [7]. El orden de un filtro digital corresponde al número de entradas (o salidas) previas usadas para calcular el valor de salida actual y, dependiendo del tipo de filtro, puede ser de cero hacia arriba. En términos de implementación en el DSP el orden de un filtro digital no recursivo corresponde al número de entradas previas que se necesita guardar en memoria para generar el valor de salida. La acción de un filtro se puede expresar, por una ecuación en diferencias, a través de (1) y (2), [5]-[8]:

( ) ( ) ( ) ( ) ( ) ( )0 1 1 2( ) -1 - -1 -2 - - -M MY n a X n a X n a X n M b Y n b Y n b Y n N= + + + − −L L (1)

0 1

( ) ( ) ( )M N

k kk k

Y n a X n k b Y n k= =

= − − −∑ ∑ (2)

donde X(n) a X(n-M) representan los valores de una secuencia que entra al filtro, Y(n-1) a Y(n-N) señalan una secuencia de valores previos de salida e Y(n) expresa la secuencia de los valores de salida actuales del filtro. Los elementos a0 a aM., y b1 a bN, que aparecen en las expresiones (1) y (2), son constantes y se denominan coeficientes de entrada y salida del filtro, respectivamente. Dichos coeficientes determinan las característica particulares de cada filtro. El máximo de M y N indica el orden del filtro. Si se hacen cero todos los coeficientes b en (1)-(2) se obtiene una expresión para un filtro no recursivo como, se indica en (3):

Page 3: 1 diseño e implementación de filtros digitales en un procesador dsp ...

3

( ) ( ) ( ) ( )0 10

( ) 1M

M kk

Y n a X n a X n a X n M a X n k=

= + − + + − = −∑L (3)

en donde M corresponde al orden del filtro FIR. Otra forma de representar un filtro, de manera más útil para trabajar con su respuesta en frecuencia, es la función de transferencia. Para este propósito se debe introducir el operador de retardo denotado por el símbolo z- 1. Cuando se aplica a una secuencia de valores digitales proporciona el valor previo en aquella secuencia, es decir, z- 1X(n) = X(n-1). Considerando este operador en (1)-(3), y ordenado adecuadamente, se obtienen las expresiones para las funciones de transferencia de un filtro recursivo y no recursivo, como se aprecia en (4) y (5), respectivamente [4]-[6].

1 20 1 2 0

1 21 2

1

( )( )

(1 )1

Mk

kMM k

N NkN

kk

a za a z a z a z

H zb z b z b z

b z

−− − −

=− − −

=

+ + + += =

+ + + + +

L

L

(4)

1 20 1 2

0

( )M

M kM k

k

H z a a z a z a z a z− − − −

== + + + + = ∑L (5)

La ecuación (5) puede representarse a través de un gráfico de flujo de señal, como se muestra en la Fig. 1. Esta estructura es llamada realización en forma directa de un filtro FIR, porque los coeficientes del filtro pueden ser identificados directamente desde la ecuación en diferencias. Las flechas asociadas al operador z- 1 corresponden a los retardos de tiempo.

Figura 1: Estructura general de un filtro FIR. Consideraciones de diseño Diseñar un filtro digital involucra la ejecución de las siguientes etapas: aproximación, realización, estudio de errores aritméticos e implementación. La aproximación es el proceso de generar una función de transferencia que satisfaga las especificaciones deseadas, las cuales pueden involucrar respuestas en el dominio del tiempo, en el dominio de la frecuencia, o alguna combinación de ambas respuestas del filtro. La realización consiste en la conversión de la función de transferencia deseada en redes de filtros. Esta etapa puede ser acompañada por varias estructuras de redes como: directa, directa canónica, en cascada o en paralelo. En la aproximación y realización se asume que se implementarán los filtros en un dispositivo de precisión infinita, es decir, sin considerar las limitantes del sistema (por ejemplo, número de bits para definir cada muestra, velocidad de procesamiento del sistema y cantidad de memoria disponible). No obstante, la implementación con los dispositivos actuales sólo ofrece una precisión finita por lo que es necesario estudiar los efectos de los errores aritméticos en la respuesta del filtro, es decir, como es el comportamiento real del mismo, para hacer una comparación con lo que se había diseñado en un principio y evaluar si se está dentro del rango de tolerancia deseado [6].

Page 4: 1 diseño e implementación de filtros digitales en un procesador dsp ...

4

3. PROCESADOR DSP TMS320C50 El procesador seleccionado para este trabajo pertenece a la familia C50 de Texas Instruments. Corresponde a un DSP fabricado con tecnología CMOS. Este combina una arquitectura interna del tipo Harvard avanzado (en el que están separados los buses para memoria de programa y para la memoria de datos) que contiene bloques memoria y periféricos dentro del chip, con un set de instrucciones altamente especializado que sirve de base para aplicaciones DSP de alta velocidad. Su reloj externo es de 40 Mhz, sin embargo, el ciclo de máquina interno ocupa dos ciclos de éste, demorándose 50 nano segundos en ejecutar una instrucción, por lo que realiza hasta 20 millones de instrucciones por segundo (20 MIPS). Este procesador, Texas Instruments TMS320C50, está dispuesto en una plataforma denominada DSK, como se aprecia en la Fig. 2, que trabaja en tiempo real, además de que permite su interconexión con otras placas circuitales creadas por el usuario, pudiendo expandir el sistema de diferentes maneras. El DSK debe conectarse a un computador del tipo PC compatible, por medio de un puerto de comunicación serial del tipo RS232 [10]-[13].

Figura 2: Placa DSK TMS320C50. Características Algunas características de dicho sistema son: DSP de punto fijo de 16 Bits de datos, memoria PROM 27256 de 32 Kbytes donde reside el programa de comunicación con el PC, circuito conversor análogo-digital-análogo AD/DA o AIC (circuito de interfaz análoga) con un ancho de banda de 10 KHz, frecuencia de muestreo y conversión hasta 20 KHz en entradas y salidas análogas, circuito integrado de interfaz análoga TLC32040, conexión directa a los buses del DSP para interconectar con circuitos externos.

4. IMPLEMENTACIÓN DE FILTROS FIR Luego de analizar la información proporcionada por el fabricante del DSP se procede a realizar el programa base del sistema, como se indica en la Fig. 3.

Figura 3: Diagrama de flujo del programa procesador DSP.

Page 5: 1 diseño e implementación de filtros digitales en un procesador dsp ...

5

Inicialización El primer paso que realiza el programa es definir las ubicaciones en la memoria de datos en donde se irán almacenando los valores de la secuencia de entrada, que en este caso son 41 ubicaciones. Debido a que se implementarán filtros FIR de orden 20 y 40, es necesario almacenar los últimos 40 valores de la secuencia de entrada en orden ascendente desde la dirección 300h en adelante. Así, cada vez que ingrese un nuevo valor de entrada todos los valores almacenados serán desplazados un lugar hacia arriba guardando siempre en la dirección 300h el último valor entrante. Las constantes empleadas son: TA, TB, CTR, KS, X10, X1, X001, X1Q15, MAX, MIN. En particular, TA, TB y CTR son utilizadas para definir los tiempos de muestreo, de conversión y el registro de control del AIC dentro de la rutina de inicialización. KS es empleada para el cálculo consistente en dividir el valor de la frecuencia de muestreo en mil (Fs/1000). X10, X1, X001 y X1Q15 representan valores numéricos en diferentes formatos fraccionarios. MAX y MIN sirven para calibrar proporcionando los rangos que cortan la señal en un efecto de distorsión. Las variables usadas son: XN, FRA, INS, CAR, TEMP, TEMP2, TEMP3, TEMP4, TEMP5, AC, AD, AU, RD, RU, RBT, FIR y BOTON. En particular, XN contiene permanentemente el último valor que ha llegado a la entrada y está definido por la dirección 300h. FRA, INS, y CAR se utilizan en las rutinas que envían a la pantalla frases, instrucciones y caracteres, respectivamente. TEMP, TEMP2, TEMP3, TEMP4 y TEMP5 son variables de uso general para ser empleadas en cualquier parte del programa de forma temporal. AC, AD y AU representan las centenas, decenas y unidades del valor de atraso deseado (en milisegundos). RD y RU constituyen las decenas y las unidades del porcentaje de reverberación deseado, respectivamente, y RBT el porcentaje total en formato fraccionario. FIR permite definir el filtro FIR que se ocupará. BOTON es una variable con la cual se activa el efecto de distorsión. La siguiente etapa corresponde a la inicialización del sistema. Ésta es una rutina necesaria dado que inicializa cuatro dispositivos: el microprocesador, el AIC, el puerto serial y el temporizador. La fase de presentación del programa en pantalla muestra en un display LCD el programa que está corriendo y el tipo de algoritmo utilizado. En este caso: filtro FIR y buffers circulares para generar un efecto de eco. El paso siguiente se encarga de la selección del tiempo de retardo y del porcentaje de reverberación. A través de un teclado se eligen los valores para este cometido: seleccionando un dígito que se modifica incrementándolo o decrementándolo. Con esto se proporciona el número de milisegundos deseados de retardo y el porcentaje de reverberación. Para conseguir el efecto de eco se combinan los parámetros retardo y reverberación: los datos que van entrando se almacenan en memoria haciendo uso de los buffers circulares que direccionan la memoria de datos. Al requerir un tiempo de retardo mayor se define un buffer circular de mayor tamaño, de esta forma un bloque más grande de la memoria de datos almacena las entradas previas. Luego, el porcentaje de reverberación indica que porción de la entrada pasa directamente a la salida (atenuada): la que es sumada al porcentaje complementario de la señal con retardo leída del buffer circular. Luego se procede a la habilitación del filtro, tipo y frecuencia: el programa pregunta si se desea habilitar alguno de los filtros y, de ser así, qué tipo de filtro: pasa bajo, pasa alto o para amplificar un subwoofer (frecuencias muy bajas). Una vez que se ha ingresado el tipo de filtro, si es pasa alto o pasa bajo, es necesario especificar la frecuencia de corte del mismo. Rutina principal La siguiente fase concierne a la rutina principal de procesamiento de señal: se ejecuta en forma permanente hasta que sea presionada una tecla. En la Fig. 4 se muestra el diagrama de flujo correspondiente. En el primer y segundo bloque se realizan los cálculos para pasar del formato de ingreso,

Page 6: 1 diseño e implementación de filtros digitales en un procesador dsp ...

6

correspondientes a dígitos entregados vía teclado, al formato binario fraccional, como se muestra en (6) y (7), donde:

10RBT RD RU= ⋅ + (6)

100 10ATRASO AC AD AU= ⋅ + ⋅ + (7) RBT es un parámetro que se utiliza para determinar el porcentaje de la señal de salida, que será de la parte calculada, y el porcentaje de la señal almacenada previamente (con retraso, leído del buffer circular) y ATRASO corresponde a un parámetro que se emplea para calcular la cantidad de memoria que requerirá el buffer circular (su longitud). El tercer bloque asigna la posición de memoria de datos que utilizará el buffer circular, calculado previamente, y así, se consigue configurar el efecto de eco. Una vez realizados los cálculos anteriores se ingresa al segmento del programa que se ejecuta continuamente: en este se realiza una lectura de la entrada digital luego se toma de la tabla los 40 últimos valores de entrada previos (desde la dirección 300h en adelante) y cada uno de esos datos se desplaza una dirección hacia arriba, partiendo por el valor ubicado en la parte superior de la memoria y ubicando el último valor leído en la dirección 300h. Este proceso sirve para ‘refrescar’ la memoria con los últimos 40 valores de entrada considerando el dato recién leído. Una vez refrescada la tabla de valores de entrada anteriores, se procede a calcular la ecuación en diferencias del filtro correspondiente. Es importante mencionar que las señales de trabajo consideradas son tipo audibles por lo que es conveniente un retraso de grupo constante, debido a esto, se contemplan filtros de tipo FIR de orden 20, en el caso de pasa altos y pasa bajos, y de orden 40 para el de subwoofer.

Figura 4: Diagrama de flujo de la rutina principal del procesamiento de señal.

Diseño de los filtros Para el diseño de los filtros se emplea el método basado en enventanado por su simplicidad para la determinación de los coeficientes de los filtros FIR [14]. Tales coeficientes se obtienen con la ayuda del programa MatLab, utilizando las funciones de la biblioteca signal processing toolbox [15]-[18]. En la Tablas 1 y 2 se indican los valores calculados para los coeficientes de los filtros pasa bajos y pasa altos, respectivamente.

Page 7: 1 diseño e implementación de filtros digitales en un procesador dsp ...

7

Tabla 1: Valores de orden, frecuencias y coeficientes considerados para los filtros pasa bajos.

Filtro pasa bajos 1 Filtro pasa bajos 2 Filtro pasa bajos 3 Filtro pasa bajos 4 Filtro pasa bajos 5

n = 20 n = 20 n = 20 n = 20 n = 40 fs = 18.939 Hz fs = 18.939 Hz fs = 18.939 Hz fs = 18.939 Hz fs = 18.939 Hz

fc = 500 Hz fc = 1.000 Hz fc = 2.000 Hz fc = 4.000 Hz fc = 60 Hz Coeficientes a

0.0048 0.0068 0.0122 0.0211 0.0332 0.0476 0.0627 0.0770 0.0887 0.0964 0.0991 0.0964 0.0887 0.0770 0.0627 0.0476 0.0332 0.0211 0.0122 0.0068 0.0048

Coeficientes a -0.0005 0.0006 0.0036 0.0103 0.0222 0.0394 0.0607 0.0831 0.1030 0.1167 0.1216 0.1167 0.1030 0.0831 0.0607 0.0394 0.0222 0.0103 0.0036 0.0006 -0.0005

Coeficientes a 0.0009 -0.0011 -0.0055 -0.0122 -0.0156 -0.0060 0.0253 0.0782 0.1402 0.1907 0.2102 0.1907 0.1402 0.0782 0.0253 -0.0060 -0.0156 -0.0122 -0.0055 -0.0011 0.0009

Coeficientes a 0.0016 -0.0021 -0.0062 0.0017 0.0210 0.0119 -0.0449 -0.0640 0.0680 0.3019 0.4224 0.3019 0.0680 -0.0640 -0.0449 0.0119 0.0210 0.0017 -0.0062 -0.0021 0.0016

Coeficientes a 0.0036 0.0039 0.0046 0.0059 0.0076 0.0098 0.0123 0.0152 0.0183 0.0215 0.0249 0.0282 0.0315 0.0346 0.0375 0.0400 0.0422 0.0440 0.0453 0.0461 0.0463

0.0461 0.0453 0.0440 0.0422 0.0400 0.0375 0.0346 0.0315 0.0282 0.0249 0.0215 0.0183 0.0152 0.0123 0.0098 0.0076 0.0059 0.0046 0.0039 0.0036

Tabla 2: Valores de orden, frecuencias y coeficientes considerados para los filtros pasa altos.

Filtro pasa altos 1 Filtro pasa altos 2 Filtro pasa altos 3 Filtro pasa altos 4

n = 20 n = 20 n = 20 n = 20 fs = 18.939 Hz fs = 18.939 Hz fs = 18.939 Hz fs = 18.939 Hz

fc = 500 Hz fc = 1.000 Hz fc = 2.000 Hz fc = 4.000 Hz Coeficientes a

-0.0025 -0.0036 -0.0065 -0.0113 -0.0177 -0.0254 -0.0335 -0.0411 -0.0474 -0.0515 0.9495 -0.0515 -0.0474 -0.0411 -0.0335 -0.0254 -0.0177 -0.0113 -0.0065 -0.0036 -0.0025

Coeficientes a 0.0004 -0.0006 -0.0031 -0.0090 -0.0193 -0.0342 -0.0526 -0.0721 -0.0893 -0.1013 0.8937 -0.1013 -0.0893 -0.0721 -0.0526 -0.0342 -0.0193 -0.0090 -0.0031 -0.0006 0.0004

Coeficientes a -0.0009 0.0011 0.0055 0.0123 0.0157 0.0060 -0.0255 -0.0786 -0.1411 -0.1919 0.7900 -0.1919 -0.1411 -0.0786 -0.0255 0.0060 0.0157 0.0123 0.0055 0.0011 -0.0009

Coeficientes a -0.0017 0.0021 0.0062 -0.0017 -0.0210 -0.0119 0.0451 0.0642 -0.0682 -0.3028 0.5792 -0.3028 -0.0682 0.0642 0.0451 -0.0119 -0.0210 -0.0017 0.0062 0.0021 -0.0017

Page 8: 1 diseño e implementación de filtros digitales en un procesador dsp ...

8

Hardware del sistema Para la implementación completa del sistema es necesario el desarrollo de: una etapa de adaptación de impedancias para la interconexión con los buses del DSP, un circuito de visualización de datos mediante display LCD y una interfaz a teclado. Este requerimiento se materializa a través del diseño y construcción de una tarjeta de circuito impreso (PCB) con su correspondiente circuito electrónico, como se señala en la Fig. 5 y la Fig. 6, respectivamente.

Figura 5: Diseño de la placa PCB empleada en el hardware del DSK TMS320C50.

Figura 6: Implementación de la placa PCB empleada en el hardware del DSK TMS320C50. El montaje del sistema completo se indica en la Fig. 7.

Figura 7: Aspecto final del hardware del sistema procesador de señal.

5. RESULTADOS Luego de realizar el diseño de los filtros, el programa para el DSP y el hardware del sistema, se procede a la verificación del comportamiento de los filtros aplicando señales de voz al procesador, a través de un micrófono y, por otra parte, ingresando los datos de coeficientes y frecuencias a MatLab. En el primer caso se obtuvo una clara modificación de la señal audible tanto en los filtros pasa bajos como en los pasa altos, desarrollándose todo el proceso en tiempo real. Para comprobar el desempeño del filtro subwoofer fue necesario amplificar en gran medida la salida del mismo ya que al tener una frecuencia de corte de 60 Hz y un orden de 40, las frecuencias medias y altas de la señal de voz se atenuaban casi en su totalidad. En el segundo caso los resultados de las respuestas de los filtros fueron graficados en MatLab obteniendo

Page 9: 1 diseño e implementación de filtros digitales en un procesador dsp ...

9

las curvas de magnitud y fase que se indican en las Fig. 8 y 9, para los filtros pasa bajos, y en las Fig. 10 y 11, para los filtros pasa altos. La respuesta del filtro subwoofer se aprecia en la Fig. 12.

Figura 8: Respuesta del filtro pasa bajos: a) 500 Hz y b) 1.000 Hz.

Figura 9: Respuesta del filtro pasa bajos: a) 2.000 Hz y b) 4.000 Hz. En las Fig. 8 y 9 pueden apreciarse claramente que las respuestas de fase tienen un comportamiento lineal, por lo que la señal no tiende a distorsionarse, por otra parte, las curvas de magnitud exhiben una atenuación de las frecuencias mayores a las frecuencias de corte correspondientes, comportamiento que caracteriza a un filtro pasa bajos.

Figura 10: Respuesta del filtro pasa altos: a) 500 Hz y b) 1.000 Hz.

Page 10: 1 diseño e implementación de filtros digitales en un procesador dsp ...

10

Figura 11: Respuesta del filtro pasa altos: a) 2.000 Hz y b) 4.000 Hz. Las curvas que se indican en las Fig. 10 y 11 señalan las características de los filtros pasa altos dada la atenuación que presentan para las frecuencias bajas. Las respuestas de fase muestran un comportamiento lineal, característica que corresponde con las de los filtros FIR.

Figura 12: Respuesta del filtro pasa bajos 60 Hz orden 40. Finalmente, en la Fig. 12, se observa un decaimiento más abrupto de la respuesta de magnitud para frecuencias medias y altas, esto debido al mayor orden del filtro (40).

6. CONCLUSIONES Los filtros digitales se caracterizan, de acuerdo a su respuesta al impulso unitario, por su función de transferencia o por su ecuación en diferencias. Los filtros FIR calculan los valores de la señal de salida en base a valores de entrada previos, y se caracterizan por ser filtros de corte suave, esto requiere una gran cantidad de factores en su cálculo de salida. Sin embargo, con respecto a la fase tienen un comportamiento lineal, lo que no distorsiona a la señal, y tienen un retraso de grupo constante haciéndolos muy requeridos en aplicaciones en que la distorsión sea mínima. Estos filtros se pueden implementar como subrutinas individuales y luego integrarlos entre sí, en forma de cascada o en paralelo, para crear la función de transferencia deseada. Las herramientas de software como MatLab cumplen un rol fundamental para determinar los coeficientes en un filtro de alto orden, los cuales se ingresan posteriormente al programa implementado en el DSP.

Page 11: 1 diseño e implementación de filtros digitales en un procesador dsp ...

11

El procesamiento de señales digitales se puede realizar en tiempo real o en tiempo diferido. El DSP TMS320C50, empleado en este trabajo, permite implementar procesamientos en tiempo real, como por ejemplo filtros digitales, ya que posee memoria de programa y de datos en forma separada además de un multiplicador en hardware, que logra realizar las operaciones de suma y multiplicación en un solo ciclo de máquina, todo esto permite aumentar la velocidad de procesamiento de la información. Tales características hacen extensivo este desarrollo para aplicaciones tales como: de generación de señales, análisis espectral, tratamiento de imágenes y control. RECONOCIMIENTOS Los autores de este artículo agradecen el apoyo brindado por:

- El Departamento de Investigaciones Científicas y Tecnológicas de la Universidad de Santiago de

Chile, por medio del Proyecto DICYT 060713UO. - El Grupo de Automática, con su constante inspiración e impulso a la investigación científica.

http://www.die.usach.cl/ REFERENCIAS 1. Dorf, Richard C., y Robert H. Bishop. Sistemas de control moderno. Pearson Educación, 2005. 2. Stremler, Ferrel G. Introducción a los sistemas de comunicación. Addison-Wesley Longman, 1998. 3. Ogata, Katsuhiko. Ingeniería de Control Moderna. Pearson Educación, 2003. 4. Marven, Craig, y Gillian Ewers. A Simple Approach to Digital Signal Processing. 1.a ed. Wiley-

Interscience, 1996. 5. Oppenheim, Alan V., y Ronald W. Schafer. Digital Signal Processing. Prentice-Hall, 1975. 6. Oppenheim, Alan V., Alan S. Willsky, y S. Hamid Nawab. Señales Y Sistemas. Pearson Educación,

1998. 7. Kuo, Benjamín C. Sistemas de Control Automatico. Pearson Educación, 1996. 8. Ogata, Katsuhiko. Sistemas de Control En Tiempo Discreto - 2 Edición. Prentice Hall, 2000. 9. Fonollosa, José Adrián; Vallverdú Bayés, Francesc; Mariño, José B. Rodríguez. Tratamiento digital

de la señal : una introducción experimental. Ediciones UPC, 1999. 10. Instruments, Texas. Texas Instruments TMS320C5x DSP Starter Kit User’s Guide SPRU101A. Texas

Instruments, 1996. 11. «TMS320C5X DSP Starter Kit, User’s Guide». Texas Instruments, noviembre 1997. 12. Digital Signal Processing Applications With the Tms320 Family: Theory Algorithms, and

Implementations Volume 2. No Edition Stated. Texas Instruments, 1990. 13. Tretter, Steven A. Communication System Design Using DSP Algorithms: With Laboratory

Experiments for the TMS320C30. 1.a ed. Springer, 1995. 14. Proakis, John, y Dimitris G. Manolakis. Tratamiento digital de señales. Pearson Educación, 2007. 15. DSP Blockset For Use with Simulink User’s Guide. The Math Works, Inc., 2000. 16. Isen, Forester W. DSP for MATLAB and LabVIEW: Fundamentals of Discrete Signal Processing.

Morgan & Claypool Publishers, 2009. 17. Krauss, Thomas. Signal Processing Toolbox for Use with MATLAB, User’s Guide. Math Works,

1994. 18. Pratap, Rudra. Getting Started with MATLAB: A Quick Introduction for Scientists and Engineers.

Oxford University Press, USA, 2009. SOBRE LOS AUTORES John Kern Molina, Magister en Ciencias de la Ingeniería, mención: Ingeniería Eléctrica. Estudiante de Doctorado en Ciencias de la Ingeniería, mención: Automática. Universidad de Santiago de Chile (USACH). Claudio Urrea Oñate, Ph.D. en Ciencias de la Ingeniería, mención: Automática y Producción, INPG, Francia. Profesor/Investigador Jornada Completa del Departamento de Ingeniería Eléctrica de la USACH.

Page 12: 1 diseño e implementación de filtros digitales en un procesador dsp ...

12

Director del Programa de Modelación Industrial y Simulación Computacional de la Facultad de Ingeniería, USACH. Christian Piel Gamonal, Ingeniero de Ejecución en Electrónica. Universidad Tecnológica Metropolitana (UTEM). Especialista en Programación e Informática.