Upload
soparjuandegaray
View
222
Download
2
Embed Size (px)
Citation preview
Diseo de Filtros Digitales
Procesamiento Digital de Seales
Ingeniera Electrnica, Fac. de Ciencias
Universidad Autnoma de San Luis Potos
M.I.E. Isnardo Reducindo Ruiz
Introduccin
Un filtro digital es un conjunto de operaciones realizadas sobre seales discretas y cuantizadas, implementado como un circuito digital o como un programa.
Un filtro digital es la implementacin en hardware o Un filtro digital es la implementacin en hardware o software de una ecuacin en diferencias.
Ventajas de los filtros digitales
Inmunidad al ruido
Fcil de implementar
Bajo costo
Alta precisin
Diseo de Filtros 2Procesamiento Digital de Seales
Clasificacin
FIR (Finite Impulse Response)
La respuesta al impulso es de duracin finita
La salida depende slo de la entrada
Ecuacin en diferencias Ecuacin en diferencias
Funcin de transferencia
][]1[][][ 10 Mnxanxanxany M +++= K
MM zazaazH
+++= K110)(Diseo de Filtros 3Procesamiento Digital de Seales
Clasificacin
IIR (Infinite Impulse Response)
La respuesta al impulso es de duracin infinita
La salida depende de la entrada y salidas pasadas
Ecuacin en diferencias Ecuacin en diferencias
Funcin de transferencia
=+++ ][]1[][ 1 Nnybnybny NK
NN
MM
zbzbzazaa
zH
+++
+++=
K
K
11
110
1)(
][]1[][ 10 Mnxanxanxa M +++ K
Diseo de Filtros 4Procesamiento Digital de Seales
Clasificacin
Diseo de Filtros 5Procesamiento Digital de Seales
Clasificacin
Proceso de diseo: Establecer las especificaciones del filtro
Determinar la funcin de transferencia
Implementar la funcin de transferencia
FIR o IIR? FIR o IIR? Los FIR son de fase lineal
FIR siempre estables
IIR producen distorcin en la fase
El orden de un IIR es mucho menor
IIR proporcionan mejor atenuacin en la banda de rechazo
Diseo de Filtros 6Procesamiento Digital de Seales
Espesificaciones de un Filtro
fc Frecuencia de corte
fr Frecuencia de rechazo
k1 Ganancia de la frecuencia de corte
k2 Ganancia de la frecuencia de rechazo
Diseo de Filtros 7Procesamiento Digital de Seales
Diseo de un Filtro IIR
El objetivo es encontrar el polinomio que mejorcumple las especificaciones (Butterworth, Chevysheb, etc.)
Diseo de Filtros 8Procesamiento Digital de Seales
Etapas del diseo:
Normalizar la frecuencia
Determinar el orden del filtro
Determinar la funcin de transferencia
Desnormalizar el filtro
Aproximacin Butterworth
Se parte de un prototipo de filtro pasa-bajas
normalizado donde se usa una frecuencia
normalizadanf
H 22
1
1)(
+
=
donde n es el orden del polinomio.
Diseo de Filtros Procesamiento Digital de Seales 9
cf1
+
=
c
r
k
k
ffn log
110110log
21
1.0
1.0
1
2
Diseo de Filtros Procesamiento Digital de Seales 10
Aproximacin Butterworth
Obtenemos la funcin de transferencia
desnormalizando el filtro
= f
sHsH )(
Podemos obtener un filtro pasa-altas
simplemente
Diseo de Filtros Procesamiento Digital de Seales 11
escf
)(1)( sHs
fHsH esc =
=
Aproximacin Butterworth
Cumplir con el requerimiento de ganancia en
fc
( ) nkc
esc
ff21
10/ 110 =
Si lo que interesa es cumplir con la ganacia en
fr
Diseo de Filtros Procesamiento Digital de Seales 12
( ) nk 210/ 110 1
( ) nkr
esc
ff21
10/ 110 2 =
Otras Aproximaciones
ChebychevI
ChebychevII
Elptica
Dado que estas aproximaciones se llevan porun camino similar a la Butterworth y debido a la premura del tiempo, se optar por verdichas aproximaciones simplemente en la prctica.
Diseo de Filtros Procesamiento Digital de Seales 13
Diseo de Filtros Digitales IIR con
MATLAB
Funcin para determinar el orden de un filtro
Butterworth:
[n,fesc] = buttord(fc,fr,k1,k2);
Calcula el orden requerido de un filtro butterworth con las especificacionesCalcula el orden requerido de un filtro butterworth con las especificaciones
indicadas. Las frecuencias deben estar normalizadas con respecto a la
frecuencia de Nyquist y las atenuaciones son en decibeles
Diseo de Filtros Procesamiento Digital de Seales 14
Tipo de filtro Condiciones f -> size
Low-pass fc < fr f -> escalar
High-pass fc > fr f -> escalar
Band-pass fr(1) < fs(1) < fs(2) < fr(2) f = [f1 f2]
Band-stop (notch) fc(1) < fr(1) < fr(2) < fc(2) f = [f1 f2]
Diseo de Filtros Digitales IIR con
MATLAB
Funciones para determinar el orden de un
filtro ChebichevI y II, y Elptico:
[n,fesc] = cheb1ord(fc,fr,k1,k2);
[n,fesc] = cheb2ord(fc,fr,k1,k2);
[n,fesc] = ellipord(fc,fr,k1,k2);
Las frecuencias deben estar normalizadas con respecto a la frecuencia de
Nyquist y las atenuaciones son en decibeles. Se deben cumplir las
condiciones de la tabla de la diapositiva anterior.
Diseo de Filtros Procesamiento Digital de Seales 15
Diseo de Filtros Digitales IIR con
MATLAB
Funcin para determinar los coeficientes de
un filtro Butterworth de orden n:
[b,a] = butter(n,fesc,type);
Obtiene los coeficientes de un filtro butterworth de orden n.Obtiene los coeficientes de un filtro butterworth de orden n.
Diseo de Filtros Procesamiento Digital de Seales 16
Tipo de filtro type f -> size
Low-pass f -> escalar
High-pass high f -> escalar
Band-pass f = [f1 f2]
Band-stop (notch) stop f = [f1 f2]
Diseo de Filtros Digitales IIR con
MATLAB
Funcin para determinar los coeficientes de
un filtro ChebychevI y II, y Elptico de orden n:
[b,a] = cheby1(n,Rp,fesc,type);
[b,a] = cheby2(n,R ,f ,type);[b,a] = cheby2(n,Rr,fesc,type);
[b,a] = ellip(n,Rp,Rr,fesc,type);
Rp -> Rizo en la banda paso (decibeles).
Rr -> Rizo en la banda de rechazo (decibeles).
El type corresponde al de la tabla de la diapositiva anterior.
Diseo de Filtros Procesamiento Digital de Seales 17
Diseo de Filtros Digitales IIR con
MATLAB
Funcin para observar la respuesta en
frecuencia de un filtro digital:
w = 0:fs/2;
freqz(b,a,w,fs);freqz(b,a,w,fs);
fs -> frecuencia de muestreo.
w -> variable para graficar en frecuencia
Diseo de Filtros Procesamiento Digital de Seales 18
Diseo de Filtros Digitales IIR con
MATLAB
Funcin para aplicar un filtro digital a una
seal:
y = filter(b,a,x);
x -> seal original.
y -> seal filtrada.
y = filtfilt(b,a,x);Evita la distorcin en fase producida por los filtros IIR
Diseo de Filtros Procesamiento Digital de Seales 19
Diseo de Filtros Digitales FIR con
MATLAB
b = fir1(n,f,type);
n -> Se decide personalmente
f -> frecuencias normalizadas con respecto a la frecuencia de Nyquist
(Diapositiva 14)
type -> tipo de filtro (Diapositiva 16). GUI para diseo de filtrostype -> tipo de filtro (Diapositiva 16).
freqz(b,1,w,fs);Diapositiva 18
y = conv(b,x); y = filter(b,1,x);
Aplica el filtro
Diseo de Filtros Procesamiento Digital de Seales 20
GUI para diseo de filtros
fdatool