Lab3p1 PDF
Lab3p1 PDF
Lab3p1 PDF
I NTRODUCCI ÓN
En este laboratorio se trabajará con conceptos básicos de filtros FIR (Finite Impulse Response) e IIR (Infinite
Impulse Response). La sección I hace un analisis sencillo de los filtros para luego focalizarse en la implementación
algoritmica (preambulo para el Lab2p2). La sección II profundiza en la teorı́a de filtros FIR. El objetivo de las
secciones III, IV y V es conocer y familiarizarse con la mayor cantidad de herramientas de diseño de MATLAB.
Im Im
Unit Circle Unit Circle
z1 p1
PSfrag replacements PSfrag replacements r
θ Re θ Re
z2
p2
r
Figure 1. Ubicación de dos ceros conjugados para un filtro FIR simple. Figure 2. Ubicación de dos polos conjugados para un filtro IIR simple.
2) (4pto) Basado en la Fig. 2, diseñe un filtro que tenga dos polos conjugados dentro del cı́rculo unitario, ubicados
en un ángulo θ en el plano Z . Considere que el filtro tiene además una ganancia sobre la entrada de b0 = 1−r .
Escriba la ecuación de diferencia del filtro y grafique la respuesta a impulso del filtro.
Escriba la expresión analı́tica en función de z y luego use z = ejw T s para obtener H(w) y graficar la magnitud
de la respuesta de frecuencia |H(w)| para θ = π3 y tres distintas amplitudes r = 0.99, 0.9, 0.7.
Explique cómo el valor de r afecta la respuesta de frecuencia y el ancho de banda del filtro.
3) (2pto) Implemente el filtro FIR en una función FIR_filter.m donde el filtrado de la señal sea por
convolución. Muestre el segmento de código que lo implementa.
(1pto) Aplique el filtro a la señal en npeech.mat ajustando los ceros para eliminar el tono que identifique
con plot_fft_mag(npeech,fs). Indique la frecuencia del tono y los coeficientes bk de su filtro.
(2pto) Muestre los espectros de la señal antes y despues del filtrado. Compare su señal filtrada con la señal
que entrega usar el comando filter de Matlab. ¿Tienen el mismo largo?. ¿Por qué?.
4) Implemente el filtro IIR de solo polos mediante ecuación de diferencias en una función
IIR_filter(yBuff, aCoeff, x). Recibe un vector de dos elementos con las últimas dos muestras de
salida (de la interación anterior), un vector de dos elementos con los coeficientes a1 y a2 , y la muestra de
entrada. Retorna un vector de dos: elementos con la nueva muestra de salida y la muestra anterior. Dado que
en Matlab las señales existen como vectores, hay que hacer como si llegaran los datos muestra a muestra
como ocurre en la LCDK. Por tanto se sugiere que se genere la señal de salida filtered_pcm con la señal
de entrada pcm (pcm.mat) usando su función IIR_filter() según el siguiente script.
1 % Filtrado iir
2 % Creando estado del filtro
3 yBuff = [0,0];
4 for i=1:dataLength
5 % [yNew(k) yNew(k-1)] = IIR_filter([yOld(k) yOld(k-1)], [a1 a2], x))
6 yBuff = IIR_filter(yBuff, aCoeff, pcm(i));
7 filtered_pcm(i) = yBuff(1);
8 end
1) Considere un truncamiento con una ventana rectangular, de modo que el filtro resultante está dado por:
w
sinc wπc n − N 2−1 , n = 0, 1, ..., N − 1
c
h[n] = π , (4)
0, otro caso
(2pto) Obtenga la magnitud H(w) y la fase ∠H(w) para un filtro de frecuencia de corte wc = 2π
3 , con largos
N = 21, 101, 1001, utilizando la función DTFT.m con una resoluciónn no menor a 512 para cada caso. ¿En
qué afecta el largo de la ventana en la respuesta de frecuencia del fitro y la fase?
2) Compare las propiedades temporales y espectrales de filtros FIR construidos con los siguientes tipos de ven-
tanas: rectangular, hamming, hanning, blackman, y bartlett. Para ello utilice para cada ventana una frecuencia
de muestreo de 1 kHz y una duración de 100 ms. Utilice los comandos f reqz , rectwin, hann, hamming,
blackman, y bartlett.
(2pto) Grafique en un figura usando subplots las cinco ventanas.
(2pto) Grafique la magnitud y fase con respecto a la frecuencia de estas ventanas.
(2pto) Cree una tabla con el ancho del mainlobe y su amplitud relativa al primer sidelobe. Comente las ventajas
y desventajas de cada ventana y discuta posibles ejemplos donde cada filtro podrı́a ser mejor que los demás.
2) (2pto) Obtenga los coeficientes para un filtro de orden 70 y de orden 150 para el filtro de la Fig. 3. utilizando
el comando f ir2. Compare la respuesta de magnitud obtenida con las especificaciones establecidas para cada
caso.
3) (2pto) Exlique qué realiza el comando f irpm, como se usa y qué parámetros debe entregar para diseñar un
filtro FIR. Se le recomienda revisar primero el comando f irpmor .
4
Amplitud
0.5
PSfrag replacements 0
2) (2pto) Utilizando la función ChebyX de MATLAB diseñe un filtro de cuarto orden para cada uno de los
siguientes casos (pasa banda f1 = 2 kHz, f2 = 4 kHz) :
a) 2 dB para la banda de paso (Cheby1).
b) 20 dB de atenuación (Cheby2).
3) (2pto) Diseñe un filtro Butterworth pasabanda con frecuencias entre 800 Hz y 1600 Hz de orden 4. Cuide no
duplicar el oden del filtro al usar butter.
(2pto) Analice y explique qué sucede con los polos y ceros del sistema a medida que aumenta el or-
den del filtro. ¿Qué implicancias tiene esto en relación con la implementación en la tarjeta LCDK?. Use
[z,p,k]=butter() y zplane.
GCR/MZS/CRM