Sie sind auf Seite 1von 23

PDS

Procesamiento digital
de Seales
Filtros FIR

Tcnicas de Diseo de Ventanas


Idea bsica:
Escoger un filtro ideal apropiado capaz de
seleccionar frecuencias
Respuesta al impulso no causal, de infinita duracin.

Truncar o enventanar su respuesta al impulso


para obtener un filtro FIR causal y de fase lineal.

Tcnicas de Diseo de Ventanas


Filtro ideal de Seleccin de Frecuencias
H d (e jw )
Ganancia: Magnitud Unitaria.
Caracterstica de Fase Lineal sobre su
banda de Paso
Respuesta cero en al banda de Rechazo

Tcnicas de Diseo de Ventanas


Filtro ideal de Seleccin de
Frecuencias j
e
,
c
jw
H d (e )

c
0,
c

Es la frecuencia de Corte
retraso de muestra

Tcnicas de Diseo de Ventanas


Respuesta al impulso del filtro
sin(c (n ))
hd (n)
(n )
hd Es simtrica con respecto

a
La respuesta es duracin finita

Tcnicas de Diseo de Ventanas


Para obtener un filtro FIR a partir hde
d
se debe truncar la seal en ambos lados
Para obtener un filtro FIR causal y de
fase lineal
de longitud M
h
n

h(n) hd (n), 0 n M 1
M 1

Tcnicas de Diseo de Ventanas


En general la operacin de
enventanado consiste en:
h(n) hd (n) w(n)

w(n) Funcin _ Simtrica _ en _

0 n M 1

Tcnicas de Diseo de Ventanas


Ventana rectangular

Tcnicas de Diseo de Ventanas


Ventana rectangular
Ventana W(n) tiene una longitud finita M, su

respuesta tiene un lbulo principal picudo cuya


ancho es proporcional a 1/M, y sus lbulos
secundarios son de menor tamao
El lbulo principal produce una banda de
transicin proporcional a 1/M.
Los Lbulos secundarios producen rizos de igual
forma en la banda de paso y en la de rechazo.

Tcnicas de Diseo de Ventanas


Idea de diseo bsico de Ventana
Para las especificaciones de un filtro dadas,
escoger la longitud del filtro M y una funcin
Ventana w(n) con el lbulo principal ms
estrecho y los lbulos laterales con la menor
atenuacin posible

La tolerancia de la banda de paso y de la


banda de rechazo no pueden ser especificados
de forma independiente.

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

Comparacin con otras


ventanas
Ventana

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

Es la funcin de orden cero modificada

( 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:

=5658, banda de transicin =


7.8pi/ atenuacin mnima de la
banda de rechazo = 60 db

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:

=5658, banda de transicin =


7.8pi/ atenuacin mnima de la
banda de rechazo = 60 db

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);

Filtros FIR en Matlab


Matlab dispone de la funcin fir1 que
permite disear filtros FIR pasa bajos,
pasa altos, pasa bandas y rechaza banda
usando la tcnica de ventana
h = fir1(N,wc); Filtro Pasa bajos FIR N=M1, empleando una ventana de Hamming
h = fir1(N,[wc1 wc2]); Filtro Pasa banda
FIR N=M-1, empleando una ventana de
Hamming

Filtros FIR en Matlab


h = fir1(N, wc, tipo);
tipo:
high pasa alto
stop rechaza banda
h = fir1(N, wc, tipo, window);
Se emplea la ventana obtenida mediante
una funcin de ventana de Matlab.
[N, wc, beta, tipo] = kaiserord(f, m, rizo);
Estima los parmetros de la ventana de
Kaiser que puede emplearse con fir1.

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

Das könnte Ihnen auch gefallen