Está en la página 1de 11

FACULTAD DE INGENIERÍA LABORATORIO 10 ESTUDIANTE:

INGENIERÍA ELECTRÓNICA Diseños de filtros CHOQUE CHURA FAVIO


ETN - 1015 LABORATORIO FECHA: 29 - 04 - 2021 CH
DE PROCESAMIENTO
INICIAL AP.
DIGITAL DE SEÑALES

LABORATORIO 10 INFORME

Diseños de filtros

Resolver los problemas 6.32 a 6.34.

Problema 6.32.-Un filtro de paso bajo IIR diseñado para cumplir con las especificaciones de ondulación de
0,5 dB en la banda de paso, Ondulación de 60 dB en la banda de supresión, una frecuencia de borde de banda
de paso ωp = 0,25π y un borde de banda de supresión. La frecuencia ωs = 0.3π se obtiene utilizando el
siguiente script MATLAB

% lo que se utilizara para el filtro pasa bajo IIR


wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);

1.- Utilizando precisión infinita, trace la magnitud logarítmica y las respuestas de fase del diseño filtrar.
Utilice dos filas y una columna de subtramas

El script de Matlab para construir las gráficas es el siguiente:

close;
clear all;
clc;
wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);
w = [0:500]*pi/500; H = freqz(b,a,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'r','linewidth',1.5);
grid on;
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud
Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'r','LineWidth',1.5);
grid on;
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title('Respuesta de face');
grid on;
xlabel('Frecuencia en \pi unidades'); ylabel('H_{r}(n)');
axis([0 1 -20 20])
subplot(2,2,3);
stem(n,a1,'r');
title(' a(n)Coeficientes');
grid on;
xlabel('n'); ylabel('a(n)');
axis([-0.5 10.5 -10.5 10.5])
subplot(2,2,4);
zplane(h,1);
title('Diagrama de Polos y Zeros');
grid on;
axis([-1.5 1.5 -1.5 1.5])

La grafica es la siguiente:

2. Cuantifique los coeficientes de forma directa a cuatro decimales (redondeando). Ahora traza el Respuestas
de fase y magnitud logarítmica del filtro resultante. Use dos filas y una columna de subtramas.

Para graficar el filtro se tiene el siguiente scipt:

close;
clear all;
clc;
wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);
a1 = round(a*10000)/10000;
b1 = round(b*10000)/10000;
w = [0:500]*pi/500; H = freqz(b1,a1,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'m','linewidth',1.5);
grid on;
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud
Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'m','LineWidth',1.5);
grid on;
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

La grafica es la siguiente:

3. Cuantifique los coeficientes de forma directa a tres decimales (redondeando). Ahora traza las Respuestas
de fase y magnitud logarítmica del filtro resultante. Use dos filas y una columna de subtramas.

Para graficar el filtro se tiene el siguiente scipt:

clc;
close;
clear all;
wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);
a1 = round(a*1000)/1000;
b1 = round(b*1000)/1000;
w = [0:500]*pi/500; H = freqz(b1,a1,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'c','linewidth',1.5);
grid on;
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud
Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'c','LineWidth',1.5);
grid on;
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

La grafica es la siguiente:

4. Comente sobre las graficas 1,2 y 3

Como se puede ver en los tres diseños de filtros, se ve que sus graficos tienen una pequeña variación en su
magnitud asi como en su respuesta de face.

Problema 6.33 Considere el filtro de paso bajo digital utilizado en el problema P6.32

1. Utilizando precisión infinita y realización de forma en cascada, grafique la magnitud logarítmica y la fase
respuestas del filtro diseñado. Utilice dos filas y una columna de subtramas

Para graficar el filtro se tiene el siguiente scipt:

clc;
close;
clear all;
wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);
[b0,B0,A0] = dir2cas(b,a);
[b1,a1] = cas2dir(b0,B0,A0);
w = [0:500]*pi/500; H = freqz(b1,a1,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'g','linewidth',1.5);grid
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud
Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'LineWidth',1.5);grid
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold')

La grafica es la siguiente:

2. Cuantifique los coeficientes en forma de cascada a cuatro decimales (redondeando). Ahora grafique las
respuestas de fase y magnitud logarítmica del filtro resultante. Utilice dos filas y una columna de subtramas.

clc;
close;
clear all;
wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);
[b0,B0,A0] = dir2cas(b,a);
a11 = round(A0*10000)/10000;
b11 = round(B0*10000)/10000;
[b1,a1] = cas2dir(b0,b11,a11);
w = [0:500]*pi/500; H = freqz(b1,a1,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'g','linewidth',1.5);grid
axis([0,1,-200,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud
Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'LineWidth',1.5);grid
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

La grafica es la siguiente:

3. Cuantifique los coeficientes en forma de cascada a tres decimales (redondeando). Ahora traza el
Respuestas de fase y magnitud logarítmica del filtro resultante. Use dos filas y una columna de subtramas

clc;
close;
clear all;
wp = 0.25*pi; ws = 0.3*pi; Rp = 0.5; As = 60;
[N, Wn] = ellipord(wp/pi, ws/pi, Rp, As);
[b,a] = ellip(N,Rp,As,Wn);
[b0,B0,A0] = dir2cas(b,a);
a11 = round(A0*1000)/1000;
b11 = round(B0*1000)/1000;
[b1,a1] = cas2dir(b0,b11,a11);
w = [0:500]*pi/500; H = freqz(b1,a1,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'g','linewidth',1.5);grid
axis([0,1,-200,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'LineWidth',1.5);grid
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

La grafica es la siguiente:

COMENTARIOS Como pudimos ver los graficos al implementarlos de forma directa y mediante redondeo,
no se ven muchas diferencias enc cuanto a la magnitud y la face, esto se debe a que el numero de coeficientes
del redondeo(decimales) son sufucientes para que al hacer el redondeo no afecte en gran medida a la funcion
original

Problema 6.34 Un filtro de paso de banda FIR de fase lineal de longitud 32 que satisface los requisitos de 60
dB atenuación de la banda de supresión, frecuencia del borde de la banda de supresión inferior ωs1 = 0,2π y
borde de la banda de supresión superior. La frecuencia ωs2 = 0.8π se obtiene utilizando el siguiente script
MATLAB.

ws1 = 0.2*pi; ws2 = 0.8*pi; As = 60;


M = 32; Df = 0.2115;
fp1 = ws1/pi+Df; fp2 = ws2/pi-Df;
h = firpm(M-1,[0,ws1/pi,fp1,fp2,ws2/pi,1],[0,0,1,1,0,0]);

La respuesta al impulso del filtro h (n) está en la matriz h y se puede considerar que tiene infinitas precisión.
1. Utilizando precisión infinita, grafique las respuestas de amplitud y magnitud logarítmica del diseño filtrar.
Utilice dos filas y una columna de subtramas.

clc;
close;
clear all;
ws1 = 0.2*pi; ws2 = 0.8*pi; As = 60;
M = 32; Df = 0.2115;
fp1 = ws1/pi+Df; fp2 = ws2/pi-Df;
h = firpm(M-1,[0,ws1/pi,fp1,fp2,ws2/pi,1],[0,0,1,1,0,0]);
a = 1;
w = [0:500]*pi/500; H = freqz(h,a,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
faceHdb = 20*log10(faceH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'y','linewidth',1.5);grid
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'y','LineWidth',1.5);grid
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

La grafica es la siguiente

2. Cuantifique los coeficientes de forma directa a cuatro decimales (redondeando). Ahora traza el Respuestas
de amplitud y magnitud logarítmica del filtro resultante. Usa dos filas y una columna de subparcelas.
clc;
close;
clear all;
ws1 = 0.2*pi; ws2 = 0.8*pi; As = 60;
M = 32; Df = 0.2115;
fp1 = ws1/pi+Df; fp2 = ws2/pi-Df;
h = firpm(M-1,[0,ws1/pi,fp1,fp2,ws2/pi,1],[0,0,1,1,0,0]);
a = 1;
w = [0:500]*pi/500; H = freqz(h,a,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
faceHdb = 20*log10(faceH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'k','linewidth',1.5);grid
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'k','LineWidth',1.5);grid
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

La grafica es la siguiente

3. Cuantifique los coeficientes de forma directa a tres decimales (redondeando). Ahora traza el Respuestas de
amplitud y magnitud logarítmica del filtro resultante. Usa dos filas y una columna de subparcelas.
clc;
close;
clear all;
ws1 = 0.2*pi; ws2 = 0.8*pi; As = 60;
M = 32; Df = 0.2115;
fp1 = ws1/pi+Df; fp2 = ws2/pi-Df;
h = firpm(M-1,[0,ws1/pi,fp1,fp2,ws2/pi,1],[0,0,1,1,0,0]);
a = 1;
w = [0:500]*pi/500; H = freqz(h,a,w);
magH = abs(H);faceH = angle(H);
magHdb = 20*log10(magH);
faceHdb = 20*log10(faceH);
Hf_1 = figure('paperunits','inches','paperposition',[0,0,6,5]);
subplot(2,1,1); plot(w/pi,magHdb,'k','linewidth',1.5);grid
axis([0,1,-80,5]);
xlabel('Digital Frequency in \pi units','fontsize',10);
ylabel('Decibels','fontsize',10);
title(['Magnitud Logarítmica'],'fontsize',10,'fontweight','bold');
subplot(2,1,2); plot(w/pi,faceH*180/pi,'k','LineWidth',1.5);grid
axis([0,1,-180,180]); phatick = [-180 0 180];
xlabel('\omega/\pi'); ylabel('Degrees');
title(['Respuesta de face'],'fontsize',10,'fontweight','bold');

Se tiene la siguiente grafica

4. Comente sobre las graficas 1,2 y 3

Similar a los anteriores filtros tiene pequeños cambios ya sea de amplitud y magnitud como también en su
respuesta de face.
5. Con base en los resultados de este problema, determine cuántos bits significativos (y no decimales) son
necesarios en la práctica para representar las realizaciones de forma directa FIR. Al observar la señal de
entrada podemos ver que esta presenta 4 coeficientes fraccionarios y 1 entero, entonces para representar estos
valores en bits tendremos que evaluar para que bits se pueden representar 0.0001 números de parte
fraccionaria:

0.0001 → 2 0 , 2 −1 , 2 −2 , 2 −3 , 2 −4 , … 2 –𝑛

Si bien podemos representar números de 4 cifras decimales con 4 bits después de la parte fraccionaria, con
esta cantidad de bits no es suficiente para generar los números representados, entonces para más seguridad la
cantidad de bits para representar de buena manera los coeficientes será de 16 bits.

También podría gustarte