% Exemplo 16.13 - Circuito passa-alta
clear all
close all
clc

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Plotando o gráfico do módulo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tau = 0.1;
w = logspace(-1, 3);
for i = 1:length(w)
    MdB(i) = mag2db(sqrt(w(i)^2/(w(i)^2+(1/tau)^2))); 
end
figure
semilogx(w,MdB,'k','LineWidth',2);
axis([10^(-1) 10^3 -50 10])
grid on
hold on

% Plotando assíntotas considerando H=H1*H2
% H1:
w = [10^(-1) 10^3]; 
MA = [-20+20*log10(w(1)) -20+20*log10(w(2))];
plot(w,MA,'b:','LineWidth',2);

% H2:
wb = [10^(-1) 10^1]; % Baixa frequência até a frequência de corte wc=10
MAb = [0 0];         % Assíntota da magnitude para baixa frequência
plot(wb,MAb,'b:','LineWidth',2);

wa = [10^1 10^3];   % Alta frequência a partir da frequência wc=100
MAa = [20-20*log10(wa(1)) 20-20*log10(wa(2))];  % Assíntota da magnitude 
                                                % para alta frequência   
plot(wa,MAa,'b:','LineWidth',2);

% H1H2:
w = [10^(-1) 10^1]; 
M = [-20+20*log10(w(1)) -20+20*log10(w(2))];         
plot(w,M,'b','LineWidth',2);

w = [10^1 10^3];   
M = [0 0];
plot(w,M,'b','LineWidth',2);

title('Diagrama assintótico de módulo')
xlabel('\omega')
ylabel('M_{dB}(\omega)')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Plotando o gráfico da fase
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

w = logspace(-2, 4);
for i = 1:length(w)
    Phi(i) = 90-atan(w(i)/10)*180/pi; 
end
figure
semilogx(w,Phi,'k','LineWidth',2);
axis([10^(-1) 10^3 -100 100])
grid on
hold on

% Plotando assíntotas considerando H=H1*H2
% H1:
w = [10^(-1) 10^(3)]; 
PA = [90 90];         
plot(w,PA,'b:','LineWidth',2);

% H2:
wb = [10^(-1) 10^0]; % Baixa frequência até w=0.1*wc=10^-1
PAb = [0 0];         % Assíntota de fase para baixa frequência
plot(wb,PAb,'b:','LineWidth',2);

w = [10^(0) 10^2];      % Reta que liga w=0.1*wc a 10*wc
PA = [0 -90];           % Assíntota da fase para frequencias próximas a wc
plot(w,PA,'b:','LineWidth',2);

wa = [10^2 10^3];   % Alta frequência a partir de w=10*wc
PAa = [-90 -90];    % Assíntota de fase para alta frequência 
plot(wa,PAa,'b:','LineWidth',2);

% H1H2:
w = [10^(-1) 10^0]; 
P = [90 90];         
plot(w,P,'b','LineWidth',2);

w = [10^0 10^2];   
P = [90 0];
plot(w,P,'b','LineWidth',2);

w = [10^2 10^3];   
P = [0 0];     
plot(w,P,'b','LineWidth',2);

title('Diagrama assintótico de fase')
xlabel('\omega')
ylabel('\Phi(\omega)')
