Está en la página 1de 8

PROBLEMA 3.

clc; close all;


% ------DISEÑO DE UN FILTRO DIGITAL RECHAZABANDA mediante ventaneo------
%% Specifications:
ws1 = 0.3*pi; %borde inferior de la banda stop// lower stopband edge
wp1 = 0.4*pi; %Borde inferior de pasabanda//lower passband edge
wp2 = 0.5*pi; %Borde superior de la banda de paso//upper passband edge
ws2 = 0.6*pi; %Borde superior de la banda stop//upper stopband edge
Rp = 0.5; % Rizado de la banda de paso
As = 40; % Atenuacion del rechazo banda %

%% ---------Definiendo la ventana Kaiser--------------------------------


% Determine Kaiser Window Parameters
tr_banda = abs(min((wp1-ws1),(ws2-wp2)));%Banda de transicion
M = ceil((As-7.95)/(2.285*tr_banda)+1)+1;%Condicion de Kaiser
M = 2*floor(M/2)+3, % Elegir M impar // M=49
n = [0:1:M-1]; beta = 0.1102*(As-8.7);
wn = (kaiser(M,beta))'; % Kaiser Window

%% --------------------Generando el filtro ideal-------------------------

wc1 = (ws1+wp1)/2; wc2 = (ws2+wp2)/2;


hd = ideal_lp(wc2,M)-ideal_lp(wc1,M);

%% ------ Realizando la multiplicacion ventana con filtro ideal----------


h = hd .* wn;
[mag,pha,w,db] = freqz_m(h,1);
delta_w = pi/500;
Rpd = -min(db(ceil(wp1/delta_w)+1:floor(wp2/delta_w))), % Ondulación de la banda de
paso real
Rpd = 0.1872
Asd = floor(-max(db(1:floor(ws1/delta_w)))), % Atenuacion Actual
Asd = 40
% %% Grafica de respuesta del Filtro
%% -------------------- Graficando --------------------------------------
f= figure(1);
set(f,'NumberTitle','off','Name','PROBLEMA4');
subplot(3,1,1);
stem(n,hd,'r');
title('RESPUESTA DEL IMPULSO IDEAL');
axis([-1,M,min(hd)-0.1,max(hd)+0.1]);
xlabel('n');
ylabel('h_d(n)');
grid on
subplot(3,1,2);
f= stem(n,wn,'b');
axis([-1,M,-0.1,1.1]);
xlabel('n');
ylabel('w_{ham}(n)');
title('Ventana Kaiser');
grid on

subplot(3,1,3);
f = stem(n,hd,'g');
title('RESPUESTA DEL IMPULSO ACTUAL');
axis([-1,M,min(hd)-0.1,max(hd)+0.1]);
xlabel('n');
ylabel('h(n)');
grid on
figure(2)
f=subplot(2,1,1);
plot(w/(2*pi),db,'linewidth',1);
title('RESPUESTA DE MAGNITUD EN DB');
axis([-0.02,0.55,-As-30,5]);
xlabel('(\omega/(2*pi)'); ylabel('Decibels');
grid;
subplot(2,1,2);
plot(w/(2*pi),mag,'linewidth',1);
title('RESPUESTA DE AMPLITUD');
axis([-0.02,0.55,-0.05,1.05]);
xlabel('HZ');
ylabel('Amplitud');
grid;
PROBLEMA 5.

Diseñe un filtro de paso de banda utilizando una técnica de diseño de ventana fija que tenga la longitud mínima y
que satisfaga las siguientes especificaciones.

 borde inferior de la banda de retención = 0,3π


 borde superior de la banda de retención = 0.6π
 borde inferior de la banda de paso = 0.4π
 borde superior de la banda de paso = 0.5π
 As = 40 dB
 Rp =0 .5 dB.

Solución: Por método de Kaiser, observamos que se puede diseñar el mismo filtro de paso banda.
clc; close all;
% ------DISEÑO DE UN FILTRO DIGITAL PASABANDA mediante ventaneo------
%% Specifications:
ws1 = 0.3*pi; %borde inferior de la banda stop// lower stopband edge
wp1 = 0.4*pi; %Borde inferior de pasabanda//lower passband edge
wp2 = 0.5*pi; %Borde superior de la banda de paso//upper passband edge
ws2 = 0.6*pi; %Borde superior de la banda stop//upper stopband edge
Rp = 0.5; % Rizado de la banda de paso
As = 40; % Atenuacion del rechazo banda %

%% ---------Definiendo la ventana Kaiser--------------------------------


% Determine Kaiser Window Parameters
tr_banda = abs(min((wp1-ws1),(ws2-wp2)));%Banda de transicion
M = ceil((As-7.95)/(2.285*tr_banda)+1)+1;%Condicion de Kaiser
M = 2*floor(M/2)+3, % Elegir M impar // M=49
n = [0:1:M-1]; beta = 0.1102*(As-8.7);
wn = (kaiser(M,beta))'; % Kaiser Window

%% --------------------Generando el filtro ideal-------------------------

wc1 = (ws1+wp1)/2; wc2 = (ws2+wp2)/2;


hd = ideal_lp(wc2,M)-ideal_lp(wc1,M);

%% ------ Realizando la multiplicacion ventana con filtro ideal----------


h = hd .* wn;
[mag,pha,w,db] = freqz_m(h,1);
delta_w = pi/500;
Rpd = -min(db(ceil(wp1/delta_w)+1:floor(wp2/delta_w))), % Ondulación de la banda de
paso real
Rpd = 0.1872
Asd = floor(-max(db(1:floor(ws1/delta_w)))), % Atenuacion Actual
Asd = 40
% %% Grafica de respuesta del Filtro
%% -------------------- Graficando --------------------------------------
f= figure(1);
set(f,'NumberTitle','off','Name','PROBLEMA4');
subplot(3,1,1);
stem(n,hd,'r');
title('Respuesta del Impulso Ideal');
axis([-1,M,min(hd)-0.1,max(hd)+0.1]);
xlabel('n');
ylabel('h_d(n)');
grid on
subplot(3,1,2);
f= stem(n,wn,'b');
axis([-1,M,-0.1,1.1]);
xlabel('n');
ylabel('w_{ham}(n)');
title('Ventana Kaiser');
grid on

subplot(3,1,3);
f = stem(n,hd,'g');
title('RESPUESTA DEL IMPULSO ACTUAL');
axis([-1,M,min(hd)-0.1,max(hd)+0.1]);
xlabel('n');
ylabel('h(n)');
grid on

figure(2)
f=subplot(2,1,1);
plot(w/pi,db,'linewidth',1);
title('RESPUESTA DE MAGNITUD EN DB');
axis([0,1,-As-30,5]);
xlabel('\omega/\pi'); ylabel('Decibels');
grid;
subplot(2,1,2);
plot(w/pi,mag,'linewidth',1);
title('Apmlitude Response');
axis([0,1,-0.05,1.05]);
xlabel('\omega/\pi');
ylabel('Amplitude');
grid;
PROBLEMA 5.

Diseñar un Filtro paso bajo. Elija la ventana de Kaiser para diseñar el filtro de paso bajo necesario.
wp =0.2*pi; ws =0.3*pi;
As = 50;
tr_width = ws - wp;
M = ceil((As-7.95)/(2.285*tr_width)+1) + 1;
M = 61;
n=[0:1:M-1]; beta = (0.1102*(As-8.7));
beta = 4.5513;
wc = (ws+wp)/2; hd = ideal_lp(wc,M);
wn= (kaiser(M,beta))'; h = hd .* wn;
[mag,pha,w,db] = freqz_m(h,[1]); delta_w = 2*pi/1000;
As = -round(max(db(ws/delta_w+1:1:501))) % Min Stopband Attenuation
As = 52
% Plots
subplot(2,2,1);
stem(n,hd,'r');
title('RESPUESTA IDEAL DEL IMPULSO')
axis([10 50 -0.1 0.3]);
xlabel('n');
ylabel('hd(n)')
grid on;
subplot(2,2,2);
stem(n,wn,'s');title('VENTANA DE KAISER')
axis([0 M-1 0 1.1]);
xlabel('n');
ylabel('w(n)')
grid on
subplot(2,2,3);
stem(n,h,'m');title('RESPUESTA DEL IMPULSO ACTUAL')
axis([10 50 -0.1 0.3]);
xlabel('n');
ylabel('h(n)')
grid on
subplot(2,2,4);
plot((w/pi)/(2*pi),db,'g');
title('RESPUESTA DE LA MAGNITUD EN DB');grid
axis([0 0.17 -120 10]);
xlabel('FRECUENCIA EN HZ');
ylabel('Decibels')

También podría gustarte