Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo. El objetivo de esta segunda prctica es estudiar las propiedades de los Filtros
Digitales Selectivos en Frecuencia, las caractersticas de los filtros de respuesta impulsional Finita
(FIR), y los filtros de respuesta impulsional infinita (IIR), as como los mtodos de diseo ms
habituales.
1. En primer lugar vamos a determinar caractersticas generales de los filtros digitales; res-
puesta en frecuencia, respuesta impulsional, diagrama de ceros y polos, etc.
Dados los siguientes sistemas digitales:
Determina:
2. Veamos algunas caractersticas de los filtros FIR. Disear un filtro FIR pasa-baja por el
mtodo de ventanas (fir1) con estas caractersticas: Fm=20 kHz, Fc=5 kHz, orden N=20;
3. El siguiente cdigo permite disear filtros FIR de rizado constante. El filtro base a dise-
ar tiene las siguientes caractersticas: Fm=1000 Hz, Fp=200 Hz, Fs=300 Hz, Rp=3 dB,
Rs=60 dB;
Completa XXX con los valores adecuados para calcular 1 y 2 a partir de los rizados
en ambas bandas expresados en dB.
Disea el filtro y dibuja su respuesta en frecuencia. Cmo es el rizado en ambas
bandas?
Modifica el cdigo para estimar como se modifica el orden del filtro al variar la anchura
de la banda de transicin, para ello considera Fs=210:10:300 Hz, el resto de parmetros
no se modifica.
Repite el apartado anterior pero modificando Rs=20:10:100 dB, el resto de parmetros
no se modifica.
clear
close all
Fm = 1000; % Frecuencia de muestreo
RP = 3; % Rizado en la banda pasante en DB
RS = 60; % Rizado en la banda atenuada en DB sin signo
F1 = 200; % Inicio de la banda de transicin
W = [1 0]; % Valores ideales del filtro
r1 = XXX; % Rizado en la banda pasante en escala lineal
r2 = XXX; % Rizado en la banda atenuada en escala lineal
rizado = [r1 r2];
F2 = 300; % Fin de la banda de transicin
[n,fo,mo,w] = firpmord( [F1 F2], W, rizado, Fm );
b = firpm(n,fo,mo,w);
%%
% Representacin en dB
% FREQZ(B,A,N,Fs),
freqz(b,1,Fm,Fm) % Respresentacin con N=Fm (resolucin de 1 Hz)
% Representacin en escala lineal
[H,w] = freqz(b,1,Fm,Fm);
plot(w,abs(H))
xlabel(Frecuencia (Hz))
ylabel(|H(\omega)|)
grid on
Fc=200 Hz, Rp=2 dB (valor mximo), Rs=40 dB (valor mnimo) y banda de transicin
BT=100 Hz.
Si el mtodo de diseo est basado en la transformacin bilineal los pasos son los siguientes:
a) Estimar el orden y frecuencia natural (n ) del filtro DIGITAL con la funcin ade-
cuada (buttord, cheb1ord, cheb2ord y ellipord). Hay que tener en cuenta que
estamos estimando el orden del filtro digital, por lo que las frecuencias se especifcarn
en unidades normalizadas. Para ello las frecuencias analgicas se dividen por Fm /2,
as max = 1, que se corresponde con la frecuencia de Nyquist. Por ejemplo para un
filtro de Butterworth usaramos [N,Wn] = buttord(Wp,Ws,Rp,Rs) que nos devuelve
los parmetros buscados.
Nota: la frecuencia natural no es la frecuencia de corte (cada de 3dB). Es el lmite
de la banda pasante. Solo se corresponde con la frecuencia de corte para los filtros de
Butterworth.
b) Con los parmetros devueltos por la funcin del apartado anterior ([N,n ]) diseamos
el filtro digital directamente con las funciones butter, cheby1, cheby2 y ellip.
Estas funciones nos devuelven los coeficientes de los polinomios del numerador y
denominador de la funcin de transferencia H(z) = B(z)
A(z)
.
Tareas a realizar:
5. Aplicacin prctica.
La actividad elctrica del corazn puede ser amplificada y digitalizada para su anlisis uti-
lizando tcnicas de procesado digital. Est seal se denomina electrocardiograma (ECG).
Dos canales de una seal electrocardiogrfica han sido amplificados y convertidos en una
seal discreta utilizando un convertidos AD de 12 bits con intervalo de entrada de 5V.
La frecuencia de muestreo utilizada ha sido de 2 kHz, y el factor de amplificacin de 2000.
Las seales obtenidas se encuentran almacenadas en el fichero reg_prac.mat, que contiene
las variables canal1, canal2 y Fm (frecuencia de muestreo).
Nota: Se puede modificar la frecuencia de muestreo de una seal mediante las ope-
raciones de diezmado e interpolacin. En Matlab se usa la instruccin
Y = resample(X,New_Fm,Fm). X es la seal original muestreada a Fm e Y es la nue-
va seal muestreada a New_Fm. La seal obtenida es equivalente a volver a muestrear
la seal analgica con la nueva frecuencia de muestreo.
e) Disea un filtro FIR paso bajo que permita eliminar el ruido de red del canal 2, y
no elimine componentes frecuenciales significativas (menores de 30 Hz). Dibuja su
diagrama de ceros y polos y su respuesta en frecuencia. Qu atenuacin, en dB,
presenta este filtro para la frecuencia de 50 Hz?
5
f ) Dibuja la seal de salida del filtro y la seal original, en el dominio temporal, con
distinto color. Observas qu ha hecho el filtro? Por qu las seales no estn super-
puestas?
g) Calcula el espectro de la seal de salida del filtro y dibjala junto al espectro de la
seal original con distinto color. Observas qu ha hecho el filtro? En qu dominio
se aprecia mejor el procesado realizado por el filtro?
h) Disea un filtro IIR paso bajo que permita eliminar el ruido de red del canal 2, y no
elimine componentes frecuenciales significativas (menores de 30 Hz), CON LAS MIS-
MAS ESPECIFICACIONS QUE EL FILTRO FIR ANTERIOR. Dibuja su diagrama
de ceros y polos y su respuesta en frecuencia. Qu atenuacin, en dB, presenta este
filtro para la frecuencia de 50 Hz?
i ) Vuelve a representar para el filtro IIR las seales de entrada y filtrada en los dominios
temporal y frecuencial. En el dominio temporal: estn las seales superpuestas?
Observas la respuesta transitoria del filtro en la seal filtrada?
j ) Observa las diferencias entre las seales filtradas por los filtros FIR e IIR. A qu
crees que se pueden deber si las especificaciones de ambos filtros han sido las mismas?
k ) Disea un filtro que elimine la interferencia de baja frecuencia del canal1, y modifique
lo menos posible el resto de frecuencias. El filtro debe tener ganancia 1 a frecuencias
altas. Muestra la seal de entrada y salida en el dominio temporal y frecuencial en 2
subplots de una misma figura.
Apndice.
Para el diseo de filtros Matlab dispone de la herramienta fdatool (ver Figura 1). Se trata
de una interfaz grfica que permite disear de manera visual filtros digitales, analizar los
efectos de trabajar con aritmtica finita, explorar diferentes estructuras, incluso permite
exportar los coeficientes de los filtros diseados a diferentes formatos. Es importante sealar
que internamente utiliza las mismas funciones que se han visto en esta prctica, fir1,
buttord, butter, etc.
Matlab dispone tambin de una interfaz grfica que nos permite cargar seales, visualizarlas
en el dominio temporal y frecuencial, usar los filtros diseados con fdatool y ver qu
efecto tienen estos filtro sobre las seales. El entorno se denomina sptool. La Figura 2
muestra dicho entorno con algunas ventanas de visualizacin abiertas. Familiarzate con
esta herramienta diseando y filtrando alguna de las seales de entrada disponibles (puedes
incluir otras) con alguno de los filtros paso-bajo de apartados anteriores.
6
Orden
Vector de Frecuencias
Estimacin automtica (acaba en Fm/2)
del orden
Multibanda
Magnitud en cada Banda
Generalized
equiripple
Rizado en cada Banda
OJO en escala lineal, no
en dB
Fig. 2: Pantalla principal de la herramienta sptool y ventanas abiertas al activar view en cada
una de las columnas Signals, Filters y Spectra.