top of page

exercise 5.25

ZIP with MATLAB scripts and note:

Small tag OK.jpg
pozar_05_exercise_25_question.jpg

 exercise 5.25 notes:

Small tag OK.jpg

R=80;L=5e-9;Z0=50;                              % R L series load

f0=2e9

ZL_f0=R+1j*L*2*pi*f0

 

sm1=smithchart;hold all;

gamma_L=(ZL_f0-Z0)/(ZL_f0+Z0);

figure(1);plot(real(gamma_L),imag(gamma_L),'ro','LineWidth',1.5);

 

if imag(ZL)<0

sign1='-';

else

   sign1='+';

end

 

str1=['ZL =' num2str(real(ZL)) sign1 'j' num2str(abs(imag(ZL))) ' \rightarrow'];

text(real(gamma_L),imag(gamma_L)+.01,str1,...

                                                          'Color','blue',...

                                                          'FontSize',20,...

                                                          'HorizontalAlignment','right',...

                                                          'VerticalAlignment','middle');

002.jpg

As shown in example 5.1 given the location of ZL(f0) on the Smith chart, these are the possible 2-element L-shape matching networks:

003.jpg

Calculating matching network component values

RL=real(ZL);XL=imag(ZL);

if abs(real(ZL/Z0))>=1       % ZL inside 1+jx

    disp(' ZL 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(ZL/Z0))<=1% ZL outside 1+jx

        disp(' ZL outside 1+jx');

        X1=(RL*(Z0-RL))^.5-XL;

        X2=-(RL*(Z0-RL))^.5-XL

        B1=1/Z0*((Z0-RL)/RL)^.5;  

        B2=-1/Z0*((Z0-RL)/RL)^.5

end

[C1 ctype]=B2LC(B1,f0)              % 1st solution 

 

[L1 ltype]=X2LC(X1,f0)

 

 

[L2 ctype]=B2LC(B2,f0)              % 2nd solution

 

[C2 ltype]=X2LC(X2,f0)

 

 

ZL inside 1+jx

B1 =   0.015811176023539

B2 =  -0.003667222815436

X2 = -62.987309041364369

 

 

 

 

 

 

 

 

 

 

C1 = 1.258213410121157e-12

ctype = 'C [Farad]'

L1 = 5.012370792994983e-09

ltype = 'L [Henry]'

 

L2 = 2.169965544798663e-08

ctype =    'L [Henry]'

C2 = 1.263388970843133e-12

ltype =    'C [Farad]'

004.jpg

Frequency response and fractional bandwidth for both solutions

df=1e5;f=[1e9:df:3e9];

ZL=R+1j*L*2*pi*f

 

Z11=1./(1j*2*pi*f*C1+1./ZL)

Zin1=1j*L1*2*pi*f+Z11

gamma_sol1=(Zin1-Z0)./(Zin1+Z0)

 

Z12=1./(1./(1j*L2*2*pi*f)+1./ZL)

Zin2=1./(1j*C2*2*pi*f)+Z1

gamma_sol2=(Zin2-Z0)./(Zin2+Z0)

 

plot(f,abs(gamma_sol1),f,abs(gamma_sol2));

grid on;title('|s11|')

 

g1_mod=abs(gamma_sol1);g2_mod=abs(gamma_sol2);

 

n1=find(g1_mod<.1)

n2=find(g2_mod<.1)

xlabel('f[Hz]')

 

 

 

 

 

% fractional BW for both solutions

df_ov_BW1=numel(n1)/numel(f)

df_ov_BW2=numel(n2)/numel(f)

005-1.jpg

df_ov_BW1 =   0.188090595470227

df_ov_BW2 =   0.194140292985351

% markers on pass band limits for both solutions

f1_sol1=f(min(n1))

f2_sol1=f(max(n1))

 

f1_sol2=f(min(n2))

f2_sol2=f(max(n2))

 

pnt2val_vert=...

abs(abs_gamma_sol1(end)-abs_gamma_sol1)/numel(abs_gamma_sol1)

 

% marker size in points: 1 point=1/72 in pnt2in=1/72

MkSize_pnts=10  

ax_window=axis

in2val=(ax_window(4)-ax_window(3))/ax2.Position(4)

MkSize_val=MkSize_pnts*pnt2in*in2val

 

corr1_px=3

ax2.Units='pixels'

ax2.Position(4)

px2val=(ax_window(4)-ax_window(3))/ax2.Position(4)

 

% this correction is only valid for zoom factor=1

corr1_val=corr1_px*px2val   

 

hold all;

ph1=plot([f1_sol1 f2_sol1],...

gamma_m*[1 1]+MkSize_val/2+corr1_val,'vb',...

                                    'MarkerSize',MkSize_pnts,...

                                    'MarkerEdgeColor','b',...

                                    'MarkerFaceColor','b')

 

ph2=plot([f1_sol2 f2_sol2],...

gamma_m*[1 1]+MkSize_val/2+corr1_val,'vr',...

                                    'Markersize',MkSize_pnts,...

                                    'MarkerEdgeColor','r',...

                                    'MarkerFaceColor','r')

str1=['solution 1: C1= ' num2str(C1) '  L1= ' num2str(L1)];

str2=['solution 2: C2= ' num2str(C2) '  L2= ' num2str(L2)];

legend(str1,str2);

005-2.jpg

Checking Bode-Fano criterion

The previous way to find fractional bandwidths

 

n1=find(g1_mod<.1)

df_ov_BW1=numel(n1)/numel(f)

 

is the same as

 

df1_0v_f0_sol1=(f2_sol1-f1_sol1)/f0

df1_0v_f0_sol2=(f2_sol2-f1_sol2)/f0

 

dw1=2*pi*(f2_sol1-f1_sol1)

dw2=2*pi*(f2_sol2-f1_sol2)

 

true(dw1*log(1/gamma_m)=<pi*R/L)

 

 

true(dw2*log(1/gamma_m)=<pi*R/L)

 

 

 

 

 

 

 

df1_0v_f0_sol1  =   0.188050000000000

df1_0v_f0_sol2  =   0.194100000000000

 

dw1 =  2.363105994030242e+09

dw2 =  2.439132536247116e+09

 

=

  logical

   1

=

  logical

   1

There's no need for the accurate integrals because if the area of the rectangle (f2_sol1-f1_sol1)*ln(1/gamma_m) has a smaller value than 1/dw*pi*R/L then the accurate integral also meets the Bode-Fano criterion.

Errors in solutions manual

1.- dw, same as Dw is not supposed to be calculated from pi*R/L . The Dw=2.18e10 has no relation whatsoever with dw=f2-f1 where f2 and f1 are the limits used to calculated the fractional bandwith. A threshold is chosen, that defines f1 f2, that together with gamma_m build the left side of the Bode-Fano equations. The calculation

error 1.jpg

is not meaningful

 

2.- the fractional bandwidth is not 174%

error 2.jpg

but the values already obtained above, 2 different calculations have been shown that reach 18.8% and 19.4% fractional bandwidths for solutions 1 and 2 respectively.

 

Again, f1 f2 come from the gamma_m threshold that has to be defined in advance before considering any fractional bandwidth calculation. We'd better not move before we know where we intend to go, without gamma_m there's no way to define a fractional bandwidth despite sometimes, without mentioning the threshold gamma_m a default 3dB below peak or above null may  be a valid consideration.

bottom of page