Filtros Digitales con Matlab.doc

Descripción completa

Views 155 Downloads 5 File size 110KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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á