¿Por qué la magnitud de la función de transferencia de mi gráfico muestra un filtro de paso de banda, pero un gráfico de fase extraño?

Estoy tratando de trazar una función de transferencia, y trazar la magnitud parece mostrar que es un filtro de paso de banda, lo que parece razonable.

El problema es que la gráfica de fase no coincide en absoluto con la gráfica de magnitud. La gráfica de fase se parece a la gráfica de magnitud invertida. ¿Cómo es esto posible?

He adjuntado mi código de Matlab y una figura.

(la gráfica superior es la magnitud y la gráfica inferior es la fase)Trama

Aquí también está mi código Matlab y la función que quiero trazar. Mi pregunta es: ¿qué está mal con mi código y cómo es esto posible en general?

numElem = 2000;
w = linspace(1,2*pi*10^20,numElem);
wRes = 2*pi*10^9;

%%Insert wRes (resonant frequency)
for n = 1:numElem
    if w(n) > wRes 
        w = [w(1:n - 1), wRes, w(n:numElem)];
        resLocation = n;
        break
    end
end

freq = w ./ (2*pi);
lambda = 299792458 ./ freq;

%Beta
B = pi/2 .* w ./wRes;
B(resLocation) = pi/2;

%Distance
d = lambda ./ 4;
Z0 = 50; %Ohms
C = 10^(-12);
L = 1/(wRes^2*C);
Zl = 1 ./ (j .* w .* C + 1 ./ (j .* w .* L));
y = 1./((Z0./Zl).^2 .* j.*sin(B .* d)/2 + exp(j .* B .* d).*(1 + Z0 ./ Zl))


Amplitude=20*log10(abs(y));
phase = angle(y)*180/pi;
subplot(211)
semilogx(w,Amplitude)
subplot(212)
semilogx(w,phase)

Respuestas (1)

El uso de un espaciado lineal para las muestras en una gráfica logarítmica da un resultado extraño porque en la gráfica los puntos ya no están igualmente espaciados. Modificar el código para mostrar los puntos calculados revela el problema:ingrese la descripción de la imagen aquí

Es mejor usar un espacio logarítmico como se muestra a continuación. También he desenvuelto la fase.

numElem = 2000;
%% --> w = linspace(1,2*pi*10^20,numElem);
w = logspace(0, log10(2*pi*10^20), numElem);
wRes = 2*pi*10^9;

%%Insert wRes (resonant frequency)
for n = 1:numElem
    if w(n) > wRes 
        w = [w(1:n - 1), wRes, w(n:numElem)];
        resLocation = n;
        break
    end
end

freq = w ./ (2*pi);
lambda = 299792458 ./ freq;

%Beta
B = pi/2 .* w ./wRes;
B(resLocation) = pi/2;

%Distance
d = lambda ./ 4;
Z0 = 50; %Ohms
C = 10^(-12);
L = 1/(wRes^2*C);
Zl = 1 ./ (j .* w .* C + 1 ./ (j .* w .* L));
y = 1./((Z0./Zl).^2 .* j.*sin(B .* d)/2 + exp(j .* B .* d).*(1 + Z0 ./ Zl))


Amplitude=20*log10(abs(y));
%% --> phase = angle(y)*180/pi;
phase = unwrap(angle(y))*180/pi;
subplot(211)
semilogx(w,Amplitude, ':*')
subplot(212)
semilogx(w,phase, ':*')

Lo que da el siguiente resultado:ingrese la descripción de la imagen aquí

Parece extraño que la asíntota de fase HF no sea un múltiplo entero de 90 grados