top of page

exercise 5.11

ZIP with MATLAB scripts and note:

Small tag OK.jpg
pozar_05_exercise_11_question.jpg

 exercise 5.11 notes:

Small tag OK.jpg
001.jpg

This exercise asks to obtain equations for OC and SC stub lengths in circuits  shown above as functions of d transmission line length between stubs, and ZL=RL+1j*XL.

 

  • D_OCstub1(d,RL,XL)

  • D_OCstub2(d,RL,XL)

  • D_SCstub1(d,RL,XL)

  • D_SCstub2(d,RL,XL)

 

Errors in the Solutions manual

 

  1. Equaling Z2 directly to Z0, for double series stub circuit, is not correct. It would be correct if attempting to match load ZL with for instance series single stub, X1, X1 being stub reactance next to load. Only then one can expect Zin of the transmission line to be directly Z0.

 

The input impedance of the transmission line Z2 has to have it's real part equal to Z0, but for the double series stub Z2 may still have significant imaginary part, that in turn is compensated with the second stub with reactance .

 

Therefore the following expression in the solutions manual solves

002.jpg

does not include X2 !it should be

solutions manual using single stub equat
solutions manual imposing unreasonable c

      2. Solving for RL, this is, obtaining RL(t) where  t=tan(b*L)=tan(2*p*D) should be the other way around: L(RL,XL, ..)

           L being stub lengths.

 

The following constraint

erroneously implies that there would be need for a really long transmission line for really small RL values, or that there would be need for really short transmission line when attempting to match large RL values.

 

Since both stubs and the transmission lines are considered ideal, if a load can be matched with such circuit, there are multiple solutions that do not necessarily have to be really short or really long. Just the correct values for the stubs to correct reactances, and all ideal transmission line lengths satisfying a specific solution show periodic repetitions with period p [rad], 2p [rad] on the Smith chart.

Symbolic Equations

syms RL XL d1 d2 d3 Z0

Zin_OCstub1=Z0/(1j*tan(2*pi*d1))

Zin_OCstub2=Z0/(1j*tan(2*pi*d2))

RL+1j*XL+Zin_OCstub1

Z1=RL+1j*XL+Zin_OCstub1

Z2=Z0*(Z1+1j*Z0*tan(2*pi*d3))/(Z0+1j*Z1*tan(2*pi*d3))

Zin=Z2+Zin_OCstub2

Sol1=solve(Zin==Z0,[d1 d2 d3],'ReturnConditions',true)

 

 

Sol1.d1

Sol1.d2

Sol1.d3

 

Sol1.conditions

Sol1 =

  struct with fields:

 

            d1: [1×1 sym]

            d2: [1×1 sym]

            d3: [1×1 sym]

    parameters: [1×3 sym]

    conditions: [1×1 sym]

 

= z

= z1

= z2

 

=

in(2*z - atan((Z0*((tan(2*pi*z2)*(tan(2*pi*z1) + 1i))/tan(2*pi*z1) + 1i))/(RL + XL*1i + Z0*tan(2*pi*z2)*1i - ((Z0 + tan(2*pi*z2)*(RL*1i - XL))*(tan(2*pi*z1) + 1i))/tan(2*pi*z1)))/pi, 'integer')

&

Z0 + tan(2*pi*z2)*(RL*1i - XL + Z0/tan(2*pi*z)) ~= 0

&

tan(2*pi*z1)*1i + tan(2*pi*z2)*(tan(2*pi*z1) + 1i) ~= 0

or

syms Z0 RL XL d1 d2 d3

 

ZL=RL+1j*XL

Zin_OCstub=@(d,Z0) Z0/(1j*tan(2*pi*d))

Zin_SCstub=@(d,Z0) Z0*1j*tan(2*pi*d)

reZin_TL=@(d,Z1,Z0) Z0*(Z0*Z1*(1+tan(2*pi*d)))/

                  (Z0^2+Z1^2*tan(2*pi*d))

imZin_TL=@(d,Z1,Z0) Z0*(Z0^2-Z1^2)*tan(2*pi*d)/

                 (Z0^2+Z1^2*tan(2*pi*d))

 

Zin_OCstub1=Zin_OCstub(d1,Z0)

Zin_OCstub2=Zin_OCstub(d2,Z0)

 

reZin_TL1=reZin_TL(d3,ZL+Zin_OCstub1,Z0)

imZin_TL1=imZin_TL(d3,ZL+Zin_OCstub1,Z0)

 

reZin=real(Zin_OCstub2)+real(reZin_TL1)

imZin=imag(Zin_OCstub2)+imag(reZin_TL1)

 

sol1=solve(reZin==Z0)

 

sol1(1)

sol1(2)

sol1(1)=

 atan(Z0/(XL - RL*1i + (Z0*(tan(2*pi*d3) + 1)*(Z0 + 2*Z0*tan(pi*d3) - Z0*tan(pi*d3)^2 - (2*Z0^2*tan(pi*d3)^2 + 4*Z0^2*tan(pi*d3)^3 + Z0^2*tan(pi*d3)^4 - 4*Z0^2*tan(pi*d3) + Z0^2 - 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3) - 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3 + 2*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2))^2 - 8*Z0^2*tan(pi*d3)*imag(tan(pi*d2)) + 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3)^3 + 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3) - 2*Z0^2*tan(pi*d3)*imag(tan(pi*d2))^2 + 8*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2)) - 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3*imag(tan(pi*d2)) + 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)*imag(tan(pi*d2)))^(1/2))*1i)/(2*(Z0*tan(2*pi*d3) - Z0*imag(1/tan(2*pi*d2))*tan(2*pi*d3))*(2*tan(pi*d3) - tan(pi*d3)^2 + 1))))/(2*pi)

 

sol1(2)=

atan(Z0/(XL - RL*1i + (Z0*(tan(2*pi*d3) + 1)*(Z0 + 2*Z0*tan(pi*d3) - Z0*tan(pi*d3)^2 + (2*Z0^2*tan(pi*d3)^2 + 4*Z0^2*tan(pi*d3)^3 + Z0^2*tan(pi*d3)^4 - 4*Z0^2*tan(pi*d3) + Z0^2 - 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3) - 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3 + 2*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2))^2 - 8*Z0^2*tan(pi*d3)*imag(tan(pi*d2)) + 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3)^3 + 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3) - 2*Z0^2*tan(pi*d3)*imag(tan(pi*d2))^2 + 8*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2)) - 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3*imag(tan(pi*d2)) + 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)*imag(tan(pi*d2)))^(1/2))*1i)/(2*(Z0*tan(2*pi*d3) - Z0*imag(1/tan(2*pi*d2))*tan(2*pi*d3))*(2*tan(pi*d3) - tan(pi*d3)^2 + 1))))/(2*pi)

>> 

 

Warning: The solutions are valid under the following conditions:

 

in(Z0, 'real')

 

&

 

(tan(d3*pi)^2 == 2*tan(d3*pi) + 1

 

|

 

imag(1/tan(2*d2*pi)) == 1

 

|

 

Z0 == 0

 

|

 

4*(Z0*tan(2*d3*pi) - Z0*imag(1/tan(2*d2*pi))*tan(2*d3*pi))^2*(2*tan(d3*pi) -

tan(d3*pi)^2 + 1)^2 + tan(2*d3*pi)*(tan(2*d3*pi) + 1)^2*(Z0 + 2*Z0*tan(d3*pi) -

Z0*tan(d3*pi)^2 - (2*Z0^2*tan(d3*pi)^2 + 4*Z0^2*tan(d3*pi)^3 + Z0^2*tan(d3*pi)^4

- 4*Z0^2*tan(d3*pi) + Z0^2 - 2*Z0^2*imag(1/tan(d2*pi))^2*tan(d3*pi) -

8*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi)^3 + 2*Z0^2*tan(d3*pi)^3*imag(tan(d2*pi))^2 -

8*Z0^2*tan(d3*pi)*imag(tan(d2*pi)) + 2*Z0^2*imag(1/tan(d2*pi))^2*tan(d3*pi)^3 +

8*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi) - 2*Z0^2*tan(d3*pi)*imag(tan(d2*pi))^2 +

8*Z0^2*tan(d3*pi)^3*imag(tan(d2*pi)) -

4*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi)^3*imag(tan(d2*pi)) +

4*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi)*imag(tan(d2*pi)))^(1/2))^2 ~= 0

 

|

 

tan(2*d3*pi) == 0);

in(Z0, 'real') & (4*(Z0*tan(2*d3*pi) -

Z0*imag(1/tan(2*d2*pi))*tan(2*d3*pi))^2*(2*tan(d3*pi) - tan(d3*pi)^2 + 1)^2 +

tan(2*d3*pi)*(tan(2*d3*pi) + 1)^2*(Z0 + 2*Z0*tan(d3*pi) - Z0*tan(d3*pi)^2 +

(2*Z0^2*tan(d3*pi)^2 + 4*Z0^2*tan(d3*pi)^3 + Z0^2*tan(d3*pi)^4 -

4*Z0^2*tan(d3*pi) + Z0^2 - 2*Z0^2*imag(1/tan(d2*pi))^2*tan(d3*pi) -

8*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi)^3 + 2*Z0^2*tan(d3*pi)^3*imag(tan(d2*pi))^2 -

8*Z0^2*tan(d3*pi)*imag(tan(d2*pi)) + 2*Z0^2*imag(1/tan(d2*pi))^2*tan(d3*pi)^3 +

8*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi) - 2*Z0^2*tan(d3*pi)*imag(tan(d2*pi))^2 +

8*Z0^2*tan(d3*pi)^3*imag(tan(d2*pi)) -

4*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi)^3*imag(tan(d2*pi)) +

4*Z0^2*imag(1/tan(d2*pi))*tan(d3*pi)*imag(tan(d2*pi)))^(1/2))^2 ~= 0

 

|

 

tan(d3*pi)^2 == 2*tan(d3*pi) + 1

 

|

 

imag(1/tan(2*d2*pi)) == 1 | Z0 == 0

 

|

 

tan(2*d3*pi) == 0)

Including conditions in the solutions

sol1=solve(reZin==Z0,'ReturnConditions',true)

 

sol1(1)

=

atan(Z0/(XL - RL*1i + (Z0*(tan(2*pi*d3) + 1)*(Z0 + 2*Z0*tan(pi*d3) - Z0*tan(pi*d3)^2 - (2*Z0^2*tan(pi*d3)^2 + 4*Z0^2*tan(pi*d3)^3 + Z0^2*tan(pi*d3)^4 - 4*Z0^2*tan(pi*d3) + Z0^2 - 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3) - 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3 + 2*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2))^2 - 8*Z0^2*tan(pi*d3)*imag(tan(pi*d2)) + 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3)^3 + 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3) - 2*Z0^2*tan(pi*d3)*imag(tan(pi*d2))^2 + 8*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2)) - 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3*imag(tan(pi*d2)) + 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)*imag(tan(pi*d2)))^(1/2))*1i)/(2*(Z0*tan(2*pi*d3) - Z0*imag(1/tan(2*pi*d2))*tan(2*pi*d3))*(2*tan(pi*d3) - tan(pi*d3)^2 + 1))))/(2*pi)

 

sol1(2)

=

atan(Z0/(XL - RL*1i + (Z0*(tan(2*pi*d3) + 1)*(Z0 + 2*Z0*tan(pi*d3) - Z0*tan(pi*d3)^2 + (2*Z0^2*tan(pi*d3)^2 + 4*Z0^2*tan(pi*d3)^3 + Z0^2*tan(pi*d3)^4 - 4*Z0^2*tan(pi*d3) + Z0^2 - 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3) - 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3 + 2*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2))^2 - 8*Z0^2*tan(pi*d3)*imag(tan(pi*d2)) + 2*Z0^2*imag(1/tan(pi*d2))^2*tan(pi*d3)^3 + 8*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3) - 2*Z0^2*tan(pi*d3)*imag(tan(pi*d2))^2 + 8*Z0^2*tan(pi*d3)^3*imag(tan(pi*d2)) - 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)^3*imag(tan(pi*d2)) + 4*Z0^2*imag(1/tan(pi*d2))*tan(pi*d3)*imag(tan(pi*d2)))^(1/2))*1i)/(2*(Z0*tan(2*pi*d3) - Z0*imag(1/tan(2*pi*d2))*tan(2*pi*d3))*(2*tan(pi*d3) - tan(pi*d3)^2 + 1))))/(2*pi)

As expected, it includes Z0 and all stub lengths d1 d2 d3 as parameters of the solution.

 

What is the result when considering the erroneous equation of the solutions manual that ignores X2:

syms RL XL t X1 X2 Z0

eq1=RL+1j*(XL+X1+Z0*t)==Z0+1j*t*(RL+1j*XL+1j*X1)

sol1=solve(eq1,RL)

=

Z0 - XL*1i - X1*1i

As expected, for a single stub RL=Z0 and XL=X1=-ZL would be a valid solution.

 

When including X2

syms RL XL t X1 X2 Z0

eq1=RL+1j*(XL+X1+Z0*t)==Z0+1j*t*(RL+1j*XL+1j*X1)-1j*X2

sol1=solve(eq1,RL)

sol1 =

(X1*1i + X2*1i + XL*1i - Z0 + Z0*t*1i - t*(X1*1i + XL*1i)*1i)/(- 1 + t*1i)

But the equations that really matter are not RL(..) or XL(..) but d1(RL,XL,Z0) d2(RL,XL,Z0) and d3(RL,XL,Z0)

syms RL XL t X1 X2 Z0

eq1=RL+1j*(XL+X1+Z0*t)==Z0+1j*t*(RL+1j*XL+1j*X1)-1j*X2

X_stub1=solve(eq1,X1)

 

 

X_stub2=solve(eq1,X2)

 

 

t_TL=solve(eq1,t)

X_stub1=

-(RL + X2*1i + XL*1i - Z0 + Z0*t*1i - t*(RL + XL*1i)*1i)/(t + 1i)

 

X_stub2 =

RL*1i - X1 - XL - Z0*1i - Z0*t + t*(RL + X1*1i + XL*1i)

 

t_TL =

-(RL + X1*1i + X2*1i + XL*1i - Z0)/(X1 - RL*1i + XL + Z0*1i)

And the equations linking reactance and tangent t=tan(2*pi*D3) to stub lengths are

inverting

 

Zin_OCstub=@(d,Z0) Z0/(1j*tan(2*pi*d))

 

 

for SC stubs

 

Zin_SCstub=@(d,Z0) Z0*1j*tan(2*pi*d)

for OC stubs

 

D_stubOC=1/(2*pi)*atan(-Z0/X)

 

 

 

D_stubSC=1/(2*pi)*atan(X/Z0)

NUMERIC EQUATIONS

c0=2.998e8

f0=2e9;df=1e8;f1=1e9;f2=3e9;dfrel=df/f0;

frel=[f1/f0:dfrel:f2/f0];

 

Z0=50;ZL=40+1j*120

 

D=[.0512 .0988;.0512 .3748]     % choosing stub lengths start values,  any

D3=1/8                                          % transmission line length start value

D=[D ;[D3 D3]]

L=D*c0/f0                                     % L contains all physical lengths.

003.jpg

Zin_stub1=Z0./(1j*tan(2*pi*frel*f0/c0*L(1,1)))

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*frel*f0/c0*L3))./…

(Z0+1j*Zin2.*tan(2*pi*frel*f0/c0*L3));

Zin_stub2=Z0./(1j*tan(2*pi*frel*f0/c0*L(2,1)));

Zin4=Zin_stub2+Zin3;

s11_2Ocseries_stubs=(Zin4-Z0)./(Zin4+Z0)

abs_s11_2OCseries_stubs=abs(s11_2OCseries_stubs)

 

 

hf1=figure(1);ax1=gca

plot(ax1,frel,abs_s11_2OCseries_stubs);grid on;hold(ax1,'on')

title('2 OC series stubs');xlabel('f/f0')

002 2OC start freq response - not tuned.

Zin_stub1=Z0*1j*tan(2*pi*frel*f0/c0*L(1,1))

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*frel*f0/c0*L3))./…

(Z0+1j*Zin2.*tan(2*pi*frel*f0/c0*L3)) ;

Zin_stub2=Z0*1j*tan(2*pi*frel*f0/c0*L(2,1));

Zin4=Zin_stub2+Zin3;

s11_2Scseries_stubs=(Zin4-Z0)./(Zin4+Z0)

abs_s11_2SCseries_stubs=abs(s11_2SCseries_stubs)

 

 

hf2=figure(2);ax2=gca

plot(ax2,frel,abs_s11_2SCseries_stubs);grid on;hold(ax2,'on')

title('2 SC series stubs');xlabel('f/f0')

002 2SC start freq response - not tuned.

As expected, there's no match for the initial values, because the start lengths are the solutions for shunt stubs from previous exercise 5.10.

 

Although for higher dimensions it's not possible or even practical to visualise, in this particular case it's still possible to see that when including D3 as parameter, the amount of possible solutions increases substantially. Extending |s11| surface to volume with axes D1 D2 D3

dd=.1;D3=1/8;d1_range=linspace(dd,.5,numel(frel));d2_range=d1_range;d3_range=d2_range;

 

simplifying the ranges of d1 d2 d3 frel all same matrix size. meshgrid cannot go beyond 3 dimensions, ndgrid is the extended function

 

[D1,D2,D3,Frel]=ndgrid(d1_range,d2_range,d3_range,frel);

L1=D1*c0/f0;L2=D2*c0/f0;L3=D3*c0/f0;                            % phyiscal lengths

Zin_stub1=Z0./(1j.*tan(2*pi*Frel.*f0/c0.*L1));

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*Frel.*f0/c0.*L3))./

(Z0+1j*Zin2.*tan(2*pi*Frel.*f0/c0.*L3));

Zin_stub2=Z0./(1j*tan(2*pi.*Frel*f0/c0.*L2));

Zin4=Zin_stub2+Zin3;

s11_2OCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2OCseries_stubs=abs(s11_2OCseries_stubs);

 

min_abs_s11_2OCseries_stubs=…

min(min(min(min(abs_s11_2OCseries_stubs))))

 

n0=find(abs_s11_2OCseries_stubs==

min_abs_s11_2OCseries_stubs)

 

abs_s11_2OCseries_stubs(n0)  % check

 

[n01,n02,n03,n04]=ind2sub(size(abs_s11_2OCseries_stubs),n0)

 

D1(n01,n02,n03,n04)

D2(n01,n02,n03,n04)

D3(n01,n02,n03,n04)

Frel(n01,n02,n03,n04)

 

D1(n01,n02,n03,n04) = 0.100000000000000

D2(n01,n02,n03,n04) =  0.400000000000000

D3(n01,n02,n03,n04) = 0.200000000000000

Frel(n01,n02,n03,n04) = 0.950000000000000

 

Verifying with frequency response

 

d1=D1(n01,n02,n03,n04);l1=d1*c0/f0;

d2=D2(n01,n02,n03,n04);l2=d2*c0/f0;

d3=D3(n01,n02,n03,n04);l3=d3*c0/f0;

 

don't use same coarse frange that prevents excessing processing load with large 4D, or the caought |s11| doesn't show

 

df=1e6;f1=1e9;f2=3e9;dfrel=df/f0;frel=[f1/f0:dfrel:f2/f0];

Zin_stub1=Z0./(1j*tan(2*pi*frel*f0/c0*l1));

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*frel*f0/c0*l3))./

(Z0+1j*Zin2.*tan(2*pi*frel*f0/c0*l3));

Zin_stub2=Z0./(1j*tan(2*pi*frel*f0/c0*l2));

Zin4=Zin_stub2+Zin3;

s11_2OCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2OCseries_stubs=abs(s11_2OCseries_stubs);

 

plot(ax1,frel,abs_s11_2OCseries_stubs);grid on      

 

hf3=figure(3);ax3=gca;

plot(ax3,frel,abs_s11_2OCseries_stubs);grid on      

Zin_stub1=Z0.*1j.*tan(2*pi*Frel.*f0/c0.*L1);

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*Frel.*f0/c0.*L3))./

(Z0+1j*Zin2.*tan(2*pi*Frel.*f0/c0.*L3));

Zin_stub2=Z0*1j*tan(2*pi.*Frel*f0/c0.*L2);

Zin4=Zin_stub2+Zin3;

s11_2SCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2SCseries_stubs=abs(s11_2SCseries_stubs);

 

min_abs_s11_2SCseries_stubs=…

min(min(min(min(abs_s11_2SCseries_stubs))))

 

n0=find(abs_s11_2SCseries_stubs==

min_abs_s11_2SCseries_stubs)

 

abs_s11_2SCseries_stubs(n0)  % check

 

[n01,n02,n03,n04]=ind2sub(size(abs_s11_2SCseries_stubs),n0)

 

D1(n01,n02,n03,n04)

D2(n01,n02,n03,n04)

D3(n01,n02,n03,n04)

Frel(n01,n02,n03,n04)

 

D1(n01,n02,n03,n04) =   0.420000000000000

D2(n01,n02,n03,n04) =   0.140000000000000

D3(n01,n02,n03,n04) =   0.260000000000000

Frel(n01,n02,n03,n04) =  0.800000000000000

 

Verify with frequency response

 

d1=D1(n01,n02,n03,n04);l1=d1*c0/f0;

d2=D2(n01,n02,n03,n04);l2=d2*c0/f0;

d3=D3(n01,n02,n03,n04);l3=d3*c0/f0;

 

don't use same coarse frange that prevents excessive processing load with large 4D, or the caought |s11| doesn't show

 

Zin_stub1=Z0*1j*tan(2*pi*frel*f0/c0*l1);

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*frel*f0/c0*l3))./

(Z0+1j*Zin2.*tan(2*pi*frel*f0/c0*l3));

Zin_stub2=Z0*1j*tan(2*pi*frel*f0/c0*l2);

Zin4=Zin_stub2+Zin3;

s11_2SCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2SCseries_stubs=abs(s11_2SCseries_stubs);

 

hf4=figure(4);ax4=gca

plot(ax4,frel,abs_s11_2SCseries_stubs) 

003 2OC 1 of many nulls detected - almos
003 2SC 1 of many nulls detected - not e

The respective frequency nulls found above are not centered, neither OS nor SC, so where are all |s11| nulls when considering all stub lengths as parameters d1 d2 d3 ?

 

Static slice for transmission line D3=1/8, all d ranges [0 1] (exercise 5.9)

dd=.01;

d1=[0:dd:1];

d2=[0:dd:1];

d3=[0:dd:1];

[D1,D2,D3]=meshgrid(d1,d2,d3);

abs_s11_2SCseries_stubs=zeros(numel(d1),numel(d2),numel(d3));

 

Zin_stub1=Z0./(1j*tan(2*pi*D2));

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*D3))./(Z0+1j*Zin2.*tan(2*pi*D3));

Zin_stub2=Z0./(1j*tan(2*pi*D1));

Zin4=Zin_stub2+Zin3;

s11_2OCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2OCseries_stubs=abs(s11_2OCseries_stubs);

 

d1_slice=0

d2_slice=0

d3_slice=[1/8]

 

figure;

ax6=gca

hs2=slice(d1,d2,d3,abs_s11_2OCseries_stubs,d1_slice,d2_slice,d3_slice)

 hs2(1).EdgeColor='none';

 hs2(2).EdgeColor='none';

 hs2(3).EdgeColor='none';

 colormap parula

xlabel('D1');ylabel('D2');zlabel('D3')

ax6.PlotBoxAspectRatio=[1 1 1]

302 OC 3rd round.jpg

Sweeping a slice through |s11| volume, D1 D2 D3, now all d ranges [0 .5], .5x.5x.5 volume.

d1=[0:dd:.5];

d2=[0:dd:.5];

d3=[0:dd:.5];

[D1,D2,D3]=meshgrid(d1,d2,d3);

abs_s11_2SCseries_stubs=zeros(numel(d1),numel(d2),numel(d3));

   

Zin_stub1=Z0*1j*tan(2*pi*D1);

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*D3))./(Z0+1j*Zin2.*tan(2*pi*D3));

Zin_stub2=Z0*1j*tan(2*pi*D2);

Zin4=Zin_stub2+Zin3;

s11_2SCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2SCseries_stubs=abs(s11_2SCseries_stubs);

 

hf5=figure(5);ax5=gca

for k=0:dd/10:.5  %numel(d1)

   hsp=surf(ax5,linspace(0,.5,numel(d1)),...

  linspace(0,.5,numel(d1)),zeros(numel(d1))+k);

   hsp.EdgeColor='none'

   rotate(hsp,[1,-1,1],0)

   xd=hsp.XData;

   yd=hsp.YData;

   zd=hsp.ZData;

   delete(hsp)

   hs0=slice(ax5,D1,D2,D3,abs_s11_2SCseries_stubs,.5,.5,0)

   hs0(3).EdgeColor='none'

   hold on

   hs1=slice(ax5,D1,D2,D3,abs_s11_2SCseries_stubs,xd,yd,zd)

   hs1.EdgeColor='none'

   hold off

   axis([-.1 .6 -.1 .6 -.1 .6])

   drawnow

end

colormap parula

slice sweep.jpg

Static slice of |s11| volume for SC stubs at D3=3/8 (exercise 5.10)

dd=.01;

d1=[0:dd:1];

d2=[0:dd:1];

d3=[0:dd:1];

[D1,D2,D3]=meshgrid(d1,d2,d3);

abs_s11_2SCseries_stubs=zeros(numel(d1),numel(d2),numel(d3));

 

Zin_stub1=Z0*1j*tan(2*pi*D1);

Zin2=Zin_stub1+ZL;

Zin3=Z0*(Zin2+1j*Z0*tan(2*pi*D3))./(Z0+1j*Zin2.*tan(2*pi*D3));

Zin_stub2=Z0*1j*tan(2*pi*D2);

Zin4=Zin_stub2+Zin3;

s11_2SCseries_stubs=(Zin4-Z0)./(Zin4+Z0);

abs_s11_2SCseries_stubs=abs(s11_2SCseries_stubs);

 

d1_slice=1

d2_slice=1

d4_slice=[3/8]

 

hf7=figure(7);ax7=gca

 

hs3=slice(ax7,d1,d2,d3,abs_s11_2SCseries_stubs,d1_slice,d2_slice,d4_slice)

hs3(1).EdgeColor='none';hs3(1).FaceAlpha=.4

hs3(2).EdgeColor='none';hs3(2).FaceAlpha=.4

hs3(3).EdgeColor='none';hs3(3).FaceAlpha=1

 

colormap parula

xlabel('D1');ylabel('D2');zlabel('D3')

ax7.PlotBoxAspectRatio=[1 1 1]

301 SC 1st round.jpg

Due to time budget contraints the following 2 points are left open:

 

Pending 1: Use Optimtool to solve 5.11

optimtool

...

optimtool void gui.jpg

Pending 2: Use MuPAD to solve 5.11

mupad

...

bottom of page