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

1

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

El problema es que el gráfico de fase no coincide con el gráfico de magnitud. La gráfica de fase se ve como la gráfica de magnitud invertida. ¿Cómo es esto posible?

He adjuntado mi código de Matlab y una figura

(el gráfico superior es la magnitud y el gráfico inferior es la fase)

Aquí también está mi código de Matlab y la función que quiero trazar. Mi pregunta es: ¿qué está mal con mi código y cómo es 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)
    
pregunta Goldname

1 respuesta

3

El uso de un espaciado lineal para las muestras en un gráfico logarítmico da un resultado extraño porque en el gráfico los puntos ya no están separados por igual. Modificar el código para mostrar los puntos calculados revela el problema:

Esmejorusarunespaciadologarítmicocomosemuestraacontinuación.Tambiénhedesenvueltolafase.

numElem=2000;%%-->w=linspace(1,2*pi*10^20,numElem);w=logspace(0,log10(2*pi*10^20),numElem);wRes=2*pi*10^9;%%InsertwRes(resonantfrequency)forn=1:numElemifw(n)>wResw=[w(1:n-1),wRes,w(n:numElem)];resLocation=n;breakendendfreq=w./(2*pi);lambda=299792458./freq;%BetaB=pi/2.*w./wRes;B(resLocation)=pi/2;%Distanced=lambda./4;Z0=50;%OhmsC=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,':*')

Loquedaelsiguienteresultado:

    
respondido por el Mario

Lea otras preguntas en las etiquetas