Beruflich Dokumente
Kultur Dokumente
Procesamiento digital
de Seales
Filtros FIR
c
0,
c
Es la frecuencia de Corte
retraso de muestra
a
La respuesta es duracin finita
h(n) hd (n), 0 n M 1
M 1
0 n M 1
Ventana Rectangular
Ancho de banda de transicin Aproximado :
4pi/M
Magnitud del primer lbulo secundario :
2M/3pi
Magnitud del Lbulo principal : M
Comparacin: 2/3pi = 21.22% = 13db
Atenuacin mnima en la banda de rechazo
21 db
Ancho de banda de transicin : 1.8pi/M
Transicin
(aproximada)
Transicin
(exacta)
Atenuacin
banda de
rechazo
Rectangular
21dB
Bartlett
25dB
Hann
44dB
Hamming
53dB
Blackman
74dB
Ventana de Kaiser
Ventana ajustable dada por:
2n 2
I 0 ( 1 (1
) )
M
1
w(n)
I 0 ( )
I0
( x / 2)
I0 1
k!
k 0
Ventana de Kaiser
El parmetro
controla la
atenuacin mnima de la banda de
rechazo As.
Provee diferentes anchos de
transicin para el mismo M
Ejemplos:
Ventana de Kaiser
El parmetro
controla la
atenuacin mnima de la banda de
rechazo As.
Provee diferentes anchos de
transicin para el mismo M
Ejemplos:
Implementacin en Matlab
Funciones para las ventanas:
Rectangular w = boxcar(M)
Barlett w = barlett(M)
Hann
w = hann(M)
Hamming
w = hamming(M)
Blackman w = blackman(M)
Kaiser
w = kaiser(M, beta)
Implementacin en Matlab
Funciones para las ventanas:
Rectangular w = boxcar(M)
Barlett w = barlett(M)
Hann
w = hann(M)
Hamming
w = hamming(M)
Blackman w = blackman(M)
Kaiser
w = kaiser(M, beta)
Filtro Ideal
function hd = ideal_pasabajo(wc,M);
% Filtro pasa bajo ideal
% -------------------------------% [hd] = ideal_pasabajo(wc,M)
% hd = respuesta al impulso ideal [0, M-1]
% wc = frecuencia angular de corte
% M = longitud del filtro ideal
%
alpha = (M-1)/2; n = [0:1:(M-1)];
m = n - alpha; fc = wc/pi; hd = fc*sinc(fc*m);
Freqz modificado
function [db, mag, fase, retgr, w] =
freqz_modificado(b, a);
% Versin alternativa de freqz (retorna valores
entre 0 y pi)
% -----------------------------------%
[H, w] = freqz(b, a, 1000, 'whole');
H = (H(1:1:501))'; w = (w(1:1:501))';
mag = abs(H); db = 20 * log10((mag + eps) /
max(mag));
fase = angle(H);
retgr = grpdelay(b, a, w);
Freqz modificado
function [db, mag, fase, retgr, w] =
freqz_modificado(b, a);
% Versin alternativa de freqz (retorna valores
entre 0 y pi)
% -----------------------------------%
[H, w] = freqz(b, a, 1000, 'whole');
H = (H(1:1:501))'; w = (w(1:1:501))';
mag = abs(H); db = 20 * log10((mag + eps) /
max(mag));
fase = angle(H);
retgr = grpdelay(b, a, w);
Ejercicios
Para una seal:
Dada:
Graficar con fir1 los filtros con
diferentes ventanas.
x=
sen(2*pi*t*1000)+cos(2*pi*t*10000)
Realizar un filtro pasa bajos y altos para
filtrar las seales con las diferentes
ventanas
Para seal dada: filtrar el ruido