Vous êtes sur la page 1sur 22

Ejercicio 1: Diseñar un filtro pasa bajos utilizando una ventana rectangular, con frecuencia de

corte en 500Hz, frecuencia de muestreo igual a 2000Hz y con una longitud del filtro igual a 31.

>> L=31; %Longitud del filtro


>> Wr=rectwin(L); %Ventana de longitud L

>> fm=2000; %Frecuencia de muestreo

>> fc=500; %Frecuencia de corte

>> Wn=2*fc/fm; %Frecuencia normalizada

>> M=(L-1)/2; %Extremos del rango a calcular

>> ILPF=Wn*sinc(Wn*(-M:M)) ; %Calculo de la respusta al impulso del LPF ideal

>> LPFWr=ILPF.*Wr'; %Calculo del filtro LPF con ventana rectangular

>> h=fvtool(LPFWr,1) ; %Respuesta en frecuencia


Ejercicio 2: Diseñar un filtro pasa bajos utilizando una ventana rectangular, con frecuencia de
corte de 1500Hz, frecuencia de muestreo igual a 5000Hz y con un orden de filtro igual a 40.

>>n = 40; %Orden del filtro

>> fm = 5000; %Frecuencia de muestreo

>> fc = 1500; %Frecuencia de corte

>> Wn=2*fc/fm; %Arreglo para obtener la frecuencia normalizada

>> ftype='low'; %Tipo de filtro, en este caso pasa bajos

>> window=rectwin(n+1); %Tipo de método, en este caso ventana rectangular

>> LPFWr=fir1(n, Wn, ftype, window); %Función Fir1 para el diseño de filtros

>> plot(LPFWr) %Muestra la gráfica de la respuesta impulso

freqz(LPFWr,1,512, fm); %Respuesta en la frecuencia del filtro


Ejercicio 4: diseñar tres filtros aplicando las ventanas anteriores con frecuencia de corte en
5000Hz, y frecuencia de muestreo de 44100Hz.

>>L=50; %Longitud del filtro


>>Whamm=hamming(L); %Ventana Hamming
>>Whann=hann(L); %Ventana Hanning
>>Wb=blackman(L); %Ventana Blackman
>>fm=44100; %Frecuencia de muestreo
>>fc=5000; %Frecuencia de corte
>>Wn=2*fc/fm; %Frecuencia normalizada
>>M=(L-1)/2; %Extremo del rango
>>b=Wn*sinc(Wn*(-M:M)); %Respuesta a un impulse de un LPF ideal
>>LPFHamming=b.*Whamm'; %Filtro LPF con ventana Hamming
>>LPFHanning=b.*Whann'; %Filtro LPF con ventana Hanning
>>LPFBlackman=b.*Wb'; %Filtro LPF con ventana Blackman
%Respuesta en Frecuencia de los filtros
>>h=fvtool(LPFHamming,1,LPFHanning,1,LPFBlackman,1);
%Definir la leyenda del grafico
>>legend(h,'Hamming', 'Hanning','Blackman');
Ejercicio 6: Diseñar un filtro pasa bajos con banda de paso desde 0 a 1Khz y banda de rechazo
definida desde 1500Hz a 4Khz. Especificar un ripple en la banda de paso del 5% y una atenuación
en la banda de rechazo de 40dB.

>> fcuts= [1000 1500]; %Frecuencia de banda de paso y banda


de rechazo
>> mags= [1 0]; %Amplitud en las bandas
correspondientes
>> fs = 8000; %Frecuencia de muestreo

>> Pr=0.05; %Ripple en la banda de paso


>> Sa=10^(40/-20); %Atenuación en la banda de rechazo
>> dev=[Pr Sa]; %Ripple y atenuación
>> [n,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs); %Cálculo del orden del filtro y de
beta
>> Wk=kaiser(n+1,beta); %Definición de la ventana para las
especificaciones calculadas

>> LPFWk=fir1(n,Wn,ftype,Wk); %Filtro pasa bajos con Ventana Kaiser


>> wvtool(Wk); %Análisis de la ventana
>> fvtool(LPFWk); %Análisis del filtro
Ejercicio 8: Diseñar un filtro rechaza banda de longitud impar (orden par), con fp1=1000,
fs1=1300, fs2=2210 y fp2=2410. La atenuación en la banda de rechazo debe ser de 5% y el ripple
en la banda de paso de 1%.

>> fsamp=8000; %Frecuencia de muestreo

>> fcuts= [1000 1300 2210 2410]; %Frecuencias de ambas bandas

>> mags=[1 0 1]; %Amplitud de las bandas

>> devs= [0.05 0.01 0.05]; %Desviación máxima de las bandas

%La función kaiserord usa la menor

%Determinar orden del filtro y beta

>> [n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fsamp);

>> n= n+rem(n,2); %Asegura que el orden sea par

%La función fir1 sólo diseña filtros de orden par


%Creamos el filtro BSF

>> hh=fir1(n,Wn,ftype,Kaiser(n+1,beta),’noscale’);

>> fvtool(hh); %Análisis del filtro


Ejercicio 9: Diseñar un filtro analógico tipo butterworth de orden 5 y frecuencia de corte en
1000Hz

>> n = 5; %Orden del filtro

>> fc = 1000; %Frecuencia de corte

>> Wn = 2*pi*fc; %Arreglo para obtener la frecuencia normalizada

>> ftype ='low'; %Tipo de filtro, en este caso pasa bajos

>> [z, p, k] = butter(n, Wn, ftype, 's'); %Función butter para el diseño de filtros

>> sys = zpk(z, p, k) %Resultado matemático para la función de transferencia

9.7926e+18

--------------------------------------------------------------

(s+6283) (s^2 + 1.017e04s + 3.948e07) (s^2 + 3883s + 3.948e07)

>> pzplot(sys); %Despliegue de grafica de polos y ceros


>> bode(sys); %Despliegue de grafica de bode
Ejercicio 11: Diseñar un filtro analogico Chebyshev topo 1 de orden 5, con frecuencia de paso en
1000Hz y épsilon igual a 1.471

>>n=5; % Orden del filtro


>>fp=1000; % Frecuencia de corte
>>épsilon=1.471; % Epsilon

>>Wp=2*pi*fp; % Frecuencia en radianes/segundos


>>R=-10*log10(1/(1+épsilon^2)); % -R dB Magnitud de la respuesta para WP

>>[b,a]=cheby1(n,R,WP.’s’); %Filtro analógico chevyshev del tipo 1


>>sys=tf(b,a); % función de transferencia filtro de 1er orden

>>bodeplot(sys); %Graficar el diagrama de bode


%Definir el título del grafico
>>title([‘Filtro Chebyshev tipo 1 de orden’,num2str(n),’,frecuencia de corte’,num2str(fp),’Hz y
epsilon’,num2str(épsilon)]);
Ejercicio 13: Diseñar un filtro Chebyshev Tipo II de orden 6, e= 0.0316385 y extremo de la banda
de rechazo de 1000Hz.

>> Fs=[1000]; %Extremo de la banda de rechazo en Hz


>> N=6; %Orden del filtro Chebyshev Tipo II analógico
>> e=0.0316385; %epsilon

>> As= -10*log10(e^2/(1+e^2)); %Atenuación mínima en la banda de rechazo en dB


>> Ws=2*pi*Fs; %Extremo de la banda de rechazo en rad/seg

>> [z,p,k]=cheby2(N,As,Ws,'s'); %Cálculo de los polos y ceros del filtro analógico


Chebyshev Tipo II
>> [b,a]=cheby2(N,As,Ws,'s'); %Cálculo de los coeficientes de la función de
transferencia del filtro analógico Chebyshev Tipo II
>> zplane(z,p); %Mostrar diagrama de polos y ceros

>>

>>[h,w]=freqs(b,a,5000); %Obtener la respuesta en frecuencia para filtro


Chebyshev Tipo II
>> absh=20*log10(abs(h)); %Obtener la magnitud de la respuesta en dB
>> plot(w/2/pi,absh); %Graficar la respuesta en frecuencia

>> xlabel('Frecuencia (Hz)'); %Título del eje x


>> ylabel('Magnitud (dB)'); %Título del eje y
%Título del gráfico
>> title([ 'Respuesta en frecuencia de un filtro analógico Chebyshev Tipo II de orden ',
num2str(N),',Fs=',num2str(Fs),'Hz y e=',num2str(e)]);
>> axis([0 5000 -90 10]); %Rango de los ejes

%Determinar la frecuencia a la que la magnitud


cae en 3dB
>> W3dB= Ws/cosh(acosh(1/sqrt(10^(3/10)-1)*e))/N;
>> F3dB=W3dB/2/pi; %Convertir la frecuencia a Hz

>> hps=freqs(b,a,[W3dB Ws]); %Obtener la respuesta en frecuencia para el


filtro Chebyshev Tipo II para Wp y Ws

>> abshps= 20*log10(abs(hps)); %Obtener la magnitud de la respuesta en dB para


Wp y Ws
%Mostrar magnitud para la frecuencia Fp
>>
text(Fs,abshps(2),['\leftarrow(',num2str(Fs),'Hz,',num2str(abshps(1)),'dB)'],'HorizontalAlig
nment','left');

%Mostrar magnitude para la frecuencia Fs


>>
text(F3dB,abshps(1),['\leftarrow(',num2str(F3dB),'Hz,',num2str(abshps(1)),'db)'],'Horizont
alAlignment','left');
Ejercicio 15: Diseñar un filtro Chebyshev Tipo II de orden 6, e= 0.0316385 y extremo de la banda
de rechazo de 1000Hz.

>> n=4; %Orden del filtro


>> Rp=2; %Magnitud de la respuesta en la banda de paso (dB)
>> Rs=40; %Magnitud de la respuesta en la banda de rechazo (dB)
>> Fp=1000; %Extremo de la banda de paso en Hz

>> Wp=2*pi*Fp; %Extremo de la banda de paso en rad/seg

>> [z,p,k]=ellip(n,Rp,Rs,Wp,'s'); %Diseño de un filtro Elliptic analógico


>> [b,a]=ellip(n,Rp,Rs,Wp,'s'); %Diseño de un filtro Elliptic analógico

>> zplane(z,p); %Mostrar diagrama de polos y ceros

>>[h,w]=freqs(b,a,8000); %Obtener la respuesta en frecuencia


>> absh=20*log10(abs(h)); %Obtener la magnitude de la respuesta en dB
>> angleh=angle(h)/pi*180; %Obtener la fase de la respuesta en grados

>> figure %Crear un objeto gráfico


>> plot(w/2/pi,absh); %Graficar la magnitud de la respuesta en frecuencia
>> axis([0 5000 -100 10]); %Rango de los ejes
>> xlabel('Frecuencia (Hz)'); %Título del eje x
>> ylabel('Magnitud (dB)'); %Título del eje y
>> title(['Fase de la respuesta en frecuencia de un filtro analógico Elíptico con parámetros
estándar: Fp= ',num2str(Fp),'Hz,N=',num2str(n),' y Rp=',num2str(Rp),'dB y
Rs=',num2str(Rs),'dB']);

>> figure %Crear objeto gráfico


>> plot(w/2/pi,angleh); %Graficar la fase de la respuesta en frecuencia
>> axis([0 5000 -200 200]); %Rango de los ejes
>> xlabel('Frecuencia (Hz)'); %Título del eje x
>> ylabel ('Fase (grados)'); %Título del eje y
%Título del gráfico
>> title (['Fase de la respuesta en frecuencia de un filtro analógico Elíptico con parámetros
estándar: FP=',num2str(Fp),' Hz,N=',num2str(n),' y Rp= ',num2str(Rp),'dB y Rs=',
num2str(Rs),'dB']);
Ejercicio 16: Diseñar un filtro analógico elíptico con un ripple máximo de 3dB, frecuencia de la
banda igual a 40Hz, atenuación mínima en la banda de rechazo de 60dB y frecuencia 150Hz.

>> Fp = 40; %Frecuencia extremo de la banda de paso

>> Fs = 150; %Frecuencia extremo de la banda de rechazo

>> Rp = 3; %Ripple en la banda de paso

>> Rs = 60; %Atenuación mínima en la banda

>> Wp = 2*pi*Fp; %Conversión de Hz a rad/seg

>> Ws = 2*pi*Fs; %Conversión de Hz a rad/seg

>> [n,Wnewp] = ellipord(Wp,Ws,Rp,Rs,'s'); %Determina el orden del filtro elíptico

>> Fnewp = Wnewp/2/pi; %Conversión de rad/seg a Hz

>> [b,a] = ellip(n,Rp,Rs,Wnewp,'s'); %Diseño de un filtro elíptico analógico

>> [h,w] = freqs(b,a,8000); %Obtiene la respuesta en frecuencia

>> absh = 20*log10(abs(h)); %Obtiene la magnitud de la respuesta

>> angleh = angle(h)/pi*180; %Obtiene la fase de la respuesta

>> figure %Crea un objeto grafico


>> plot(w/2/pi,absh); %Grafica la magnitud de la respuesta
>> axis([0 300 -100 10]); %Rangos de los ejes

>> xlabel('Frecencia (HZ)'); %Titulos de los ejes X y Y

>> ylabel('Maginitud (dB)');


>> title(['Manitud de la respuesta en frecuencia de un \nfiltro analógico Elíptico con parámetros
estándar: Fp = ',num2str(Fnewp),',Fs = ',num2str(Fs),' Hz y Rp = ',num2str(Rp),' dB y Rs =
',num2str(Rs),'db']); %Genera un titulo para la figura

>> [hp]=freqs(b,a,[Wnewp Ws]); %Obtiene la respuesta en frecuencia

>> abshp = 20*log10(abs(hp)); %Obtiene la magnitud de la frecuencia


>>text(Fnewp,abshp(1),['\leftarrow(',num2str(Fnewp),'Hz,',num2str(abshp(1)),'dB)'],'HorizontalAli
gnment','left') %Muestra magnitud para la frecuencia Fp

text(Fs,abshp(2),['(',num2str(Fs),'Hz,',num2str(abshp(2)),'dB)\rightarrow'],'HorizontalAlignment','ri
ght') %Muestra magnitude para la frecuencia Fp

Figure %Crea un objeto grafico


>> plot(w/2/pi,angleh); %Grafica la fase de la respuesta
>> axis([0 300 -200 200]); %Rangos de los ejes
>> xlabel('Frecuencia (HZ)'); %Titulos de los ejes X y Y

>> ylabel('Fase (grados)');


>> title(['Fase de la respuesta en frecuencia de un filtro analógico Elíptico con parámetros
estándar: Fp = ',num2str(Fnewp),', Fs = ',num2str(Fs),' Hz y Rp = ',num2str(Rp),' dB y Rs =
',num2str(Rs),' dB']); %Titulo del grafico

Vous aimerez peut-être aussi