Вы находитесь на странице: 1из 6

Procesamiento Digital de Seales

C2502-X

1. OBJETIVO
Programas sencillos comandos usando MATLAB.
2. DESARROLLO
Se presentar una exposicin sobre el entorno de trabajo de MATLAB
ymostrarejemplos del uso de comandos yfunciones bsicas. Diseo de filtros
IIR con matlab:
Ejemplo 1:
Determinar el orden necesario para un filtro analgico pasa banda con las
siguientes especificaciones y para todos los tipos de filtros mostrados en el
apartado anterior:
Pasa banda 30-50 Hz, Para banda< 5Hz y >200 Hz, Ap<2dB, As>40dB.
Hacemos primero la transformacin de Pasa banda a Paso bajo, de
acuerdo con la Tabla3:
1 = 5 pero hay que recalcular, 2 = 30 Hz, 3 = 50 Hz, 4 = 200 Hz.
Recalcular 1, 1 = 2 3 / 4 = 7.5 Hz. La frecuencia de paso bajo es
3 - 2 = 20 Hz, y la
Frecuencia de paso alto es 4 - 1 = 192.5 Hz.
Wp=2*pi*20, Ws=2*pi*192.5.
Resolviendo en matlab:
>> [N,Wn]=buttord(2*pi*20,2*pi*192.5,2,40,'s')
N =3
Wn =260.5861
>> [N,Wn]=cheb1ord(2*pi*20,2*pi*192.5,2,40,'s')
N=2
Wn = 125.6637
>> [N,Wn]=cheb2ord(2*pi*20,2*pi*192.5,2,40,'s')
N =2
Wn =1.0199e+003
>> [N,Wn]=ellipord(2*pi*20,2*pi*192.5,2,40,'s')
N =2
Wn =125.6637
Pgina 1

Procesamiento Digital de Seales

C2502-X

Ejemplo 2:
Realizar el ejemplo 1, pero con filtros digitales.
Elegir la frecuencia de muestreo. La frecuencia de muestreo deber ser >
2 fmx = 400 Hz.
Elijo fs = 1000 Hz. Normalizando las frecuencias con respecto a la
frecuencia de Nyquist
(fs/2):
f1 = 5/(fs/2)=5/500=0.01, f2=30/500=0.06, f3=50/500=0.1, f4=200/500=0.4.
f1 = 0.01, f2 = 0.06, f3 = 0.1, f4 = 0.4. Recalculamos f1 de acuerdo con
Tabla 3, f1 = 0.015 y
Hacemos la Transformacin a paso bajo.
Wp=f3-f2=0.1-0.06=0.04, Ws=f4-f1=0.385.
Resolviendo en Matlab:
>> [N,Wn]=buttord(0.04,0.385,2,40)
N = 3 Wn 0.0941
>> [N,Wn]=cheb1ord(0.04,0.385,2,40)
N = 2 Wn 0.0400
>> [N,Wn]=cheb2ord(0.04,0.385,2,40)
N = 2 Wn 0.3850
>> [N,Wn]=ellipord(0.04,0.385,2,40)
N = 2 Wn 0.0400
Funciones para determinar los coeficientes del filtro:
Ejemplo 3:
Disear el filtro analgico con las especificaciones anteriores para todos
los tipos
De filtros (Butterworth, Chebyshev I, Chevyshev II yElptico).
Utilizaremos los resultados del anterior ejercicio.
>> [B,A]=butter(3,2*pi*[30 50],s)
B = 1.0e+006 * [0 0.0000 0.0000 1.9844 0.0000 0.0000 0.0000]
A = 1.0e+014 * [0.0000 0.0000 0.0000 0.0000 0.0001 0.0088 2.0766]
>> [B,A]=cheby1(2,2,2*pi*[30 50],s)
B = 1.0e+004 * [0 0.0000 1.0324 0.0000 0.0000]
A = 1.0e+009 * [0.0000 0.0000 0.0001 0.0060 3.5067]
>> [B,A]=cheby2(2,40,2*pi*[30 50],s)
B = 1.0e+007 * [0.0000 0.0000 0.0002 0.0000 3.5067]
Pgina 2

Procesamiento Digital de Seales

C2502-X

A = 1.0e+009 * [0.0000 0.0000 0.0001 0.0015 3.5067]


>> [B,A]=ellip(2,2,40,2*pi*[30 50],s)
B = 1.0e+007 * [0.0000 0.0000 0.0012 0.0000 3.5067]
A = 1.0e+009 * [0.0000 0.0000 0.0001 0.0059 3.5067]

Ejemplo4:
Disear el filtro digital con las especificaciones anteriores para todos los
tipos de
filtros (Butterworth, Chebyshev I, Chevyshev II y Elptico).
La frecuencia de muestreo elegida es fs=1000 Hz.
>> [B,A]=butter(3,[0.06 0.1])
B = 1.0e-003 * [0.2196 0.0000 -0.6588 0.0000 0.6588 0.0000 -0.2196]
A = [1.0000 -5.5792 13.1338 -16.6913 12.0771 -4.7177 0.7776]
>> [B,A]=cheby1(2,2,[0.06 0.1])
B = [0.0025 0 -0.0049 0.0000 0.0025]
A = [1.0000 -3.7768 5.4667 -3.5906 0.9040]
>> [B,A]=cheby2(2,40,[0.06 0.1])
B = [0.0100 -0.0383 0.0568 -0.0383 0.0100]
A = [1.0000 -3.8577 5.6956 -3.8097 0.9753]
>> [B,A]=ellip(2,2,40,[0.06 0.1])
B = [0.0120 -0.0368 0.0498 -0.0368 0.0120]
A = [1.0000 -3.7773 5.4682 -3.5922 0.9046]
PROBLEMA 1:
Un filtro paso bajo IIR debe tener las siguientes caractersticas: una
atenuacin de 0.3dB a 2
KHz y una atenuacin de 40 dB a 10 KHz. Se pide:
1. Disear el prototipo de filtro paso bajo analgico.
2. Disear a partir de ste, el filtro analgico.
3. Si la frecuencia de muestreo es 44.1 KHz, determinar los coeficientes
del filtro
Utilizando la transformacin bilineal y la transformacin invariante al
impulso.
4. Determinar la respuesta a impulso de los dos filtros digitales obtenidos.
5. Mostrar en todos los casos que corresponda el orden del filtro obtenido,
la
Respuesta frecuencia del filtro, el retraso de grupo y la ecuacin diferencia.
Hacer todos los pasos anteriores para las aproximaciones de Butterworth
Pgina 3

Procesamiento Digital de Seales

C2502-X

1) Pasabanda2KHz, Para banda 10 KHz, Ap<0.3 db, As>40dB.


Wp=2*pi*2,Ws=2*pi*10
2) >> [N,Wn]=buttord(2*pi*2,2*pi*10,0.3,40,'s')
N =4
Wn =19.8694
>> [N,Wn]=cheb1ord(2*pi*2,2*pi*10,0.3,40,'s')
N =3
Wn = 12.5664
>> [N,Wn]=cheb2ord(2*pi*2,2*pi*10,0.3,40,'s')
N =3
Wn =57.7233
>> [N,Wn]=ellipord(2*pi*2,2*pi*10,0.3,40,'s')
N =3
Wn =12.5664
3) >> [B,A]=butter(4,2*pi*[2],'s')
B = 1.0e+004 *[ 0
0
0
0 2.4937]
A = 1.0e+004 *[0.0001 0.0033 0.0539 0.5185 2.4937]
>> [B,A]=cheby1(3,0.3,2*pi*[2],'s')
B = 1.0e+003 *[ 0
0
0 1.8551]
A = 1.0e+003 *[0.0010 0.0183 0.2864 1.8551]
>>[B,A]=cheby2(3,40,2*pi*[2],'s')
B =0 0.3770 -0.0000 79.3800
A =1.0000 8.4772 35.8608 79.3800
>> [B,A]=ellip(3,0.3,40,2*pi*[2],'s')
B = 1.0e+003 *[0 0.0011 0.0000 1.9411]
A =1.0e+003 *[0.0010 0.0181 0.2840 1.9411]

Ejemplo5:
Transformar el filtro analgico de Butterworth diseado anteriormente en
un filtro digital (Fs=1000 Hz).Predistorsionamos (Normalizamos las
frecuencias) las frecuencias que nos piden [5 30 50 200]Hz [0.0319
0.1885 0.3142 1.2566] rad
Diseamos el filtro analgico para estas frecuencias.
Wp=2*pi*20/1000=0.1257, Ws=2*pi*192.5/1000=1.2095.
>> [N,Wn] = buttord(0.1257,1.2095,2,40,s)
Pgina 4

Procesamiento Digital de Seales

C2502-X

N = 3 Wn = 0.26
>> [B,A] = butter(N,[0.1885 0.3142],s)
B = [0 0.0000 0.0000 0.0021 0.0000 0.0000 0.0000]
A = [1.0000 0.2554 0.2123 0.0327 0.0127 0.0009 0.0002]
>> [Bd,Ad] = bilinear(B,A,1)
Bd = 1e-3 *[0.2196 0.0000 -0.6589 0.0000 0.6589 0.0000 -0.2196]
d = [1.0000 -5.5792 13.1338 -16.6913 12.0770 -4.7177 0.7776]
Por la respuesta invariante al impulso, diseo el filtro analgico (no hay
que normalizar frecuencias).
Los coeficientes de este filtro fueron calculados anteriormente y eran.
>> B = 1.0e+6 *[0 0.0000 0.0000 1.9844 0.0000 0.0000 0.0000];
>> A = 1.0e+14 *[0.0000 0.0000 0.0000 0.0000 0.0001 0.0088 2.0766];
>> [Bdi,Adi] = impinvar(B,A,1000);
Bdi = [-2.5839 2.8862 0.0333 -0.0160]
Adi = [1.0000 -1.8959 0.9158]
PROBLEMA 2
Usar la transformacin mediante invarianza impulsional para convertir un
filtro
Analgico de funcin de transferencia

En un filtro IIR digital con frecuencia de muestreo fs=10 Hz. Hacer lo


mismo usando la transformacin bilineal para una frecuencia de muestreo
fs=1 Hz.
Function [b,a]=imp_invr(c,d,T)
%Impulse invariance transformation from analog to digital filter
%[b,a]=imp_invr(c,d,T()
%b=numerator polynomial in z^(-1) of the digital filter
%a=denominarator polynomial in z^(-1) of the digital filter
%c=numerator polynomial in s of the digital filter
%d=denominator polynomial in s of the digital filter
%T=sampling (transformation) parameter
[R,p,k]=residue(c,d); p=exp(p*T);
[b,a]=residuez(R,p,k); b=real(b'); a=real(a');
>> c=[1,1]; d=[1,5,6]; T=0.1;
>> [b,a]=imp_invr(c,d,T)
b = 1.0000 -0.8966
a =1.0000-1.5595 0.6065
Pgina 5

Procesamiento Digital de Seales

C2502-X

>> c=[1,1]; d=[1,5,6]; T=1; Fs=1/T;


PROBLEMA 3:
Disear:
a) Un filtro analogicopasabajoButterwoth que satisfaga:
Una atenuacin la banda de paso de 7dB con una frecuencia =
0.2.
Una atenuacin la banda de rechazo de 16 dB con una frecuencia
= 0.3.
>> [N,Wn]=buttord(0.2*pi*1,0.3*pi*1,7,16,'s')
N =3
Wn =0.5122
b) Un filtro analogicopasabajoChebyshev-I que satisfaga:
Una atenuacin la banda de paso de 1dB con una frecuencia =
0.2.
Una atenuacin la banda de rechazo de 16 dB con una frecuencia
= 0.3.
>> [N,Wn]=cheb1ord(0.2*pi*1,0.3*pi*1,1,16,'s')
N=4
Wn = 0.6283
c) Un filtro analogicopasabajo elptico que satisfaga:
Una atenuacin la banda de paso de 1dB con una frecuencia =
0.2.
Una atenuacin la banda de rechazo de 16 dB con una frecuencia
= 0.3.
>> [N,Wn]=ellipord(0.2*pi*1,0.3*pi*1,1,16,'s')
N=3
Wn = 0.6283

Pgina 6

Вам также может понравиться