B.7.22 Com relação ao Problema B.7.21, é desejável traçar apenas Y_{1}(j \omega) / U_{1}(j \omega) para \omega>0. Escreva um programa em MATLAB para gerar esse diagrama.
Se for desejável traçar Y_{1}(j \omega) / U_{1}(j \omega) para -\infty<\omega<\infty, que mudanças devem ser feitas no programa em MATLAB?

Passo 1

O enunciado pede um programa em MATLAB que plote a resposta em frequência
H(j\omega)=\frac{Y_{1}(j\omega)}{U_{1}(j\omega)}
para frequências positivas \omega>0. Precisamos de:
– os coeficientes do numerador e denominador de H(s) (obtidos no problema B.7.21)
– um vetor de frequências \omega>0
– a função freqs para calcular H(j\omega)
– gráficos de magnitude e de fase.

Passo 2

Defina em MATLAB os vetores de coeficientes do numerador e do denominador de H(s). Por exemplo, se
H(s)=\frac{b_0 + b_1 s + b_2 s^2}{a_0 + a_1 s + a_2 s^2}\,,
então no script faça:
b = [b2 b1 b0]; % substitua b2,b1,b0 pelos valores obtidos
a = [a2 a1 a0]; % substitua a2,a1,a0 pelos valores obtidos

Passo 3

Constitua um vetor de frequências positivas. Por exemplo, usando escala logarítmica:
omega = logspace(-1,2,1000); % de 10^-1 a \(10^2\) rad/s, 1000 pontos

Passo 4

Calcule a resposta em frequência e extraia magnitude e fase:
H = freqs(b,a,omega); % H(jω) para cada valor de omega
magH = abs(H); % |H(jω)|
phaseH = angle(H)*180/pi; % fase em graus

Passo 5

Trace os gráficos de magnitude e fase:
figure
subplot(2,1,1)
loglog(omega,magH)
grid on
xlabel('\omega (rad/s)')
ylabel('|H(j\omega)|')
title('Magnitude de H(j\omega)')

subplot(2,1,2)
semilogx(omega,phaseH)
grid on
xlabel('\omega (rad/s)')
ylabel('Fase (graus)')
title('Fase de H(j\omega)')

Passo 6

Para plotar em todo o eixo real de frequência -\infty<\omega<\infty, basta estender o vetor omega para incluir valores negativos simétricos. Por exemplo, logo após gerar o omega positivo, faça:
omega = [-fliplr(omega) omega]; % simétrico em torno de zero
H = freqs(b,a,omega); % recalcula H(jω) para ω negativo e positivo
% em seguida repete o plot acima usando o novo vetor omega e H

Resposta

% Passo 2: coeficientes de H(s)=Y1(s)/U1(s)
b = [b2 b1 b0]; % numerador
a = [a2 a1 a0]; % denominador

% Passo 3: frequências positivas
omega = logspace(-1,2,1000);

% Passo 4: resposta em frequência
H = freqs(b,a,omega);
magH = abs(H);
phaseH = angle(H)*180/pi;

% Passo 5: plota magnitude e fase
figure
subplot(2,1,1)
loglog(omega,magH)
grid on
xlabel('\omega (rad/s)')
ylabel('|H(j\omega)|')
title('Magnitude de H(j\omega)')

subplot(2,1,2)
semilogx(omega,phaseH)
grid on
xlabel('\omega (rad/s)')
ylabel('Fase (graus)')
title('Fase de H(j\omega)')

% Passo 6: para -∞<ω<∞
omega = [-fliplr(omega) omega]; % inclui frequências negativas
H = freqs(b,a,omega);
% repita o plot acima com o novo omega e H

Exercícios relacionados