Files
Filtros_analogicos/Filtro passivo/Ex_7_3.m

92 lines
1.8 KiB
Matlab

clear,clc
%--------- Especificações
flp = 25e3; wlp = 2*pi*flp;
fup = 35e3; wup = 2*pi*fup;
fls = 10e3; wls = 2*pi*fls;
fus = 50e3; wus = 2*pi*fus;
Rp = 0.1; %ripple
Ap = mag2db(sqrt(2));
As = 30;
Rs = 1; Rl = 1;
%--------- Ajuste da simetria das especificações
f0 = sqrt(flp*fup); w0 = 2*pi*f0;
fls = f0^2/fus
BWp = fup-flp;
BWs1 = fus-fls;
%----- determinação da ordem
epsl = sqrt(10^(0.1*Rp)-1);
wp = 1;
%--------- Procedimento iterativo para determinar a ordem
% Ap @ 1 rad/s -> Rp @ ??? rad/s
% TESTE COM As
ws = BWs1/BWp;
nteste = 0;
flag_run = true;
while flag_run
nteste = nteste+1;
OMEGA_Ap = cosh(1/nteste*(acosh(sqrt(db2mag(Ap)^2-1)/epsl)));
n = cheb1ord(1/OMEGA_Ap,ws,Rp,As,'s');
if nteste==n
flag_run = false;
end
end
n
%--------- Algoritmo de síntese
% CUIDADO: circuito provê Rp @ 1rad/s
if mod(n,2)==1
alpha = 4*Rs*Rl/(Rs+Rl)^2;
else
alpha = 4*Rs*Rl*(epsl^2+1)/(Rs+Rl)^2;
end
eta = sinh(1/n*asinh(1/epsl));
gama = sinh(1/n*asinh(sqrt(1-alpha)/epsl));
for k = 1:n
a(k) = sin( (2*k-1)*pi/2/n );
b(k) = eta^2+gama^2-2*eta*gama*cos(k*pi/n)+sin(k*pi/n)^2;
end
g(1) = 2*a(1)/(eta-gama);
for k=2:n
g(k) = 4*a(k)*a(k-1)/b(k-1)/g(k-1);
end
% g contém as reatâncias do ckt LC
% [tanh(0.5*asinh(1/epsl))^2 coth(0.5*asinh(1/epsl))^2] % teste para rede Pi ou T
% reescalonamento em frequência
% Rp @ 1 rad/s ----> Ap @ 1 rad/s
OMEGA_Ap = cosh(1/n*(acosh(sqrt(db2mag(Ap)^2-1)/epsl)));
FSF = 1/OMEGA_Ap;
g = g/FSF;
% Escolhida a configuração T
L1 = g(1); C2 = g(2); L3 = g(3);
%--------- Desnormalização
FSF = 2*pi*BWp;
Z = 50;
L1 = L1/FSF*Z
C2 = C2/FSF/Z
L3 = L3/FSF*Z
% 2) Transformação em frequência
% LP -> BP
C1 = 1/L1/w0^2
L2 = 1/C2/w0^2
C3 = 1/L3/w0^2
% Para a análise pós-projeto
Rs = 150; Rl = 300;