the literature source is available here:
https://www.amazon.co.uk/Microwave-...-1&keywords=David+Pozar+Microwave+Engineering
There's also a solutions manual available here:
https://www.scribd.com/doc/176505749/Microwave-engineering-pozar-4th-Ed-solutions-manual
the question
Z0=50 % ohm
Zgen=50
Vgen=10 % Volt
ZL=100
syms lambda
alpha_dB=.5/lambda % [dB/lambda]
Np2dB=10*log10(exp(1)^2)
alpha_Np=alpha_dB/Np2dB
beta=2*pi/lambda % [m^-1]
L=2.3*lambda % length of transmission line [m]
gamma=alpha_Np+1j*beta
gamma_L=gamma*L
gamma_L_rad=double(gamma_L) % = 0.1323+14.4513i
sometimes for the complex propagation constant gamma, units Np/m and degree are mixed as done in the solutions manual for this exercise.
For this exercise the solutions manual shows gamma=.1325 +1j*108º. 108 degree is the remainder of imag(gamma_degree)/360
14.4513*180/pi-floor(14.4513*180/pi/360)*360
reflection coefficients on both sides of the transmission line
refl_Load=(ZL-Z0)/(ZL+Z0)
refl_gen=refl_Load*exp(-2*gamma_L_rad)
TL input impedance (from generator)
Zin=Z0*(ZL+Z0*tanh(gamma_L_rad))/(Z0+ZL*tanh(gamma_L_rad)
Results:
alpha_dB
=1/(2*lambda)
Np2dB
= 8.685889638065037
alpha_Np
=281474976710656/(4889721167171369*lambda)
gamma_L_rad
= 0.132398642847158 +14.451326206513048i
refl_Load
= 0.333333333333333
refl_gen
= -0.206936161907528 + 0.150347922208021i
Zin
= 31.588363022059227 +10.163454575205781i
TL input power
Pin=(abs(Vgen*Zin/(Zgen+Zin)))^2/(2*Z0*(1-(abs(refl_gen))^2)*exp(2*real(gamma_L_rad))
= 0.198382847405214
PLoad power reaching load
PLoad=(abs(Vgen*Zin/(Zgen+Zin)))^2/(2*Z0)*(1-(abs(refl_Load))^2)
= 0.144789944222718
Power loss
Ploss=Pin-PLoad
= 0.053592903182496
Comment 1: perhaps of use too, the maximum available power from generator:
Pmax_gen=.5*(abs(Vgen))^2/(4*real(Zgen))
Pmax_gen = 0.25
Alternatively
alpha_dB and alpha_Np are per meter.
alpha=double(alpha_Np*L)
= 0.132398642847158
Pout=Pin*exp(-2*alpha)
= 0.152231357248704
Error in the solutions manual: assumes that both generator and load both matched; generator to TL and TL to load. And then calculates V0plus
absV0plus_all_match=abs(Vgen/2*exp(-real(gamma_L_rad)))
= 4.379958588165586
It's reasonable to consider that V0plus =Vgen*Zin/(Zgen+Zin)*(exp(g_L)+refl_gen*exp(-gamma_L_rad)) should be used, 2.89a in [POZAR] pg81
Vin=Vgen*Zin/(Zin+Zgen)*1/(exp(gamma_L_rad)+refl_gen*exp(-gamma_L_rad))
absVin=abs(Vin)
Vin
= 0.155584072758048 - 3.279133570422918i
absVin
= 3.282822471040817
would be the correct start voltage for the procedure followed in the solutions manual.
But because 2.92/93/94 are readily available, the answers have already been provided.
This Pin is the same as the above used
Pin=(abs(Vgen*Zin/(Zgen+Zin)))^2/(2*Z0*(1-(abs(refl_gen))^2)*exp(2*real(gamma_L_rad))
= 4.035947066681602
And it's not the other apparently correct
Vgen*Zin/(Zin+Zgen)
abs(Vgen*Zin/(Zin+Zgen))
Loss_dB=double(alpha_dB*L)
10*log10(Pin)-10*log10(PLoad)
= 1.367657186248119
10*log10(exp(2*alpha))
= 1.150000000000000
0.21 dB missing, the perturbation method is not exact
Generator and TL are matched, but TL and load are not. And it's not the other apparently correct
Vgen*Zin/(Zin+Zgen)
= 3.965319190462363 + 0.751739611040107i
abs(Vgen*Zin/(Zin+Zgen))
= 4.035947066681602
Comment: Zin with lossless TL would be
Zin_lossless=Z0*(ZL+1j*Z0*tan(imag(gamma_L_rad)))/(Z0+1j*ZL*tan(imag(gamma_L_rad)))
= 26.928588541323347 +11.871170407231441i
same as
Zin_lossless=Z0*(ZL+1j*Z0*tan(2*pi*2.3))/(Z0+1j*ZL*tan(2*pi*2.3))
= 26.928588541323329 +11.871170407231373i
Now with Smith Chart:
sm1=smithchart; ax=gca; hold all;
refl_ZL=(ZL-Z0)/(ZL+Z0);
plot(ax,real(refl_ZL),imag(refl_ZL),...
'o','Color',[1 0 0],...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[.8 .2 .2],...
'MarkerSize',7) % ZL
plot(ax,refl_mod(end).*cos(a(end)),refl_mod(end).*sin(a(end)),...
'o','Color',[1 0 0],...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[.2 .8 .2],...
'MarkerSize',7) % Zin at generator
[x_swr,y_swr]=Smith_plotGammaCircle(ax,ZL,Z0,[1 .4 .4])
refl_in=refl_mod(end).*cos(a(end))+1j*refl_mod(end).*sin(a(end))
Zin_gen=Z0*(1+refl_in)/(1-refl_in)
[x_swr,y_swr]=Smith_plotGammaCircle(ax,Zin_gen,Z0,[.4 1 .4])
SWR_Load=(1+abs(refl_ZL))/(1-abs(refl_ZL))
SWR_gen=(1+abs(refl_in))/(1-abs(refl_in))
str_swr_load=['SWR Load = ' num2str(SWR_Load)]
str_swr_gen=['SWR Generator = ' num2str(SWR_gen)]
legend(ax,'ZL','Zgen',str_swr_load,str_swr_gen)
legend(ax,'off')
Smith_plotRefLine2PhaseCircle(ax,ZL,Z0,[.6 1 .6])
Smith_plotRefLine2PhaseCircle(ax,Zin_gen,Z0,[.6 1 .6])
syms lambda
alpha_dB=.5/lambda % [dB/lambda]
Np2dB=10*log10(exp(1)^2);alpha_Np=alpha_dB/Np2dB
beta=2*pi/lambda;L=2.3*lambda
g=alpha_Np+1j*beta % g=gamma=alpha+1j*beta
g_L=g*L;g_L=double(simplify(g_L))
angle to run along TL: beta*L=pi rad means 360º around Smith Chart
so to match the imag(g_L) angle with Smith chart angle, double it.
N1=100
da=2*pi/N1 % angle differential for 2*pi around Smith Chart = lambda/2
amount_full_turns=floor(14.4513*180/pi/360)
angle rads left when no full turns left
14.4513-floor(14.4513*180/pi/360)
amount_da_rem=floor((14.4513-floor(14.4513*180/pi/360))/da)
total amount angle steps needed to achieve N1 resolution
N2=N1*amount_full_turns+amount_da_rem
a0=angle(refl_ZL)
a=double(linspace(a0,2*imag(g_L),N2));
refl_mod=linspace(refl_ZL,refl_ZL*exp(-real(g_L)),N2)
plot(ax,refl_mod.*cos(a),refl_mod.*sin(a),…
'-','LineWidth',.5,'Color',[1 0 0])
plot(ax,refl_mod(end).*cos(a(end)),refl_mod(end).*sin(a(end)),…
'o','Color',[0 1 0],...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[.8 .2 .2],...
'MarkerSize',7) % ZL
axis([-0.4008 0.3832 -0.4103 0.3737])
Comment, possible error in solutions manual:
the value of tanh(gamma*L) does not correspond to tanh of the calculated gamma*L
It's actually increased by 1/exp(alpha*L) but it's not mentioned anywhere.
Comment, the following expressions shouldn't be used in this exercise because they are for lossless transmission lines only:
Vgen*Zin/(Zin+Zgen)*1/(exp(1j*imag(gamma_L_rad))+refl_Load*exp(-1j*imag(gamma_L_rad)))
abs(Vgen*Zin/(Zin+Zgen)*1/(exp(1j*imag(gamma_L_rad))+refl_Load*exp(-1j*imag(gamma_L_rad))))
Vgen*Z0/(Z0+Zgen)*exp(-1j*imag(gamma_L_rad))/(1-refl_Load*refl_gen*exp(-1j*2*imag(gamma_L_rad)))
abs(Vgen*Z0/(Z0+Zgen)*exp(-1j*imag(gamma_L_rad))/(1-refl_Load*refl_gen*exp(-1j*2*imag(gamma_L_rad))))
Custom support functions I have used:
1.- Smith_plotRefLine2PhaseCircle.m
function a=Smith_plotRefLine2PhaseCircle(ax,Z,Z0,colour)
% plot reference line from origin through ZL to outer phase reference circle
% added color option with field colour [r g b] r,g,b within [0 1]
gamma_L=(Z-Z0)/(Z+Z0)
a=angle(gamma_L)
plot(ax,[0 real(exp(1j*a))],[0 imag(exp(1j*a))],'Color',colour,'LineWidth',1)
function input_checks
[szc1 szc2]=size(colour);
if szc1>1 || szc2~=3
disp('\ncolour wrong amount elements\n');
return;
end
if max(colour>1) || min(colour<0)
disp('\ncolour component(s) out of range\n');
return;
end
if numel(Z0)>1
disp('\nZ0 cannot be vector\n');
return;
end
Z=Z( : );
[sz1 sz2]=size(Z);
cas=1;
if sz2>1
cas=2;
end
end
end
2.- Smith_plotGammaCircle.m
function [x_data,y_data]=Smith_plotGammaCircle(ax,Z,Z0,colour)
% plot SWR circle, lossless TL
% color format [r g b] each ranging[0 1] where 0:white 1:black
input_checks;
gamma=z2gamma(Z,Z0);
r=abs(gamma);
alpha=0:2*pi/100:2*pi;
hold all;
sub_hp2=plot(ax,r*cos(alpha),r*sin(alpha),'-','LineWidth',.5,'Color',colour);
x_data=sub_hp2.XData;
y_data=sub_hp2.YData;
function input_checks
[szc1 szc2]=size(colour);
if szc1>1 || szc2~=3
disp('\ncolour wrong amount elements\n');
return;
end
if max(colour>1) || min(colour<0)
disp('\ncolour component(s) out of range\n');
return;
end
if numel(Z0)>1
disp('\nZ0 cannot be vector\n');
return;
end
Z=Z( : );
[sz1 sz2]=size(Z);
cas=1;
if sz2>1
cas=2;
end
end
end
https://www.amazon.co.uk/Microwave-...-1&keywords=David+Pozar+Microwave+Engineering
There's also a solutions manual available here:
https://www.scribd.com/doc/176505749/Microwave-engineering-pozar-4th-Ed-solutions-manual
the question

Z0=50 % ohm
Zgen=50
Vgen=10 % Volt
ZL=100
syms lambda
alpha_dB=.5/lambda % [dB/lambda]
Np2dB=10*log10(exp(1)^2)
alpha_Np=alpha_dB/Np2dB
beta=2*pi/lambda % [m^-1]
L=2.3*lambda % length of transmission line [m]
gamma=alpha_Np+1j*beta
gamma_L=gamma*L
gamma_L_rad=double(gamma_L) % = 0.1323+14.4513i
sometimes for the complex propagation constant gamma, units Np/m and degree are mixed as done in the solutions manual for this exercise.
For this exercise the solutions manual shows gamma=.1325 +1j*108º. 108 degree is the remainder of imag(gamma_degree)/360
14.4513*180/pi-floor(14.4513*180/pi/360)*360
reflection coefficients on both sides of the transmission line
refl_Load=(ZL-Z0)/(ZL+Z0)
refl_gen=refl_Load*exp(-2*gamma_L_rad)
TL input impedance (from generator)
Zin=Z0*(ZL+Z0*tanh(gamma_L_rad))/(Z0+ZL*tanh(gamma_L_rad)
Results:
alpha_dB
=1/(2*lambda)
Np2dB
= 8.685889638065037
alpha_Np
=281474976710656/(4889721167171369*lambda)
gamma_L_rad
= 0.132398642847158 +14.451326206513048i
refl_Load
= 0.333333333333333
refl_gen
= -0.206936161907528 + 0.150347922208021i
Zin
= 31.588363022059227 +10.163454575205781i
TL input power
Pin=(abs(Vgen*Zin/(Zgen+Zin)))^2/(2*Z0*(1-(abs(refl_gen))^2)*exp(2*real(gamma_L_rad))
= 0.198382847405214
PLoad power reaching load
PLoad=(abs(Vgen*Zin/(Zgen+Zin)))^2/(2*Z0)*(1-(abs(refl_Load))^2)
= 0.144789944222718
Power loss
Ploss=Pin-PLoad
= 0.053592903182496
Comment 1: perhaps of use too, the maximum available power from generator:
Pmax_gen=.5*(abs(Vgen))^2/(4*real(Zgen))
Pmax_gen = 0.25
Alternatively
alpha_dB and alpha_Np are per meter.
alpha=double(alpha_Np*L)
= 0.132398642847158
Pout=Pin*exp(-2*alpha)
= 0.152231357248704
Error in the solutions manual: assumes that both generator and load both matched; generator to TL and TL to load. And then calculates V0plus
absV0plus_all_match=abs(Vgen/2*exp(-real(gamma_L_rad)))
= 4.379958588165586
It's reasonable to consider that V0plus =Vgen*Zin/(Zgen+Zin)*(exp(g_L)+refl_gen*exp(-gamma_L_rad)) should be used, 2.89a in [POZAR] pg81
Vin=Vgen*Zin/(Zin+Zgen)*1/(exp(gamma_L_rad)+refl_gen*exp(-gamma_L_rad))
absVin=abs(Vin)
Vin
= 0.155584072758048 - 3.279133570422918i
absVin
= 3.282822471040817
would be the correct start voltage for the procedure followed in the solutions manual.
But because 2.92/93/94 are readily available, the answers have already been provided.
This Pin is the same as the above used
Pin=(abs(Vgen*Zin/(Zgen+Zin)))^2/(2*Z0*(1-(abs(refl_gen))^2)*exp(2*real(gamma_L_rad))
= 4.035947066681602
And it's not the other apparently correct
Vgen*Zin/(Zin+Zgen)
abs(Vgen*Zin/(Zin+Zgen))
Loss_dB=double(alpha_dB*L)
10*log10(Pin)-10*log10(PLoad)
= 1.367657186248119
10*log10(exp(2*alpha))
= 1.150000000000000
0.21 dB missing, the perturbation method is not exact
Generator and TL are matched, but TL and load are not. And it's not the other apparently correct
Vgen*Zin/(Zin+Zgen)
= 3.965319190462363 + 0.751739611040107i
abs(Vgen*Zin/(Zin+Zgen))
= 4.035947066681602
Comment: Zin with lossless TL would be
Zin_lossless=Z0*(ZL+1j*Z0*tan(imag(gamma_L_rad)))/(Z0+1j*ZL*tan(imag(gamma_L_rad)))
= 26.928588541323347 +11.871170407231441i
same as
Zin_lossless=Z0*(ZL+1j*Z0*tan(2*pi*2.3))/(Z0+1j*ZL*tan(2*pi*2.3))
= 26.928588541323329 +11.871170407231373i
Now with Smith Chart:
sm1=smithchart; ax=gca; hold all;
refl_ZL=(ZL-Z0)/(ZL+Z0);
plot(ax,real(refl_ZL),imag(refl_ZL),...
'o','Color',[1 0 0],...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[.8 .2 .2],...
'MarkerSize',7) % ZL
plot(ax,refl_mod(end).*cos(a(end)),refl_mod(end).*sin(a(end)),...
'o','Color',[1 0 0],...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[.2 .8 .2],...
'MarkerSize',7) % Zin at generator
[x_swr,y_swr]=Smith_plotGammaCircle(ax,ZL,Z0,[1 .4 .4])
refl_in=refl_mod(end).*cos(a(end))+1j*refl_mod(end).*sin(a(end))
Zin_gen=Z0*(1+refl_in)/(1-refl_in)
[x_swr,y_swr]=Smith_plotGammaCircle(ax,Zin_gen,Z0,[.4 1 .4])
SWR_Load=(1+abs(refl_ZL))/(1-abs(refl_ZL))
SWR_gen=(1+abs(refl_in))/(1-abs(refl_in))
str_swr_load=['SWR Load = ' num2str(SWR_Load)]
str_swr_gen=['SWR Generator = ' num2str(SWR_gen)]
legend(ax,'ZL','Zgen',str_swr_load,str_swr_gen)
legend(ax,'off')

Smith_plotRefLine2PhaseCircle(ax,ZL,Z0,[.6 1 .6])
Smith_plotRefLine2PhaseCircle(ax,Zin_gen,Z0,[.6 1 .6])
syms lambda
alpha_dB=.5/lambda % [dB/lambda]
Np2dB=10*log10(exp(1)^2);alpha_Np=alpha_dB/Np2dB
beta=2*pi/lambda;L=2.3*lambda
g=alpha_Np+1j*beta % g=gamma=alpha+1j*beta
g_L=g*L;g_L=double(simplify(g_L))
angle to run along TL: beta*L=pi rad means 360º around Smith Chart
so to match the imag(g_L) angle with Smith chart angle, double it.
N1=100
da=2*pi/N1 % angle differential for 2*pi around Smith Chart = lambda/2
amount_full_turns=floor(14.4513*180/pi/360)
angle rads left when no full turns left
14.4513-floor(14.4513*180/pi/360)
amount_da_rem=floor((14.4513-floor(14.4513*180/pi/360))/da)
total amount angle steps needed to achieve N1 resolution
N2=N1*amount_full_turns+amount_da_rem
a0=angle(refl_ZL)
a=double(linspace(a0,2*imag(g_L),N2));
refl_mod=linspace(refl_ZL,refl_ZL*exp(-real(g_L)),N2)
plot(ax,refl_mod.*cos(a),refl_mod.*sin(a),…
'-','LineWidth',.5,'Color',[1 0 0])
plot(ax,refl_mod(end).*cos(a(end)),refl_mod(end).*sin(a(end)),…
'o','Color',[0 1 0],...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[.8 .2 .2],...
'MarkerSize',7) % ZL
axis([-0.4008 0.3832 -0.4103 0.3737])

Comment, possible error in solutions manual:
the value of tanh(gamma*L) does not correspond to tanh of the calculated gamma*L
It's actually increased by 1/exp(alpha*L) but it's not mentioned anywhere.
Comment, the following expressions shouldn't be used in this exercise because they are for lossless transmission lines only:
Vgen*Zin/(Zin+Zgen)*1/(exp(1j*imag(gamma_L_rad))+refl_Load*exp(-1j*imag(gamma_L_rad)))
abs(Vgen*Zin/(Zin+Zgen)*1/(exp(1j*imag(gamma_L_rad))+refl_Load*exp(-1j*imag(gamma_L_rad))))
Vgen*Z0/(Z0+Zgen)*exp(-1j*imag(gamma_L_rad))/(1-refl_Load*refl_gen*exp(-1j*2*imag(gamma_L_rad)))
abs(Vgen*Z0/(Z0+Zgen)*exp(-1j*imag(gamma_L_rad))/(1-refl_Load*refl_gen*exp(-1j*2*imag(gamma_L_rad))))
Custom support functions I have used:
1.- Smith_plotRefLine2PhaseCircle.m
function a=Smith_plotRefLine2PhaseCircle(ax,Z,Z0,colour)
% plot reference line from origin through ZL to outer phase reference circle
% added color option with field colour [r g b] r,g,b within [0 1]
gamma_L=(Z-Z0)/(Z+Z0)
a=angle(gamma_L)
plot(ax,[0 real(exp(1j*a))],[0 imag(exp(1j*a))],'Color',colour,'LineWidth',1)
function input_checks
[szc1 szc2]=size(colour);
if szc1>1 || szc2~=3
disp('\ncolour wrong amount elements\n');
return;
end
if max(colour>1) || min(colour<0)
disp('\ncolour component(s) out of range\n');
return;
end
if numel(Z0)>1
disp('\nZ0 cannot be vector\n');
return;
end
Z=Z( : );
[sz1 sz2]=size(Z);
cas=1;
if sz2>1
cas=2;
end
end
end
2.- Smith_plotGammaCircle.m
function [x_data,y_data]=Smith_plotGammaCircle(ax,Z,Z0,colour)
% plot SWR circle, lossless TL
% color format [r g b] each ranging[0 1] where 0:white 1:black
input_checks;
gamma=z2gamma(Z,Z0);
r=abs(gamma);
alpha=0:2*pi/100:2*pi;
hold all;
sub_hp2=plot(ax,r*cos(alpha),r*sin(alpha),'-','LineWidth',.5,'Color',colour);
x_data=sub_hp2.XData;
y_data=sub_hp2.YData;
function input_checks
[szc1 szc2]=size(colour);
if szc1>1 || szc2~=3
disp('\ncolour wrong amount elements\n');
return;
end
if max(colour>1) || min(colour<0)
disp('\ncolour component(s) out of range\n');
return;
end
if numel(Z0)>1
disp('\nZ0 cannot be vector\n');
return;
end
Z=Z( : );
[sz1 sz2]=size(Z);
cas=1;
if sz2>1
cas=2;
end
end
end
Last edited: