Descripción completa
Views 155 Downloads 5 File size 110KB
Teoría de los Circuitos II
Filtros Digitales
Diseño de una filtro digital IIR con Matlab
Un
filtro
filtro
analógico
frecuencia
de
desnormaliza la
digital
se
normalizado corte
este
frecuencia
obtiene
igual
modelo
de
a
de
pasabajos(con a
1),
analógico,
corte
partir
un una
luego
se
en
función
de
y
luego
se
deseada
transforma este resultado al dominio digital. Para
el
diseño
de
un
filtro
analógico
normalizado de Buterworth de orden n utilizamos la función
buttap(n),
Chebychev
y
donde
cheb1ap(n,rp) rp
es
el
para valor
un del
ripple(expresado en decibeles) que deseamos para la banda de pasante. El
segundo
frecuencia pasabajos.
del
es
modelo
Matlab
lp2lp(num,den,wo) pasaaltos,
paso
la
normalizado
permite a
transformación
llevar
pasabajos,
lp2bp(num,den,wo,Bw)
el
en
analógico mismo
con
lp2hp(num,den,wo) a
pasabanda
y
a
con
lp2bs(num,den,wo,Bw) a supresor de banda donde num y den son el numerador y denominador de la función cuyos polos y ceros obtuvimos anteriormente, w o es la frecuencia corte. En el caso del pasabanda y el supresor de banda es igual a:
wo = w1 ⋅ w2 1
UTN-Facultad Regional Paraná
Teoría de los Circuitos II
Filtros Digitales
y Bw = w2 − w1
En
el
tercer
caso
utilizamos
bilinear(num,den,fs,fc) ,
la
logrando
función
con
esta
transformar la función de transferencia al dominio del tiempo discreto, y obtener así, los valores de los
coeficientes
ecuación
que
recursiva,
nos
para
permitan
procesar
la
formar señal.
la La
frecuencia de muestreo es f s y f p es la frecuencia de corte del filtro.
Ejemplo
de
programa
básico
para
el
calculo
de
un
filtro pasabajos digital de Buterworth de orden n:
clc n=input('Ingrese el orden del filtro n= ' ); [z,p,k]=buttap(n); [num,den]=zp2tf(z,p,k); hn=tf([num],[den]) fc=input('Ingrese la frecuencia de corte fc= ' ); wc=2*pi*fc; [numt,dent]=lp2lp(num,den,wc); ht=tf([numt],[dent]) fs=input('Ingrese la frecuencia de muestreo fs= ' ); [numd,dend]=bilinear(numt,dent,fs,fc); hiir=tf([numd],[dend],fs)
2
UTN-Facultad Regional Paraná
Teoría de los Circuitos II
Para
un
f c = 500 H z
hiir =
filtro
Filtros Digitales
de
orden
2
y
frecuencia
y una frecuencia de muestreo igual
de
corte
f s = 2500 Hz
0.2066 z ^ 2 + 0.4131z + 0.2066 z ^ 2 − 0.3695 z + 0.1958
La ecuación de recurrencia queda:
hiir =
y (n) 0.2066 z ^ 2 + 0.4131z + 0.2066 = x( n) z ^ 2 − 0.3695 z + 0.1958
y ( n) = 0.2066 ⋅ x( n) + 0.4131 ⋅ x( n − 1) + 0.2066 ⋅ x(n − 2) + 0.3695 ⋅ y ( n − 1) − 0.1958 ⋅ y (n − 2)
Diseño de filtros FIR con Matlab Existen digital
no
varios
métodos
recursivos.
para
El
diseñar
principal
se
in
filtro
basa
en
tratar de determinar la respuesta en frecuencia del filtro para luego determinar filtro
mediante
la
los coeficientes
transformada
inversa
del de
Fourier.
•
Proceso
de
Diseño
de
Filtros
FIR
por
este
método:
Normalización
de
frecuencias
por
frecuencia de muestreo.
3
UTN-Facultad Regional Paraná
la
Teoría de los Circuitos II
Filtros Digitales
Conversión de especificaciones a la de un Prototipo de Filtro Pasabajo.
Truncamiento de la respuesta a impulso de un
filtro
ideal
h[n] = 2 FC sin c(2nFC )
a
hN [n]
de
longitud N. El orden del filtro es N-1.
Seleccionar
una
w[ n]
de
N
puntos
hw [n] = hN [n] ⋅ w[ n]
para obtener
ventana
Convertir del prototipo de filtro Pasabajo al filtro deseado hF [n] .
Retrasar hF [n] para asegurarse que el filtro es causal.
Matlab dispone de una función Fir1, la cual da los coeficientes del filtro pasabajo buscado b = fir1( N ,WN , ventana( N + 1))
Donde
WN
corresponde a la frecuencia de corte del
filtro digital. Este valor debe estar entre 0 y 1, correspondiendo
a
1
la
mitad
de
la
frecuencia
de
muestreo. Algunas de las ventanas que se pueden utilizar son:
4
-
Boxcar
-
Bartlett
-
Hamming
-
Hanning
-
Blackman
UTN-Facultad Regional Paraná
Teoría de los Circuitos II
Filtros Digitales
La ventana por defecto es la ventana de Hamming. Se dispone
también
para
el
calculo
de
filtros
pasaaltos,
b = fir1( N ,WN , ventana( N + 1),' high ')
Para un pasabanda, b = fir1( N ,[ w1 − w2 ], ventana( N + 1))
clc N=input('Ingrese orden del filtro N= ' ); fc=input('Ingrese frecuencia de corte fc= ' ); fm=input('Ingrese frecuencia de muestreo fm= ' ); wn=fc/(fm/2); b=fir1(N,wn,boxcar(N+1)); a=1; hfir=tf([b],[a],fm) Por
ejemplo
si
se
desea
obtener
los
coeficientes
para un filtro pasabajos de orden 10 y frecuencia de corte de 1000Hz y una frecuencia de muestreo de 12000Hz, y se lo hace pasar por una ventana Boxcar.
0.02711 z ^ 10 + 0.05868 z ^ 9 + 0.09035 z ^ 8 + 0.1174 z ^ 7 + 0.1355 z ^ 6 + 0.1419 z ^ 5 + 0.1355 z ^ 4 + 0.1174 z ^ 3 + 0.09035 z ^ 2 + 0.05868 z + 0.02711
5
UTN-Facultad Regional Paraná
Teoría de los Circuitos II
6
Filtros Digitales
UTN-Facultad Regional Paraná