How to solve Microwave Engineering Pozar chapter 5 exercise 1 with MATLAB

Published by John_2016 in the blog blog title. Views: 89


Question

[​IMG]

the literature source is available here:
https://www.amazon.co.uk/Microwave-Engineering-David-M-Pozar/dp/0470631554

There's also a solutions manual available here:
https://www.scribd.com/doc/176505749/Microwave-engineering-pozar-4th-Ed-solutions-manual

Answer

[​IMG]

attached pozar_03_exercise_01.m for download, remove .txt to run script, MATLAB scripts .m not yet allowed as attachments.

a) Z0=100;f0=3e9; ZL1=150-j200

From http://www.rfcafe.com/references/electrical/images2/electronic-applications-smith-chart-p-117.jpg the following diagrams show what impedance values 'can' and 'cannot' be matched with each pair of possible L C, series and shunt, 8 possible combinations:


[​IMG]

This table is advocated by https://www.amazon.co.uk/Microwave-Transistor-Amplifiers-Analysis-Design/dp/0132543354 [GONZ] but one has to be cautious because the 'can' 'cannot' and 'forbidden' terms used really mean the choices to do when intending to minimise impedance shifts across the Smith Chart.

Yet, one can make a certain impedance shift a bit further around a given constant R or G circle and meet the R=Z0 or G=1/Y0 circle from the other side and such solutions are perfectly valid, while crossing the 'forbidden' zones while widening the choice of design.

These are the kind of networks to be used:

[​IMG]

Z0=1j*L*2*pi*f0+1/(1j*C*2*pi*f0+1/ZL)
real(1j*L*2*pi*f0+1/(1j*C*2*pi*f0+1/ZL))=Z0
imag(1j*L*2*pi*f0+1/(1j*C*2*pi*f0+1/ZL))=0
real(1j*x(1)*2*pi*f0+1/(1j*x(2)*2*pi*f0+1/ZL))-Z0=0
imag(1j*x(1)*2*pi*f0+1/(1j*x(2)*2*pi*f0+1/ZL))=0
clc;
Z0=100;sm1=smithchart;hold all;

ZL1=150-1j*200;f0=3e9;
% Hz
gamma_L=(ZL1-Z0)/(ZL1+Z0);
% show ZL1 on Smith chart adding text showing values
if imag(ZL1)<0
sign1='-';
else
sign1='+';
end
hold all;plot(real(gamma_L),imag(gamma_L),'ro','LineWidth',1.5);
str1=['ZL =' num2str(real(ZL1)) sign1 'j' num2str(abs(imag(ZL1))) ' \rightarrow'];
text(real(gamma_L),imag(gamma_L)+.01,str1,'Color','blue','FontSize',20,'HorizontalAlignment','right','VerticalAlignment','middle');


[​IMG]

RL=real(ZL1);XL=imag(ZL1);
if abs(real(ZL1/Z0))>=1 % ZL1 inside 1+jx
disp(' ZL1 inside 1+jx');

B1=1/(RL^2+XL^2)*(XL+(RL/Z0)^.5*(RL^2+XL^2-Z0*RL)^.5);
B2=1/(RL^2+XL^2)*(XL-(RL/Z0)^.5*(RL^2+XL^2-Z0*RL)^.5);
X1=1/B1+XL*Z0/RL-Z0/(B1*RL);
X2=1/B2+XL*Z0/RL-Z0/(B2*RL);

elseif abs(real(ZL1/Z0))<=1
% ZL1 outside 1+jx
disp(' ZL1 outside 1+jx');
B1=(RL*(Z0-RL))^.5-XL;
B2=-(RL*(Z0-RL))^.5-XL;
X1=1/Z0*((Z0-RL)/RL)^.5;
X2=-1/Z0*((Z0-RL)/RL)^.5;
end

B1
X1
B2
X2

C1 = B1/(2*pi*f0)
% B1>0, so it's a capacitor, of value
L1 = X1/(2*pi*f0) % X1>0, it's and inductor, of value
L2 = B2/(2*pi*f0) % B2<0, so it's an inductor, of value
C2 = X2/(2*pi*f0) % X2<0, it's a capacitor, of value

ZL1 inside 1+jx
B1 =
0.001070831300813
X1 =
1.779513042005219e+02
B2 =
-0.007470831300813
X2 =
-1.779513042005219e+02
C1 =
5.680936491394585e-14
L1 =
9.440609897720876e-09
L2 =
-3.963399101766560e-13
C2 =
-9.440609897720872e-09




b) ZL2=20-1j*90

clc;clear all;format long;
Z0=100;sm1=smithchart;hold all;

ZL2=20-1j*90;f0=3e9;
% Hz
gamma_L=(ZL2-Z0)/(ZL2+Z0);
% show ZL2 on Smith chart adding text showing values
if imag(ZL2)<0
sign1='-';
else
sign1='+';
end
hold all;plot(real(gamma_L),imag(gamma_L),'ro','LineWidth',1.5);
str1=['ZL =' num2str(real(ZL2)) sign1 'j' num2str(abs(imag(ZL2))) ' \rightarrow'];

text(real(gamma_L),imag(gamma_L)+.01,str1,'Color','blue','FontSize',20,'HorizontalAlignment','right','VerticalAlignment','middle');

[​IMG]

RL=real(ZL2);XL=imag(ZL2);
if abs(real(ZL2/Z0))>=1 % ZL2 inside 1+jx

disp(' ZL2 inside 1+jx');
B1=1/(RL^2+XL^2)*(XL+(RL/Z0)^.5*(RL^2+XL^2-Z0*RL)^.5);
B2=1/(RL^2+XL^2)*(XL-(RL/Z0)^.5*(RL^2+XL^2-Z0*RL)^.5);
X1=1/B1+XL*Z0/RL-Z0/(B1*RL);
X2=1/B2+XL*Z0/RL-Z0/(B2*RL);
elseif abs(real(ZL2/Z0))<=1 % ZL2 outside 1+jx

disp(' ZL2 outside 1+jx');
B1=(RL*(Z0-RL))^.5-XL;
B2=-(RL*(Z0-RL))^.5-XL;
X1=1/Z0*((Z0-RL)/RL)^.5;
X2=-1/Z0*((Z0-RL)/RL)^.5;
end

B1
X1
B2
X2
C1 = B1/(2*pi*f0) % B1>0, so it's a capacitor, of value

L1 = X1/(2*pi*f0) % X1>0, it's and inductor, of value
L2 = B2/(2*pi*f0) % B2>0, so it's a capacitor, of value
L3 = -X2/(2*pi*f0) % X2<0, it's a capacitor, of value

ZL2 outside 1+jx

B1 =
130
X1 =
0.020000000000000
B2 =
50
X2 =
-0.020000000000000
C1 =
6.896714200648799e-09
L1 =
1.061032953945969e-12
L2 =
2.652582384864922e-09
L3 =
1.061032953945969e-12



[​IMG]


For the last case the solutions manual does not show where each inductor goes because are there named 'L'. It also mentions ‘verified with w/ PCAAD 7.0’ AKA PUFF that still seems to be around.


Although MATLAB function smith doesn’t allow to work with any other Z0 than 1, I found in Mathworks file exchange a free toolset that allows to use and plot Smith charts with any Z0 value (Z0 real only), by Neil Tucker https://uk.mathworks.com/matlabcentral/fileexchange/22996-rf-utilities-v1-2


The drawback is that the core function in Tucker’s Smith chart toolset is named exactly as MATLAB RF toolbox smith the problem being that while MATLAB’s smith does not take in Z0, only plotting normalized impedances/admittances.

Another Smith chart starter, interactive: http://www.fourier-series.com/rf-concepts/smithchart.html
You need to be logged in to comment