top of page

exercise 5.7

ZIP with MATLAB scripts and note:

Small tag OK.jpg
pozar_05_exercise_07_question.jpg

 exercise 5.7 notes:

Small tag OK.jpg

For instance if Z1=50 ohm, then

 

Z0=40;ZL=200+1j*100

hf1=figure(1);sm1=smithchart;

ax1=hf1.CurrentAxes

hold(ax1,'on')

 

Z1=50;

gamma_L=(ZL-Z1)/(ZL+Z1);

p1_ax1=plot(ax1,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

[x_GC,y_GC]=Smith_plotGammaCircle(ax1,ZL,Z1,[1,0,0]);

 

gamma_TL=(Z0-Z1)/(Z0+Z1);

p3_ax1=plot(ax1,real(gamma_TL),imag(gamma_TL),'go','LineWidth',1.5);

legend([p1_ax1 p3_ax1],'ZLoad','Z1=50\Omega')

 

It's about bringing the Load (blue impedance) to the generator, green impedance.

 

 

 

 

 

So, for Z1=50 ohm

 

gamma_TL0=(Z0-Z1)/(Z0+Z1)

 

Let's increase Z1 to find out  whether Z1 has to increase or degrease.

 

Now Z1=65 ohm

 

hf2=figure(2);sm2=smithchart;

ax2=hf2.CurrentAxes

hold(ax2,'on')

 

Z1=65;

gamma_L=(ZL-Z1)/(ZL+Z1);

p1_ax2=plot(ax2,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

[x_GC,y_GC]=Smith_plotGammaCircle(ax2,ZL,Z1,[1,0,0]);

 

gamma_TL=(Z0-Z1)/(Z0+Z1);

p3_ax2=plot(ax2,real(gamma_TL),imag(gamma_TL),'go','LineWidth',1.5);

legend([p1_ax2 p3_ax2],'ZLoad','Z1=65\Omega')

 

 

Increasing Z1, not decreasing, is the right way to proceed, because the SWR circle radius decreases and brings both load and source closer on the Smith chart, despite source (TL) also slightly departing towards short circuit along null reactance axis.

 

 

 

gamma_TL0=(Z0-Z1)/(Z0+Z1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

gamma_TL0 =  -0.111111111111111

 

 

 

 

 

 

 

 

 

 

 

 

 

=  -0.238095238095238

001.jpg
002.jpg

So, at 1W step, what value Z1 has to reach for the characteristic impedance of this transmission line section to meet the SWR circle of ZL?

legend('off')

 

P=[real(gamma_TL0) real(gamma_TL);imag(gamma_TL0) imag(gamma_TL)]

 

[xc,yc]=intersections(x_GC,y_GC,P(1,:),P(2,:))

 

legend('off')

 

while isempty(xc) && isempty(yc)

   Z1=Z1+1

   gamma_L=(ZL-Z1)/(ZL+Z1);

   hold all;

   plot(ax3,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

   [x_GC,y_GC]=Smith_plotGammaCircle(ax,ZL,Z1);

   gamma_TL=(Z0-Z1)/(Z0+Z1);

   plot(real(gamma_TL),imag(gamma_TL),'go','LineWidth',1.5);

   P=[real(gamma_TL0) real(gamma_TL); imag(gamma_TL0) imag(gamma_TL)]

   [xc,yc]=intersections(x_GC,y_GC,P(1,:),P(2,:))

end

 

 

 

 

 

 

 

 

 

Z1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z1 =   103

003.jpg

to get accuracy down to 2 decimals:

Z0=40;ZL=200+1j*100

sm1=smithchart;ax=gca;hold all;Z1=50;

gamma_L=(ZL-Z1)/(ZL+Z1);gamma_TL0=(Z0-Z1)/(Z0+Z1);

plot(real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

[x_GC,y_GC]=Smith_plotGammaCircle(ax,ZL,Z1);

plot(real(gamma_TL0),imag(gamma_TL0),'go','LineWidth',1.5);

P=[real(gamma_TL0) real(gamma_TL); imag(gamma_TL0) imag(gamma_TL)]

[xc,yc]=intersections(x_GC,y_GC,P(1,:),P(2,:))

while isempty(xc) && isempty(yc)

   Z1=Z1+.01

   gamma_L=(ZL-Z1)/(ZL+Z1);

   [x_GC,y_GC]=Smith_plotGammaCircle(ax,ZL,Z1);

   gamma_TL=(Z0-Z1)/(Z0+Z1);

  

   P=[real(gamma_TL0) real(gamma_TL); imag(gamma_TL0) imag(gamma_TL)]

   [xc,yc]=intersections(x_GC,y_GC,P(1,:),P(2,:))

end

 

hold all;plot(real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

plot(real(gamma_TL),imag(gamma_TL),'go','LineWidth',1.5);

 

 

 

 

Z1

020.jpg

 

 

Z1 =     1.024700000000169e+02

All that's left is to calculate how long does the Z1 TL has to run to get from load to source:

hf4=figure(4);sm4=smithchart;ax4=hf4.CurrentAxes;hold(ax4,'on');

gamma_L=(ZL-Z1)/(ZL+Z1);gamma_TL0=(Z0-Z1)/(Z0+Z1);

plot(ax4,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

[x_GC,y_GC]=Smith_plotGammaCircle(ax4,ZL,Z1,[1 0 0]);

plot(ax4,real(gamma_TL0),imag(gamma_TL0),'go','LineWidth',1.5);

 

a1=angle(gamma_L);a2=angle(gamma_TL0);da=.01;a12=0

m1=abs(gamma_L)

while a1<a2*.99 || a1>a2*1.01

   a1=a1-da;

   a12=a12+da; % load to generator CW

   [re_gamma,im_gamma]=pol2cart(a1,m1)

   plot(ax4,re_gamma,im_gamma,'bo','LineWidth',1.5)

   if a1<0    a1=2*pi-abs(a1);  end;         % remove angle sign ambiguity

end

 

 

 

 

 

 

 

 

 

 

 

a12_degree=a12*180/pi % da1 in degree, angle on Smith chart

 

D12_lambda= a12*.25/pi % TL length as fraction of wavelengths

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a12_degree =     2.056918484519637e+02

 

D12_lambda = 0.285683122849950

010.jpg

The solutions manual solves the real and imaginary parts equations directly, but the 2nd degree equation that is solved assumes Z1 real.

 

However, Z1 may take any complex value, provided it's within the passive components Smith chart circle r=1, a SWR circle eventually hits Z1 and  then a TL length can be calculated.

 

If real(ZL) still being larger than Z0 but gets closer to Z0, for instance:

Z0=40;

ZL=50+1j*100

Z1=50;

hf5=figure(5);sm5=smithchart;ax5=hf5.CurrentAxes;hold(ax5,'on');

 

gamma_L=(ZL-Z1)/(ZL+Z1);

gamma_TL0=(Z0-Z1)/(Z0+Z1);

 

plot(ax5,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

[x_GC,y_GC]=Smith_plotGammaCircle(ax5,ZL,Z1,[1,.5,.5]);

plot(ax5,real(gamma_TL0),imag(gamma_TL0),'go','LineWidth',1.5);

 

P=[real(gamma_TL0) real(gamma_TL); imag(gamma_TL0) imag(gamma_TL)];

[xc,yc]=intersections(x_GC,y_GC,P(1,:),P(2,:))

 

while isempty(xc) && isempty(yc)

   Z1=Z1+.01;

   gamma_L=(ZL-Z1)/(ZL+Z1);

  

   [x_GC,y_GC]=Smith_plotGammaCircle(ax5,ZL,Z1,[1,.5,.5]);

   gamma_TL=(Z0-Z1)/(Z0+Z1);

  

   P=[real(gamma_TL0) real(gamma_TL); imag(gamma_TL0) imag(gamma_TL)];

   [xc,yc]=intersections(x_GC,y_GC,P(1,:),P(2,:));

end

 

plot(ax5,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

plot(ax5,real(gamma_TL),imag(gamma_TL),'go','LineWidth',1.5);

 

Z1

005.jpg

Z1 =  2.049399999999600e+02

hf6=figure(6);sm6=smithchart;ax6=hf6.CurrentAxes;hold(ax6,'on');

gamma_L=(ZL-Z1)/(ZL+Z1);gamma_TL0=(Z0-Z1)/(Z0+Z1);

plot(ax6,real(gamma_L),imag(gamma_L),'bo','LineWidth',1.5);

[x_GC,y_GC]=Smith_plotGammaCircle(ax6,ZL,Z1,[1 0 0]);

plot(ax6,real(gamma_TL0),imag(gamma_TL0),'go','LineWidth',1.5);

 

a1=angle(gamma_L);a2=angle(gamma_TL0);da=.01;a12=0

m1=abs(gamma_L)

while a1<a2*.99 || a1>a2*1.01

   a1=a1-da;

   a12=a12+da; % load to generator CW

   [re_gamma,im_gamma]=pol2cart(a1,m1)

   plot(ax6,re_gamma,im_gamma,'bo','LineWidth',1.5)

   if a1<0    a1=2*pi-abs(a1);  end;     % remove angle sign ambiguity

end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a12_degree=a12*180/pi % da1 in degree

D12_lambda= a12*.25/(pi) % D TL fraction of wavelengths

006.jpg

a12_degree =  3.042405892144632e+02

D12_lambda =   0.422556373908977

Z1 increases, may be to the point that for instance microstrip phyisical requirements may not be practical, like a too narrow circuit track.

 

If real(ZL)=Z0, the the transmission line electrical length is directly related to angle(ZL).

 

If real(ZL)>Z0 the previous loop doesn't find any value of Z1 that matches the load, so this approach may be useful with sections of transmission lines that have characteristic impedance Z1 inside the SWR only.

bottom of page