exercise 5.8
ZIP with MATLAB scripts and note:
exercise 5.8 notes:
Zin_TL_lossy=Z0*(ZL+Z0*tanh(gamma*L))/(Z0+ZL*tanh(gamma*L))
gamma=alpha+1j*beta
alpha: attenuation constant Np/m
beta: propgation constant
L: Transmission Line length
beta*L=2*pi*D
when considering lossy TL: gamma*L=alpha*L+1j*beta*L
gamma*L=alpha*D*lambda+1j*2*pi*D
Zin_oc_stub_lossy=Z0/tanh(gamma*L)
Using the following trigonometric relations:
-
tanh(x+y)=(tanh(x)+tanh(y))/(1+tanh(x)*tanh(y))
-
when yÎ Im(y)=0, tanh(1j*y)=1j*tan(y)
then these 2 expressions should be equivalent for an Open Circuit (OC) lossy stub input impedance:
-
Zin_oc_stub=Z0*(tanh(alpha*L)+1j*tan(beta*L))/(1+1j*tanh(alpha*L)*tan(beta*L))
-
Zin_oc_stub=Z0/tanh(alpha*D*lambda+1j*2*pi*D)
alpha_range=[0.0001:0.0001:1];
Z0=50;
dD=.01;d_range=[0:dD:1];
[Alpha,D]=meshgrid(alpha_range,d_range);
f0=2e9;c0=2.998e8;lambda=c0/f0
Zin_oc_stub=Z0*(tanh(Alpha.*D*lambda)+1j.*tan(2*pi*D))./…
(1+1j*tanh(Alpha.*D*lambda).*tan(2*pi*D));
hf1=figure(1);hs1=surf(Alpha,D,imag(Zin_oc_stub));
hs1.EdgeColor='none'
xlabel('\alpha');ylabel('D');title('im(Zin)')
campos(1e3*[-0.006295 -0.003067 6.419534])
campos(1e4*[.000050 .000050 1.732050])
the reactance peaks are the horizontal yellow trace,
for any alpha if D a bit below 1/4 or decreasing with alpha increasing when D a bit below 3/4.
hf1.Position=[680 252 895 704];hf1.OuterPosition=[672 244 911 797]
hf1.InnerPosition=[680 252 895 704]
campos(1e3*[-0.005877 .002462 8.832333])
max(max(imag(Zin_oc_stub)))
min(min(imag(Zin_oc_stub)))
about 800 ohm of reactance for these specific f0 and alpha values.
= 7.947272395843736e+02
When it's said 'small alpha', it means alpha*L <<1 same as D<<lambda/alpha,
alpha_range=[.0001:.00001:.001];
[Alpha,D]=meshgrid(alpha_range,d_range);
imZin_oc_stub=imag(Z0*(tanh(Alpha.*D*lambda)+1j.*tan(2*pi*D))./…
(1+1j*tanh(Alpha.*D*lambda).*tan(2*pi*D)));
hf2=figure(2);hs2=surf(Alpha,D,imZin_oc_stub);
hs2.EdgeColor='none'
xlabel('\alpha');ylabel('D');title('im(Zin) \alphaL<<1')
max(max(imZin_oc_stub))
min(min(imZin_oc_stub))
alpha=.001
Zin_oc_stub=…
Z0*(tanh(alpha.*d_range*lambda)+1j.*tan(2*pi*d_range))./…
(1+1j*tanh(alpha.*d_range*lambda).*tan(2*pi*d_range));
im_Zin_oc_stub=imag(Zin_oc_stub);
n1=find(im_Zin_oc_stub==max(im_Zin_oc_stub))
the first reactance peak takes place at
D(n1)
For SC lossy stub, Zin is the inverse expression, with increasing D, the negative reactance shows up 1st, just before l/4 and just after l/4 the reactive peak takes place.
= 7.947269813043918e+02
= -7.947269360112038e+02
= 25
= 0.240000000000000
Achieving the objective of the 1st part of the exercise (OC stub) implies D value just below .25 or just below .75.
Both OC stub lengths (just below l/4 and 3l/4) show similar high reactance values.
While for the 2nd part of the exercise (SC stub) really negative reactance values are achieved when D just above .25 and .75 multiples.
-
OC lossy stub maximises reactance (X=Xmax) when D=1/4+n/2-dD , dD<<.25, dD>0, n=1, 2, 3 ..
-
OC lossy stub minimises reactance (X=-|Xmax|) when D=1/4+n/2+dD
Identities and approximations used in solutions manual:
-
th(x+1j*y)=(th(x)+th(y))/(1+th(x)*th(y))
-
th(1j*x)=1j*tan(x)
-
Taylor th(x)~x
-
Sought electric distance bL ~ p/2
-
tan(beta*L) ~ ±1/delta , delta<<1, delta>0 dD » ±alpha*L/(2*pi)
-
OC stub: beta*L=/2-delta then tg(pi/2-delta)=- cot(-delta) ~ 1/delta
-
SC stub: beta*L=p/2+delta then tg(pi/2+delta)=-cot(delta) ~ -1/delta
-
The solutions manual, after solving a 2nd degree equation reaches delta ~ ±alpha*L
as the optimal offset from beta*L = pi/2+n*pi/2 ± delta that maximises/minimises OC/SC reactance, respectively.
Reflection coefficient of lossy transmission line OC: gamma_Load=1 SC: gamma_Load=-1
[POZAR] page 81:
Is there a high reactance, probably not a peak, but large enough for the purpose of the design that has at the same time really small re(Zin)?
alpha=.001
D=[0:.0001:1];
% gamma=exp(-2*(alpha*D*c0/f0)).*exp(-1j*(4*pi*D+pi));
gamma=exp((-2*alpha*c0/f0-1j*4*pi)*D);
% yin=Yin*Z0
yin=(1-gamma)./(1+gamma);
re_yin=real(yin);
im_yin=imag(yin);
figure(101);
yyaxis left;plot(D,re_yin);grid on; ylabel('re(Yin/Y0)')
yyaxis right;plot(D,im_yin);grid on; ylabel('im(Yin/Y0)')
D=[0.249:.000001:.2599];
gamma=exp(-2*(alpha*D*c0/f0)).*exp(-1j*(4*pi*D));
yin=(1-gamma)./(1+gamma);
re_yin=real(yin);
im_yin=imag(yin);
figure(102);
yyaxis left
plot(D,re_yin);grid on; ylabel('re(Yin/Y0)')
yyaxis right
plot(D,im_yin);grid on; ylabel('im(Yin/Y0)')
axis(1e4*[0.0000249 0.0000250 -1.4956268 1.4169096])
axis([1e+4*[0.0000249 0.0000250 -2.2510932 4.4989067])
the initially chosen reactance around 800 ohm would have real component of 15 ohm, while a 200ohm reactance as suggested by the solutions manual,
with delta_offset ~ alpha*L would only have 0.25 ohm
So it's the tolerance to a real component, a small enough resistance what really makes a good capacitor.
Choose the OC / SC stubs then considering both, achieving a high reactance while keeping low enough the resistive component.
The sought |reactance| peaks in this exercise do not only happen near bL ~ p/2 (l/4) multiples, as the solutions manual but near multiples of l/4, those are of inductive nature, but also with opposite sign, to those peaks near 3l/4 multiples, these ones of capacitive behaviour.
On Smith Chart
For the OC lossy stub
hf7=figure(7);sm1=smithchart;
ax7=hf7.CurrentAxes
hold(ax7,'on')
alpha=.1
dD=.0001;
D=[dD:dD:2.5]; % Now D linear, not a mesh
c0=2.998e8
f0=5e8
Z0=50
Zin_oc_stub_lossy=Z0./tanh(alpha*D*c0/f0+1j*2*pi*D);
gamma_in=(Zin_oc_stub_lossy-Z0)./(Zin_oc_stub_lossy+Z0);
plot(ax7,real(gamma_in),imag(gamma_in),'Color','red','LineWidth',1.5);
hold all
For SC lossy stub it's same Smith chart plot turned upside down, also spinning CW but starting on [-1 0] also Z Smith Chart.
plot(ax7,[0 0],[-1 1],'Color','blue')
imgamma_in=imag(gamma_in);
regamma_in=real(gamma_in);
reactance highest (inductive peak) and lowest (capacitive peak) values happen when real(gamma) tends towards 0.
absregamma_in=abs(regamma_in);
[row_n1,col_n1,v1]=find(absregamma_in<.01)
plot(ax7,real(gamma_in(col_n1)),imag(gamma_in(col_n1)),'bo',…
'MarkerSize',15);
At what stub lengths do Open Circuits and Short Circuits take place?
hf7=figure(7);sm1=smithchart;
ax7=hf7.CurrentAxes
hold(ax7,'on')
% ZL=Inf
alpha=.1
dD=.0001;
D=[dD:dD:2.5]; % Now D linear, not a mesh
f0=5e8
Zin_oc_stub_lossy=Z0./tanh(alpha*D*c0/f0+1j*2*pi*D);
gamma_in=(Zin_oc_stub_lossy-Z0)./(Zin_oc_stub_lossy+Z0);
plot(ax7,real(gamma_in),imag(gamma_in),'Color','red','LineWidth',1.5)
hold all
plot(ax7,[-1 1],[0 0],'Color','blue')
imgamma_in=imag(gamma_in)
regamma_in=imag(gamma_in)
absimgamma_in=abs(imgamma_in);
[row_n1,col_n1,v1]=find(absimgamma_in<.01)
plot(ax7,real(gamma_in(col_n1)),imag(gamma_in(col_n1)),'bo',…
'MarkerSize',15);
From the Smith Chart, we can tell that for lossy stubs there's no way to null re(Zin) while obtaining high reactance on lossy OC stub.
So it's a trade-off: Select high enough reactance (Inductance sought) or low enough for capacitance, while keeping the resistive part low enough.
For instance, the ~800 ohm reactance mentioned above may have a fairly low real component,depending upon application. Narrowing D range.
Longer stubs show slightly increasing lambda/4 and 3*lambda/4 offset with increasing stub length.
This slightly increasing offset shows up when 1st calculating the reflection coefficient and then retrieving the impedance.
N_laps=10
D=[dD:dD:N_laps];
Zin_oc_stub_lossy=Z0./tanh(alpha*D*c0/f0+1j*2*pi*D);
log10_imag_Zin_oc_stub_lossy=10*log10(abs(imag(Zin_oc_stub_lossy)))
figure(200);plot(D,log10_imag_Zin_oc_stub_lossy)
axis([0 N_laps 0 30]);grid on
[pks,lks1]=findpeaks(log10_imag_Zin_oc_stub_lossy)
hold all
plot(D(lks1),log10_imag_Zin_oc_stub_lossy(lks1),'ro')
inv_log10_imag_Zin_oc_stub_lossy=1./log10_imag_Zin_oc_stub_lossy;
[valls,lks2]=findpeaks(log10_imag_Zin_oc_stub_lossy)
plot(D(lks2),inv_log10_imag_Zin_oc_stub_lossy(lks2),'go')
Such slightly increasing offset also shows up when directly using the impedance expression
D=[0:.0001:N_laps];
Zin_oc_stub_lossy=Z0./tanh(alpha*D*c0/f0+1j*2*pi*D);
taking log, just to locate the position of the reactance peaks, not the values
log10_imag_Zin_oc_stub_lossy=10*log10(abs(imag(Zin_oc_stub_lossy)))
plot(D,log10_imag_Zin_oc_stub_lossy)
axis([0 2.N_laps 0 30]);grid on
[pks,lks]=findpeaks(log10_imag_Zin_oc_stub_lossy)
hold all
plot(D(lks),log10_imag_Zin_oc_stub_lossy(lks),'ro')
so such abs(Reactance) paired peaks (OC stub) around lambda/4 3*lambda/4 multiples as function of D, D being fraction of wavelength lambda are:
D_pks=D(lks)
These are the peaks and valleys, close to lambda/4 multiples, interleaved.
Just the positions of the peaks are:
D_pks_max_X=sort([D_pks([1:4:end]) D_pks([2:4:end])])
=
Columns 1 through 3
0.495200000000000 0.504800000000000 0.990500000000000
Columns 4 through 6
1.009500000000000 1.485800000000000 1.514200000000000
Columns 7 through 9
1.981100000000000 2.018900000000000 2.476500000000000D
D_pks_max_X =
Columns 1 through 3
0.495200000000000 0.504800000000000 1.485800000000000
Columns 4 through 5
1.514200000000000 2.476500000000000
Attennuation constant alpha is supposed to be per length unit, independent of wavelength
Note that the solutions manual uses, without mentioning it, or even being told in the question an attenuation/lambda, not the standard attenuation per metre.
This way the solutions manual avoids having to define a particular frequency f0, as it should be the case.