Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Por
Los filtros de respuesta al impulso finita (FIR) son usados comúnmente en aplicaciones DSP en
tiempo real debido al número de propiedades deseables tal como su estabilidad y respuesta
lineal en fase. Un filtro particularmente simple es el filtro FIR, también conocido como filtro de
promedio móvil. Sin embargo, varios tipos de filtros FIR sofisticados pueden ser diseñados e
implementados. Esta sesión de laboratorio permite el estudio de las características del filtro
FIR, las técnicas de diseño, y aspectos prácticos relacionados con su implementación.
El filtro de promedio móvil es ampliamente usando en DSP y es uno de todos los filtros más
simple de entender. La salida del filtro de promedio móvil es la media aritmética, o promedio,
de las muestras pasadas. Por lo tanto, la señal de salida es una versión “suavizada” de la señal
de entrada. El filtro promedio de N puntos puede representarse por la ecuación en diferencias
N 1
1
y[n]
N
x[n k ]
k 0
Observe esta señal de prueba conectando la salida del auricular de su tarjeta de sonido de PC a
un osciloscopio. Observe la forma de onda en el dominio del tiempo y ajuste el nivel de
volumen en su PC de manera que la señal no sea mayor a 500 mV pico a pico. Use el analizador
de espectro para observar la señal en el dominio de la frecuencia. Ahora conecte la salida de la
tarjeta de sonido de la PC al socket Line in en la board FM4. Ajuste el volumen del PC de la
configuración previamente determinada. Ejecute el programa average_intr.c en la board FM4 y
use los auriculares para escuchar la salida de la board. El programa aplica un filtro a uno de los
canales de audio. Debería encontrar que el tono sinusoidal ha sido atenuado significativamente
y que el sonido del habla tiene menos brillo que el canal de audio filtrado. Las dos
observaciones son consistentes con el filtro de promedio móvil que tiene una respuesta paso
bajo. Los siguientes ejercicios introducen un número de métodos diferentes y cuantitativos de
evaluar la respuesta en frecuencia del filtro.
Matlab contiene varias herramientas convenientes para calcular y visualizar las características
de los filtros digitales. La función freqz(), permite calcular y graficar la respuesta en frecuencia
de un filtro de promedio móvil de 5 puntos.
b1 b2 z 2 ... bn 1 z n
H ( z)
a1 a2 z 2 ... an 1 z n
Por tanto, la función freqz calcula al respuesta en frecuencia a partir de los coeficientes del
numerador y denominador, b y a, respectivamente.
1
y[n] x[n] x[n 1] x[n 2] x[n 3] x[n 4]
5
1
H ( z)
5
1 z 1 z 2 z 3 z 4
clear all
close all
a = 1;
b = [1/5 1/5 1/5 1/5 1/5];
%% Grafica curvas de respuesta en frecuencia usando 10000 puntos de muestra
freqz(b,a,1e4,fs);
Figura 2. Código para determinar la respuesta en frecuencia
-50
-100
-150
-200
-250
-300
-350
0 500 1000 1500 2000 2500 3000 3500 4000
Frecuencia (Hz)
100
50
-50
-100
-150
1. Qué sucedería si el promedio móvil fuera calculado sobre un número diferente de muestras
previas?
2. Que podría suceder si los valores de coeficientes del filtro h[n] fueran cambiados?
Escriba un script en Matlab que compare la respuesta en frecuencia (magnitud y fase) de este
filtro con el filtro de promedio móvil de 5 puntos usado en la pregunta previa. Incluya su código
en Matlab y figuras. Comente similaridades y diferencias.
Debería haber observado esos cambios a los coeficientes (no inesperados) que han modificado
la respuesta en frecuencia del filtro. En la siguiene sección, se investigará los métodos para
cualcular los coeficientes que resultan de filtros FIR que encuentran un conjunto de
especificiaciones de diseño.
Revise en las presentaciones el diseño de filtros FIR usando el método de ventaneo, y aplíquelo
para diseñar filtros paso bajo (LPF).
Longitud 11 (orden 10) LPF con frecuencia de corte 2 kHz, ventana rectangular.
Longitud 11 (orden 10) LPF con frecuencia de corte 2 kHz, ventana Hamming.
Longitud 31 (orden 30) LPF con frecuencia de corte 2 kHz, ventana rectangular.
Longitud 31 (orden 30) LPF con frecuencia de corte 2 kHz, ventana Hamming.
Use una frecuencia de muestreo de 48 kHz para sus diseños. Escriba un script en Matlab que
calcule los coeficientes para cada filtro y genere las gráficas de respuesta en frecuencia
(magnitud y fase) para comparar los filtros.
El programa fir_intr.c mostrado en la figura 4 puede ser usado para implementar un filtro FIR.
Require los coeficientes del filtro y la longitud del filtro, los cuales se especifican en el
encabezado del header del archivo c. Como se observa en el código, la línea 4 utiliza el
encabezado ma_5pt.h para especificar un filtro de promedio móvil de 5 puntos. Este archivo de
header puede ser reemplazado con cualquier conjunto de coeficientes FIR, y la función Matlab
escribe fir_coeffs que puede ser usada para generar un archivo de coeficientes compatibles.
Pregunta 6: Implemente en la board FM4 uno de los filtros de longitud 11 que diseñó en la
pregunta 3. Mida su respuesta en frecuencia usando un analizador de red. Cree gráficas que
comparen la respuesta en frecuencia teórica (generada usando Matlab) y la respuesta en
frecuencia medida usando la misma gráfica. La opción exportar (export) en Formas de onda
(waveforms) permitirá acceder fácilmente a los datos en bruto de la medición en bruto del
analizador de red. Ayuda: copie y pegue los datos en bruto usando la opción “copy to
clipboard”.
/ fir_intr .c
for (k = N -1; k >0; k --) // shift sample stack down for next call to ISR
{
x[k] = x[k -1];
}
Observe que fir_intr.c alterna a un pin GPIO durante el ISR. Esto fue incluido en el programa
para dar cuenta del tiempo que toma calcular el valor de cada muestra. Para operación en
tiempo real, este tiempo no debe exceder 1/fs.
Pregunta 8: Mientras el tiempo de ejecución del filtro de longitud 11, conecte un oscilocopio al
pin GPIO y observe la forma de onda. Cuanto le toma la ejecución del ISR?
Nota: para boards FM4, especifique y use el pin P10. Para boards azules, especifique el pin P15.
Las ubicaciones de los pines son marcada en el lado inferior de las tarjetas FM4.
Referencias