Download - Cristian Marqueasdfsadfasdfsadfsadfafafafaz- David Nuñez-santiago Niño-Informe Filtro Digital
CONVERSORES ADC/DAC Y FILTRO DIGITAL Cristian David Márquez Pidiache, David Felipe Núñez Herrera, Johann Santiago Niño Medina
[email protected], [email protected], [email protected]
Universidad Pedagógica y Tecnológica de Colombia, Faculta de Ingeniería, Escuela Ingeniería electrónica.
Resumen: El propósito de esta práctica es lograr dar
comparación a tipos de filtros, en los cuales se estudiaran los tipos
de conversiones tanto ADC (analog to digital converter) Y DAC
(digital to analogic converter) analizando su estructura interna, los
cuales se pondrán en práctica usándolos en un filtro de tipo FIR.
El filtro opera entre señales digitales. El cual toma una secuencia
de números (señal de entrada), y la modifica produciendo otra
secuencia de números (señal de salida) claro está que dejando atrás
ciertas características. Este filtro será realizado con ayuda de
elementos como Digital Filter Design de Matlab y la descripción de
hardware VHDL. Más que hacer uso de los tipos de adc y dac, un
propósito clave de la práctica es comparar los filtros, que en este
caso específicamente un filtro pasa bajas de orden 10 y con unas
frecuencias de paso, corte y muestreo; que se establecerán más
adelante. Se realizara una señal de entrada que nos permitirá
evaluar el desempeño del filtro, de tal manera poder concluir que
ocurre con el filtro si se modifica el parámetro de frecuencia de
muestreo.
Palabras clave: ADC, DAC, filtro digital, FIR, frecuencia de
muestreo, pasabajas, señal.
I. CONVERSIÓN ADC/DAC DE UNA SEÑAL
SENOIDAL
Implementar el siguiente circuito del siguiente diagrama de
bloques.
Figura 1. Conversión adc/dac.
Para la primera parte del desarrollo del laboratorio, se busca
verificar el correcto funcionamiento de los conversores ADC y
DAC, implementados para la práctica. El montaje realizado de
estos conversores es el mostrado en la figura 1. Para ello, a la
entrada del ADC se aplica una señal senoidal; además se varía
la frecuencia con los valores de 1KHZ, 5KHZ, 10KHZ cada una
con una amplitud de 1v respectivamente.
A continuación se ilustran las figuras para cada uno de los casos
mencionados anteriormente.
Figura 2. Señal de salida (azul) con respecto a señal de entrada
(amarilla) a 1khz de frecuencia.
Figura 3. Señal de salida (azul) con respecto a señal de entrada
(amarilla) a 5khz de frecuencia.
Figura 4. Señal de salida (azul) con respecto a señal de entrada
(amarilla) a 10khz de frecuencia.
Figura 5. Señal de salida (azul) con respecto a señal de entrada
(amarilla) a 10khz de frecuencia. Para este caso se aumentó la
velocidad de muestreo (Fs).
Figura 6. Señal de salida (azul) con respecto a señal de entrada
(amarilla). Al máximo de frecuencia de muestreo del ADC.
II. ANALISIS DE RESULTADOS DE
CONVERSIÓN ADC/DAC DE UNA SEÑAL
SENOIDAL
A. ¿Qué se concluye de estos resultados?
Como bien se alcanza a apreciar en las figuras 2, 3,4 y
5. Cuando se cambia la frecuencia del ADC la señal se
torna o más perfecta o con algunas deformaciones
dependiendo de la frecuencia aplicada. En la figura 4
y 5 estamos observando el mismo comportamiento
solo que la frecuencia de muestreo en la figura 5 se
aumentó para diferenciar esos escalones que se
obtienen de la señal de salida.
B. ¿Cuál es la frecuencia máxima de la señal sinodal de
entrada para que la señal de salida sea reconstruida
correctamente mediante el DAC?
De la figura 6. Tenemos la señal de salida con respecto
a la entrada, con la máxima frecuencia de la señal de entrada.
Esta frecuencia de operación del DAC se estableció a 300KHZ,
que es donde la señal de entrada es reconstruida por el DAC.
Sin embargo se alcanzan a percibir unas pequeñas fluctuaciones
y deformaciones de la señal de salida (azul). Esto último debido
a efectos de ruido producidos por la circuitería del montaje del
ADC/DAC, así como de interferencias provenientes de la
fuente de alimentación.
III. FILTRO DIGITAL TIPO FIR
A. DESARROLLO FILTRO DIGITAL
Diseñar e implementar en la herramienta digital Filter Design
de Matlab con los siguientes parámetros de diseño.
Tipo de Filtro: Pasabajas
Orden del Filtro. 10
Frecuencia de Paso(Fp): 60HZ
Frecuencia de Corte(Fc): 1KHZ
Frecuencia de Muestreo(Fs):10KHZ
Figura 7. Parámetros de filtro a implementar en la herramienta
Matlab.
Luego de haber generado el filtro, la misma herramienta de
Matlab nos facilita el código en VHDL para ser implementado
en la FPGA DE1 de altera. El tipo de filtro descrito es un filtro
tipo FIR.
Figura 8. Esquema de filtro pasabajas tipo FIR.
La parte rotulada con “1” de la figura 8, corresponde al siguiente
codigo generado:
Figura 9. Registro de desplazamiento del filtro tipo FIR en
VHDL.
La parte rotulada con “2” de la figura 8, corresponde al siguiente
codigo generado:
Figura 10: Bloque de multiplicacion de coeficientes por señal
de entrada.
La parte rotulada con “3” de la figura 8, corresponde al siguiente
codigo generado:
Figura 11: Bloque sumador de los productos de la figura 10.
Figura 12: Diagrama de bloques implementacion de filtro
B. ANALISIS DE RESULTADOS FILTRO DIGITAL
Luego de haber implementado el filtro en la FPGA y haber
conectado adecuadamente la salida del ADC a las entradas de
la FPGA, asi como las salidas de la FPGA a las entradas del
DAC se procedio a verificar en el osciloscopio las señales de
salida con respecto a las de entrada.
A continuacion se muestran cada una de las graficas obtenidas,
graficas a las que se les hará su correspondiente analisis.
Figura 13: Señal de entrada al ADC, que pasa por el
filtro implementado en FPGA, para luego pasar por el
DAC, señal de salida (azul). Frecuencia de señal 60Hz.
Figura 14: Señal de entrada al ADC, que pasa por el
filtro implementado en FPGA, para luego pasar por el
DAC, señal de salida (azul). Frecuencia de señal 500Hz.
Figura 15: Señal de entrada al ADC, que pasa por el
filtro implementado en FPGA, para luego pasar por el
DAC, señal de salida (azul). Frecuencia de señal 1kHz.
Figura 16: Señal de entrada al ADC, que pasa por el
filtro implementado en FPGA, para luego pasar por el
DAC, señal de salida (azul). Frecuencia de señal 10kHz.
Para comprobar el correcto funcionamiento del filtro, este
se hace funcionar bajo diferentes frecuencias, tal como se
describe en el diagrama de bloques de la figura 12, se
comienza analizando la figura 13, en esta figura se
observa la señal de entrada (amarilla) – para el mejor
entendimiento del informe se va siempre a trabajar como
señal de entrada la gráfica de color amarillo- y la señal de
salida, todo esto operando a una frecuencia de 60Hz que
son visibles en la imagen tomada del osciloscopio. Lo que
vemos es que la señal alcanza a pasar filtrada casi por
completo debido a que se encuentra dentro de la
frecuencia de paso que fue establecida a 60Hz; luego si
nos pasamos a la siguiente figura, la figura 14, notamos
que si aumentamos esta frecuencia a 500Hz la salida
empezara a atenuarse poco a poco hasta superar la
frecuencia de corte del filtro, que inicialmente fue
propuesta como 1kHz.
Siguiendo con el análisis de las gráficas, en la figura 15
se ve como la señal ya un poco imperfecta empieza a
atenuarse cada vez más, ya que está en el límite de la
frecuencia de corte. Ahora, si nos fijamos en la figura 16,
la señal de salida está casi que completamente atenuada,
ya que esta supero la frecuencia de corte del filtro (1 kHz) debido a que la frecuencia para este caso está de 10kHz.
C. Resultados de herramienta Simulink
Como parte del procedimiento estándar para cualquier práctica
de laboratorio, en este caso, de antemano, se hicieron las
correspondientes simulaciones del filtro que se deseaba
implementar. Para ello, se usó la herramienta Simulink de
Matlab, la cual nos brinda la posibilidad de ver los resultados
que se esperan obtener cuando se haya implantado el filtro en la
FPGA.
A continuación se muestran los resultados que arroja la
herramienta de software Simulink, cada una de estas
simulaciones con los mismos parámetros que las hechas en la
práctica, resaltando así, que efectivamente el filtro ha cumplido
su finalidad con los parámetros inicialmente propuestos.
Figura 17. Señal a 60Hz
Figura 18. Señal a 500Hz
Figura 19. Señal a 1kHz
Figura 20. Señal a 10kHz
Tal como se obtuvo en las simulaciones con la herramienta
Simulink las pruebas en la práctica concuerda con lo que se
deseaba obtener, podemos entonces comparar la figura 13, con
lo obtenido en la figura 17, la figura 14, con la 18, la 15 con la
19 y por último la 16 con la 20. Como bien se aprecia las
gráficas concuerdan mucho entre sí, otro motivo a celebrar el
buen funcionamiento del filtro implementado.
D. ANALISIS DE RECURSOS UTILIZADOS EN
LA IMPLEMENTACIÓN EN FPGA
Para entender un poco el resultado obtenido de los recursos es
necesario primero analizar un poco más a detalle la arquitectura
del filtro tipo FIR pasa bajos.
Figura 21: Bloques de filtro tipo FIR.
Hablar de la arquitectura de un filtro FIR consiste en representar
de forma modular cada una de las partes que componen la
realización del filtro y asignarle a cada módulo los recursos
hardware que se necesiten.
En la figura 21 tenemos entonces cada una de esas partes que
componen el filtro, partes que serán descritas más a detalle:
Módulo de retardo: es el encargado de guardar hasta M-
1valores anteriores de la señal de entrada y el valor actual de la
señal. Cada vez que llega un nuevo dato, se realiza una
actualización de las posiciones.
Módulo multiplicador: es el encargado de multiplicar los
valores digitales de los coeficientes h(n) con los valores
digitales de la señal de entrada y sus respectivos retardos.
Módulo sumador: se encarga de realizar la suma de las
multiplicaciones entre h (k) y las señales x(n-k).
Asignación de Recursos
Módulo de retardo:
Se utiliza un número de flip-flops igual a la longitud del filtro
conectados en cascada, de tal forma que cada vez que se tenga
un pulso de reloj (relacionado con la llegada de un nuevo dato),
el valor de la posición i pase a la posición i-1 , tal y como se
presenta en la Figura 22.
Figura 22: Flipflops modulo de retardo de filtro
A continuación se ilustran entonces los datos de recursos
utilizados, estos datos obtenidos de la herramienta de software
de TimeQuest time analyzer de Quartus.
Entrada
filter_out[0] clk 4.062ns
filter_out[1] clk 3.923ns
filter_out[2] clk 3.940ns
filter_out[3] clk 4.032ns
filter_out[4] clk 3.915ns
filter_out[5] clk 4.002ns
filter_out[6] clk 3.933ns
filter_out[7] clk 4.059ns Tabla 1: Recursos usados.
IV. CONCLUSIONES
Con el desarrollo de la práctica en primer lugar se comprobó de
manera satisfactoria el desempeño y función que cumplen los
conversores ADC y DAC, tal como se ilustra en los resultados
que se obtuvieron en la primera parte de la práctica. Se observó
cómo al tener una señal análoga de entrada de un ADC y luego
de este llevada a un DAC, la señal de salida es casi idéntica a la
señal de entrada, y con casi idéntica se hace referencia a que en
muchas ocasiones la señal de salida del DAC presenta
malformaciones o algún tipo de ruido, este último producido en
parte por la circuitería, la fuente de alimentación, pero más
importarte aun, por el pulso de reloj que se usaba, un pulso
proveniente de un circuito integrado 555, que como bien se sabe
es un integrado que nos puede llegar a ser útil para muchas
aplicaciones, dada su facilidad de adquisición pero en
yuxtaposición a ello pueda que el resultado final no sea el
óptimo y mucho más cuando estamos trabajando este tipo de
señales en este tipo de implementación de filtros.
Por otra parte, para la implementación del filtro, como era de
esperarse, se intuyó que los resultados arrojados por la
herramienta de simulación de filtros debido a la naturaleza ideal
de los sistemas de simulación los resultados iban a ser perfectos,
pero que como se venía mencionando, en la práctica cambia a
gran escala, pues no se tiene control de variables externas a los
recursos utilizados para la implementación del filtro. Pese a las
dificultades de precisión y de ruido, se logró identificar
plenamente el funcionamiento del filtro que se deseaba estudiar,
en primer lugar estableciendo unos parámetros del filtro, para
luego ser implementado en el lenguaje de descripción de
hardware VHDL y así llevar a cabo el funcionamiento del
sistema. Todo concurrió muy bien, según los resultados
obtenidos y anteriormente expuestos, además gracias a las
herramientas de software disponibles se llegó a conseguir el
análisis de los recursos utilizados en la implementación del
filtro en la FPGA.
V. REFERENCIAS
[1] pardo, Fernando; boluda, José. Vhdl lenguaje para síntesis y modelado de
circuitos. Alfaomega grupo editor. pág. 238.
[2] Smith, j. o. ïntroduction to digital filters with audio applications",
http://ccrmawww.stanford.edu/˜ jos/filters/
[3] J. G., Proakis, Dimitri g. manolakis. Tratamiento digital de señales. Prentice
hall, 1997.
[4] Samuel Stearms, Ruth A. David. Signal procesing algoritms”. Prentice Hall,
1997.
[5] Smith DJ. HDL Chip Designó. A practical guide for designing, synthesizing
and simulating ASICs and FPGAs using VHDL or Verilog. 1998
[6] Ballesteros DM. Reducción de ruido en señales ECG utilizando filtros wavelet. Publicado en: Memorias II
Congreso Internacional de la Región Andina IEEE, 2002.
[7] Silva S, Panato A. Implementacao em FPGA de um multiplicador de ponto
flutante com pipeline profundo.
Universidade Federal do Rio Grande do Sul. Publicado en: Memorias X
Workshop Iberchip, 2004.
[8] Vaidyanathan, P. P.,Multirate Systems and Filter Banks, Signal processing
series, Prentice Hall, New Jersey, U.S.A, 119-120 (1993)
[9] Vesma, J., y Saramaki T., Design and properties of polynomial-based
fractional delay filters, Proc. IEEE Int. Symp. Circuits and Systems, 104-107, Geneva, Switzerland, May 28-31 (2000)
[10] Vesma, J., y Saramaki T., Optimization and efficient implementation of FIR filters with adjustable fractional delay, Proc. IEEE Int. Symp. Circuits and
Systems, 2256-2259, Hong Kong, Japan, June 8-12 (1997).