Professional Documents
Culture Documents
12
Diseño de Filtros Digitales RIF en
Matlab
221
22212.1. DISEÑO DE FILTROS RIF USANDO FUNCIONES VENTANA
B = fir1(N,Wn),
Si empleamos
B = fir1(N,Wn,’stop’),
Rectangular (Boxcar),
Hamming,
Hanning,
Bartlett,
Blackman,
Kaiser,
Chebwin.
Por omisión, Matlab ajusta la escala del filtro de modo que el centro
de la primera banda de paso tenga magnitud exactamente uno después de
aplicar la ventana.
Ejercicio 12.1 Diseñe un filtro RIF con las siguientes especificaciones: or-
den N = 40, frecuencia de corte de 2000 Hz, y frecuencia de muestreo de 48
kHz, con:
B = fir1(40,2000/24000);
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)));
title(’Respuesta en Frecuencia’);
ylabel(’Magnitud [dB]’);
xlabel(’Frecuencia [Hz]’);
grid;
hold on
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)),’r’);
N = 40;
fc = 2000;
Fs = 48000;
FN = Fs/2;
B = fir1(N,fc/FN,Boxcar(N+1));
Ahora introduzca:
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)), ’g’);
Ejercicio 12.4 Finalmente, diseñe un filtro RIF con las mismas especifica-
ciones de frecuencia pero empleando una ventana Blackman con:
seguido de
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)), ’b’);
B=firls(N,F,A)
entrega un filtro real con fase lineal en un vector B de longitud N+1 (con
coeficientes reales simétricos).
El filtro dará la mejor aproximación a la respuesta en frecuencia deseada
descrita por F y A en un sentido de mı́nimos cuadrados. F es un vector de
pares de bandas de frecuencia, en orden ascendente, entre 0 y 1. En el vector
F, 1 corresponde a la frecuencia de Nyquist, o sea la mitad de la frecuencia
de muestreo, Fs/2. A es un vector real del mismo tamaño que F, el cual
especifica la amplitud de la respuesta en frecuencia deseada en B.
Ejercicio 12.5 Diseñe un filtro con las siguientes especificaciones, note los
espacios en la definición del vector de frecuencias FV y del vector de ampli-
tudes FA. Introduzca las siguientes lı́neas:
hold off
fp = 6000; % extremo de la banda de paso
fr = 7000; % extremo de la banda de rechazo
FN = 24000; % Frecuencia de Nyquist
FV = [0 fp/FN fr/FN 1]; % vector de Frequencias
B = firls(40,FV,AV);
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)),’k’);
grid;
fp = & 8000\\
fs = & 10000\\
kp = & 1\\
ks = & 30\\
Fs = & 48000
Bibliografı́a
[1] The Student Edition of Matlab, Version 5 User’s Guide. The Math-
Works, Inc., Prentice Hall, Upper Sadle River, NJ 07458, (1997).