0% encontró este documento útil (0 votos)
14 vistas7 páginas

Ejemplo Informe PDS

El documento describe la implementación de un filtro digital pasa bajos en VHDL utilizando la tarjeta de desarrollo Altera DE2-115. Se evalúan diferentes tipos de filtros, seleccionando un filtro FIR de orden 15 debido a su estabilidad y menor error de cuantización en comparación con un filtro IIR. Se detallan los pasos para la obtención de coeficientes y la implementación del filtro, así como la necesidad de un convertidor digital-analógico para la salida.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas7 páginas

Ejemplo Informe PDS

El documento describe la implementación de un filtro digital pasa bajos en VHDL utilizando la tarjeta de desarrollo Altera DE2-115. Se evalúan diferentes tipos de filtros, seleccionando un filtro FIR de orden 15 debido a su estabilidad y menor error de cuantización en comparación con un filtro IIR. Se detallan los pasos para la obtención de coeficientes y la implementación del filtro, así como la necesidad de un convertidor digital-analógico para la salida.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1

IMPLEMETACION DE FILTRO FIR EN


TARJETA DE DESARROLLO FPGA DE2-115
Older Ochoa Cruz Cód.: AT887843, William Vega Chicla Cód.: 11190024
Universidad Nacional Mayor de San Marcos

[Link]@[Link]
11190024@[Link]

Resumen: En el presente trabajo se mostraran los pasos a seguir Los filtros FIR son siempre estables, mientras que un filtro
para implementar un filtro digital pasa bajos en VHDL empleando la IIRR aun cuando sus polos estén situados dentro del círculo de
tarjeta de desarrollo Altera DE2-115. Se evaluará los diferentes tipos radio unidad, pueden presentar inestabilidades si se
de filtros empleando un software, MATLAB, y se seleccionará el que implementan en sistemas con aritmética de coma fija y también
mejor se adecue a nuestros requerimientos para su posterior presentan mayor error de cuantización en función del número de
implementación y comparación de resultados. bits empleado para almacenar los coeficientes y las variables
intermedias.
Abstract: In the present work, show up steps to follow stops to
implement a digital filter passes basses in VHDL using the card of Un FIR pueden diseñarse para que presente fase lineal, no
development You Alter DE2-115. The different kinds of filters using a distorsionando las características de fase y el retardo de grupo,
software, MATLAB will be evaluated, and the fact that better our
requests for his later implementation and comparison of results be made
mientras que un IIR es más apropiados cuando deseamos
suitable will be selected. obtener regiones de transición estrechas, por ejemplo, un filtro
pasa banda de alta frecuencia.
Palabras claves: Filtro pasa bajas, VHDL, DE2-115, MATLAB.
Por último, un filtro FIR, a diferencia de un IIR, requieren
Key words: Lowpass filter, VHDL, DE2-115, MATLAB. un mayor orden para valores de la atenuación y zonas de
transición similares lo que supone un mayor retardo en la
I. INTRODUCCIÓN obtención de la respuesta y mayor consumo de memoria.
Para la implementación de un filtro digital se tiene que elegir
E n la actualidad existen diferentes herramientas para el
diseño de circuitos digitales sobre dispositivos
reconfigurables FPGAs y CPLDs. Así también, existen gran
el hardware sobre el cual funcionará, en este caso un FPGA.

Se usara la tarjeta de desarrollo Altera DE2 board, que tiene


variedad de tarjetas de desarrollo, para aplicaciones una FPGA Altera Cyclone IV la cual tiene 114,480 Elementos
pedagógicas, específicamente diseñadas para facilitar la Lógicos. Es adecuada para una amplia gama de ejercicios de
implementación de sistemas completos, en los que se dispone lógica digital y organización de las computadoras, desde tareas
de un conjunto de dispositivos de entrada y salida, tales como simples que ilustran los conceptos fundamentales hasta diseños
interruptores, LEDs, LCD, siete segmentos, puertos VGA, avanzados.
puertos COM, adaptadores de red, entre otros. TABLA 1.
Referencias de la FPGA para las tarjetas DE.
Uno de los circuitos digitales que se puede implementar
sobre un FPGA y que se emplea en la actualidad son los filtros
digitales. Estos sirven para eliminar partes no deseadas de una
señal tales como ruido o permitir el paso a un cierto rango de
frecuencia.
Los filtros digitales son muy empleados debido a que estos
son programables, se le puede variar el rango de frecuencia sin
afectar al hardware, no están sujetos a alteraciones como la
temperatura y además de ser muy precisos.

II. MARCO TEÓRICO


Existen múltiples tarjetas de desarrollo diseñadas por Altera
con diversas características las cuales se diferencian entre sí por
Un filtro digital es el que opera sobre señales discretas y
los periféricos conectados en la tarjeta y el número de elementos
cuantizadas, que dependiendo de las variaciones de las señales,
lógicos que dispone la FPGA
y en otros casos también de la salida, en el tiempo y amplitud se
realiza un procesamiento matemático sobre dicha señal
III. DISEÑO Y SELECCIÓN DEL FILTRO.
obteniendo una salida del resultado de este procesamiento.
Para agilizar los cálculos se emplearon las herramientas de
Hay varios tipos de filtros pero esta vez solo va a elegir dos, MATLAB, fdatool para el diseño y Simulink para la simulación,
filtros FIR e IIR, los cuales tienen diferentes características.
2

para seleccionar el filtro de mayor facilidad de implementar en se eligió el tipo Chebychev tipo II por la mejor respuesta que
la FPGA proporciona.
A. Filtro FIR.

Se realizó el diseño de un filtro FIR pasa bajos de 400 Hz de


orden 15 que sea de tipo Hanning, ya que este proporciona una
mejor respuesta en comparación a otros modelos, en la figura se
puede observar la atenuación que tiene para diversas
frecuencias.

Fig. 4. Respuesta del filtro IIR.

Se pasó a simular a 100 y 400 Hz para verificar la respuesta


del filtro.

Fig. 1. Respuesta del filtro FIR.

Luego se pasó a simular el filtro con frecuencias de 100 y


400 Hz, para ver si la respuesta es la requerida.

Fig. 5. Respuesta a 100 Hz.

Fig. 2. Respuesta a 100 Hz.

Fig. 6. Respuesta a 400 Hz

C. Selección del filtro.

Se quiere un filtro pasa bajos de 400 Hz con frecuencia de


muestreo de 4 KHz, en este caso sería conveniente emplear un
filtro IIR ya que con un orden menor se obtiene una excelente
Fig. 3. Respuesta a 400 Hz.
respuesta como se puede observar en la figura 6 que para
frecuencia de 400 Hz esta es totalmente eliminada, también tiene
B. Filtro IIR. menor consumo de memoria, se puede obtener una mejor o igual
en atenuación en la banda de rechazo que un filtro FIR, además
Se diseñó un filtro IIR de orden 8 considerando que nos de que se puede implementar de forma paralela lo cual haría que
muestre una respuesta aproximada a la del filtro FIR. Tiene una los cálculos sean más rápidos.
frecuencia de muestreo de 4 KHz y es un pasa bajos de 400 Hz,
3

Sin embargo se decidió implementar un filtro FIR porque, El diagrama de fase indica el comportamiento de la salida de
además de la falta de tiempo, puesto que al querer realizar la la señal filtrada con respeto a la seña original de entrada, como
implementación del filtro IIR se presentaron algunos se puede observar este indicando que tiene un desfasaje lineal a
inconvenientes al querer almacenar los valores de retardo medida que la frecuencia aumenta la fase también sufre
correspondiente a la salida. También, como se va a trabajar con desplazamiento proporcional. Al igual que la magnitud en la
frecuencia bajas un filtro FIR responde muy bien sin la figura 7 se puede notar que para una frecuencia de 400Hz está
necesidad de que sea de un orden muy elevado, además, de ser atenuada a -5dB.
un filtro siempre estable, menor error de cuantización y ser más
fácil de implementar.

IV. IMPLEMENTACION DEL FILTRO.


A. Obtención de coeficientes.
Como ya se mencionó se empleó la herramienta fdatool de
MATLAB para el cálculo de los coeficientes del filtro, la cual
permite diseñar filtros digitales para implementación en tarjetas
de desarrollo de la empresa Xilinx ISE, sin tener que realizar
modificaciones, puesto que las tarjetas de su familia permite
realizar trabajos con números reales mientras que altera solo Fig. 9. Diagrama de Polos y Ceros
permite números enteros.
La figura 9 muestra la distribución de los polos en el plano z
indicando que la región de convergencia se encuentra ubicado
en el polo más alejado a la circunferencia para la Transformada
Z del sistema de ecuación de diferencia que representa este
filtro FIR.

Fig. 7. Parámetros del Filtro

En la figura 7 se muestra la venta de diseños de filtros


correspondiente a digitar la palabra fdatool den la ventana de
comandos de MATLAB, como se puede observar se tiene
seleccionado la opción de tipo de respuesta como Lowpass, en Fig. 10. Coeficientes del Filtro.
el método de Diseño se ha seleccionado Window con la opción
de ventana de Hanning. La cual permite realiza una atenuación Para pasar los coeficientes a MATLAB se hace necesario
de la señal de salida del filtro a la mitad pero permite obtener un realizar los siguientes pasos:
FFT mejor.
• Paso 1: realizar clic en la flecha 1.
• Paso 2: Presionar CTRL+E la cual despliega la ventana
de exportación.
• Paso 3: clic en el botón que indica la flecha 3.

Con estos pasos ya estarán los coeficientes en el Workspace


en la variable llamada Num. Pero como se puede observar e l
figura 4 este vector de coeficientes estará dado en números
reales o que hace necesario hacerle un tratamiento especial en
Excel para llevarlos a que sean enteros para poderlos
implementar en la tarjeta de desarrollo de altera al momento de
definir los coeficientes.
Fig. 8. Diagrama de Fase filtro pasa baja
4

TABLA 2. escalizados por 1000, obtenidos por los cuales se debe


Tabla de coeficientes Filtro FIR Lowpass 400Hz
multiplicar cada retardo.

Escalar X Coeficientes Coeficientes


Coeficientes
1000 Menores Mayores
-0,0034713 -3 -3 0
-0,0048512 -5 -5 0
-0,0042456 -4 -4 0
0,0088910 9 0 9
0,0442373 44 0 44
0,1002331 100 0 100 Fig. 12. Diagrama filtro FIR.
0,1601003 160 0 160
0,1991064 199 0 199 En la entrada X (K) se tiene una entrada digital representada
0,1991064 199 0 199 en 8 bits en formato binario, se crea un tipo delay_pipeline_type
0,1601003 160 0 160 que es un arreglo o vector de tipo entero. La cual mediante un
0,1002331 100 0 100 process en la línea 94-104, una vez sea activado el clk_enable;
0,0442373 44 0 44 el arreglo delay_pipeline_type (0) toma el valor de X (K)
0,0088910 9 0 9 convirtiéndolo valor entero, y realiza los respectivos retardos
-0,0042456 -4 -4 0 hasta llegar a los 15 retardos puesto que contamos con un filtro
-0,0048512 -5 -5 0 de orden 15.
-0,0034713 -3 -3 0 Seguidamente se realiza la implementación del producto
Suma de Coeficientes -24 1024 entra cada uno de los valores de los retardos con su respectivo
coeficiente. De igual manera se ejecuta la primera suma de h (1)
Los Coeficientes se escalizan para obtener un formato entero con h (2), luego el resultado de esta suma (1) será la entrada de
y así poderlos implementar en el código VHDL, de igual manera a siguiente suma (2) con el resultado del delay_pipeline_type (2)
se realiza la separación de coeficiente negativos y positivos; se con el coeficiente (3) y así sucesivamente hasta terminar en la
obtiene la sumatoria de los coeficientes que servirán para suma (15) que será a entrada al registro de salida el cual perite
determinar el rango de número más grande a representarse en el memorizar el valor instantáneamente el clk_enable se active.
filtro según el número de Bits al que se esté trabajando el Por ultimo en las líneas finales se realiza la conversión del
sistema. número entero a un std_logic_vector con el objetivo de tener un
representación numérica de bits para poderlos exportar al
B. DIAGRAMA DE BLOQUES DEL FILTRO DIGITAL FIR conversor Digital análogo teniendo en cuenta que solo se
A 400HZ. tendrán en cuenta que solo se tomaran los valores más
significativos para este caso del (18 al 11) puesto que los otros
son el resultado de la escalización.

D. BLOQUES FREQUENCY DIVIDER.

Son necesarios implementarlos puesto que como es de


conocimiento el reloj de la tarjeta FPGA es de 50MHz.
Nota. Código en el archivo Dividor_Frecuencia.txt y
[Link]

Hay dos códigos pero en realidad son lo mismo lo único que


varía es la frecuencia de salida, el Dividor_Frecuencia es el que
proporciona la frecuencia de muestreo al bloque Lowpass Filter
Fig. 11. Diagrama de bloques completo filtro FIR. que como sabemos es de 4Khz puesto que fue la frecuencia con
la que se obtuvieron los coeficientes y par el orden del filtro. Es
Para el caso se ha iniciado por el código VHDL para el Filtro necesario que esta frecuencia de este bloque sea a la que fue
FIR correspondiente al bloque “Lowpass filter 400Hz” diseñada pues si esto no ocurre se puede estar alterar la salida
Nota: El código está debidamente comentado en anexo_1 del del filtro llevando a cabo posibles estados de Up-sampling o
presente trabajo en el documento [Link].t Down-sampling.

Los cálculos para dividir la frecuencia son los siguientes:


C. BLOQUE LOWPASS FILTER.
Fre _ de _ la _ FPGA 50KHz
Inicialmente se tiene una señal de entrada variante en ConteoFiltro = = = 6250 (1)
frecuencia en forma DC la cual no debe superar los 5V puesto 2* Fre _ Requerida 2*4KHz
que puede dañar los Gpios de la FPGA, los triángulos de
ganancia en la figura representa cada uno de los coeficientes
5

Para obtener una frecuencia de 4Khz es necesario que el electrónico formado por resistencias alternando dos valores
contador cuente hasta 6250 para conseguir un periodo de 2.5ms posibles, donde un valor debe ser el doble del otro. La red R-2R
con un porcentaje de 50% en alto y 50% en bajo. Como se permite una forma simple y económica de implementar
observa en la figura 5 esta frecuencia también será la entrada al un convertidor digital-analógico(DAC), enlazando grupos de
Start ADC, el cual su frecuencia para hacer la conversión resistencias de precisión alternando los dos valores posibles en
análoga digital debe concordar con la frecuencia de muestreo del una escalera.1
filtro.
El conversor análogo digital también requiere una frecuencia
de trabajo Clock ADC esta se encuentra en un rango en
operación normal de 10 a 1280 KHz según hoja de
especificaciones, por lo que se decidió tomar una frecuencia de
1000Khz que es equivalente a 1MHz.

Fre _ de _ la _ FPGA 50KHz


ConteoADC = = = 25 (2)
2* Fre _ Requerida 2*1MHz

E. BLOQUE CONVERTER AD.

Nota: La Tarjeta de Desarrollo solo recibe voltajes positivos


Fig. 14. Plano de Conexión R/2R
por lo que señal de entrada deberá estar en forma DC.
En la salida se obtendrá la señal filtrada libre de frecuencias
Para la conversión análogo digital se implementó un circuito
mayores a 400Hz.
integrado ADC0808. Este integrado tiene un multiplexor
integrado que permite seleccionar una de 8 entradas análogas
con la que cuenta este dispositivo; entregando una salida digital G. CONEXIÓN Y MAPEO DE LA TARJETA DE
representada en 8 bits. DESARROLLO FPGA DE2-115.

En la figura 7 se muestra la forma de conexión del Según el manual de operación de la FPGA se seleccionaron
ADC0808, como se puede observar tiene tres resistores se mapearon dos swiches de la siguiente manera:
conectados a tierra lo que indica que el multiplexor interno del
ADC está permitiendo pasar la señal análoga que entra por el
puerto IN0. De igual manera indica donde conectar las TABLA 3.
frecuencias previamente diseñadas en el la FPGA junto con una Mapeo de señales Control
forma mejor ordenada de las los bits de salida del ADC tomando VARIABLE NOMBRE CÓDIGO
desde la cifra más significativa hasta la menos significativa. Reset In SW[1] PIN_AC28
Clk_enable In SW[0] PIN_AB28
Clk CLOCK_50 PIN_Y2
Divisor_Clock_ADC GPIO[9] PIN_AE15
Divisor_Start_ADC GPIO[11] PIN_AF16

TABLA 4.
Tabla de mapeo señal entrada y salida en bits
ENTRADAS DIGITALES
Filter_in[7] GPIO[19] PIN_AF21
Filter_in[6] GPIO[17] PIN_AC22
Filter_in[5] GPIO[15] PIN_AE21
Filter_in[4] GPIO[13] PIN_AF15
Filter_in[3] GPIO[7] PIN_AE16
Filter_in[2] GPIO[5] PIN_Y16
Filter_in[1] GPIO[3] PIN_Y17
Filter_in[0] GPIO[1] PIN_AC15
SALIDAS DIGITALES
Filter_out[7] GPIO[35] PIN_AG26
Fig. 13. Conexión ADC0808. Filter_out[6] GPIO[33] PIN_AH26
Filter_out[5] GPIO[31] PIN_AG23
Filter_out[4] GPIO[29] PIN_AF26
F. BLOQUE CONVERTER DA RED R2R.
Filter_out[3] GPIO[27] PIN_AE24
Filter_out[2] GPIO[25] PIN_AE25
Para este se implementó el circuito conocido como R2R Filter_out[1] GPIO[23] PIN_AD25
también llamada escalera de resistencias es un circuito Filter_out[0] GPIO[21] PIN_AD22
6

Fig. 18. Respuesta a 400 Hz.

En la figura 19 se presenta el montaje completo para la


verificación y funcionamiento del filtro, se realizó con la ayuda
de un generador de señales el cual permite entregar ondas
Fig. 15. Esquema de conexión hacia el protoboard.
senoidales en rangos de diferentes frecuencias, la señal de
entrada fue una onda seno de amplitud 2.84 Vpp en DC.
Las fechas rojas en el diagrama indican la que la conexión se
hace mediante cables para la comunicación de con el circuito
análogo con la parte digital implementada en la tarjeta de
desarrollo.

V. RESULTADOS.

Primero se simulo el filtro en Simulink para compararlo con


los resultados obtenidos en laboratorio,

Fig. 19. Montaje completo para proceso de Filtrado.

Fig. 16. Esquema del filtro en Simulink.

Fig. 20. Entrada vs salida sin filtro. Osciloscopio TECTRONIX TDS3012

Se puede apreciar en la figura 20 como la señal de salida del


filtro (color azul) es de menor amplitud que la de la entrada, esto
se debe a un factor de escala diferente, puesto que la FPGA
recibe valores entre 0 a 5V pero como salida solo entrega valores
entrega valores de 3.3V máximo teniendo una atenuación de la
onda de salida ocasionada directamente por el proceso de
Fig. 17. Respuesta a 100 Hz. conversión de la señal de entrada. Pero como podemos observar
7

la frecuencia se mantiene igual con respecto a la señal de entrada Como se puede observar a medida que la frecuencia se va
(color amarilla). aumentando el filtro tiende a llevar el valor de la amplitud a 0
cumpliendo con el objetivo para el que fue diseñado que solo
En la figura 21 se observa el filtro operando a su frecuencia permita pasar las frecuencias bajas y las altas las eliminarlas.
de 100 Hz y tiene una salida en amplitud a 800mV y un pequeño
desfase ocasionado directamente por los retardos del filtro.
VI. CONCLUSION.

1. Se realizó la implementó un filtro digital en el módulo


FPGA, donde se compararon dos tipos de filtro, FIR e
IRR, donde finalmente debido a inconvenientes de
retardos y configuración de programación se eligió el
filtro FIR que permite realizar las atenuaciones para
frecuencia mayores de 400Hz. Donde se pudo verificar
mediante herramientas de simulación que entre mayor sea
el orden para un filtro FIR mayor será su grado de
atenuación, pero así como mejora su atenuación también
aumenta de memoria.
Fig. 21. Respuesta del filtro frecuencia 100 Hz. Osciloscopio TECTRONIX
TDS3012 2. Durante este estudio se realizó mayor enfoque en revisar
la magnitud de la salida del filtro y sus respectivos
comportamientos, obteniendo como salida de la R2R una
señal filtrada con atenuación generada por el solo proceso
de conversión y AD y el respectivo paso por la tarjeta de
desarrollo esto debido al factor de escala entre la entrada
de la señal digital entregada por el conversor análogo
digital de 0 a 5Vdc, mientras que la tarjeta de desarrollo
tiene salidas de 0 a 3.3 Vdc, lo cual se puede acondicionar
mediante tratamiento de señales con amplificadores
operacionales.

3. Se plantea también una hipótesis donde se piensa que este


Fig. 22. Respuesta del filtro frecuencia 400 Hz. Osciloscopio TECTRONIX filtro es factible a modificación de frecuencia de pasa
TDS3012
bajas, donde la única modificación que se debería
Se observa una atenuación más pronunciada a la mitad del implementar es la modificación del divisor de frecuencia
valor inicial de la salida el cual indica en la figura una que en que va al bloque del filtro y el Start del ADC; quedando
magnitud tiene una atenuación de -5 dB. Para frecuencias de los demás parámetros de igual forma.
400Hz.

REFERENCIAS.

[1] Red R-2R. (2016, 6 de junio). Wikipedia, La enciclopedia libre. Fecha de


consulta: 00:40, noviembre 17, 2017 desde:
[Link]
2R&oldid=91525211.
[2] JOHN G. PROAKIS, Tratamiento Digital de Señales, 4ta ed., Cap. 9 y Cap.
10.

Fig. 23. Respuesta de señales de 800Hz y 1KHz Osciloscopio TECTRONIX


TDS3012

También podría gustarte