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

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

reflection coefficients on both sides of the transmission line

TL input impedance (from generator)

Results:

=1/(2*lambda)

= 8.685889638065037

=281474976710656/(4889721167171369*lambda)

= 0.132398642847158 +14.451326206513048i

= 0.333333333333333

= -0.206936161907528 + 0.150347922208021i

= 31.588363022059227 +10.163454575205781i

TL input power

= 0.198382847405214

PLoad power reaching load

= 0.144789944222718

Power loss

= 0.053592903182496

Comment 1: perhaps of use too, the maximum available power from generator:

Alternatively

= 0.132398642847158

= 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

= 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

= 0.155584072758048 - 3.279133570422918i

= 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

= 4.035947066681602

And it's not the other apparently correct

= 1.367657186248119

= 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

= 3.965319190462363 + 0.751739611040107i

= 4.035947066681602

Comment: Zin with lossless TL would be

= 26.928588541323347 +11.871170407231441i

same as

= 26.928588541323329 +11.871170407231373i

Now with Smith Chart:

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.

angle rads left when no full turns left

total amount angle steps needed to achieve N1 resolution

Comment, possible error in solutions manual:

the value of

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:

Custom support functions I have used:

2.-

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/Np2dBalpha_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*Lgamma_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)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_Loadrefl_Load

= 0.333333333333333

refl_genrefl_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.25Pmax_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)absVin=abs(Vin)

**Vin**= 0.155584072758048 - 3.279133570422918i

absVinabsVin

= 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))abs(Vgen*Zin/(Zin+Zgen))

Loss_dB=double(alpha_dB*L)

10*log10(Pin)-10*log10(PLoad)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);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],...'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],...'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])[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))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)]str_swr_gen=['SWR Generator = ' num2str(SWR_gen)]

**legend(ax,'ZL','Zgen',str_swr_load,str_swr_gen)**

legend(ax,'off')legend(ax,'off')

Smith_plotRefLine2PhaseCircle(ax,ZL,Z0,[.6 1 .6])

Smith_plotRefLine2PhaseCircle(ax,Zin_gen,Z0,[.6 1 .6])

syms lambdaSmith_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*lambdabeta=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)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));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.*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],...'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*LIt'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)% 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[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% 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: