Theoritical problem based on impedance matching and amplifier design

Discussion in 'Homework Help' started by alex1234, May 5, 2011.

  1. alex1234

    Thread Starter New Member

    Jul 10, 2010
    7
    0
    This are problems from Book Microwave Engineering By David Pozar.
    I am preparing for an exam based on this subject and stuck with some part of it.

    Problem 8.
    I calculated ouput reflection coefficent as = 0.85L71(degrees).
    I am getting the length of OC Stub to be 0.204(wavelength) and series stub to be 0.203(wavelength).
    But in solution its given to be
    length of OC Stub to be 0.298(wavelength) and series stub to be 0.107(wavelength).
    Here is the link of my solved smith chart [​IMG][​IMG]solution
    Since there multiple correct answers as it depends on the way traveled on smith chart, is my answer correct?

    Secondly I have googled for many links which shows impedence matching using lumped elements, but didnt find a single one which shows the same with only impedance chart can any one help me with the designing steps of matched lumped elements using only Z-Smith chart.
    In the above book,its given when the impedence lies in 1+jb circle but not when it doesnot lie outside 1+jb circle.

    I donot understand how to travel on the same impedence using z-chart only.

    It would be also very helpful if there are links which have java applets which can solve any sums based on rf circuits atleast theoritically.

    -Thank you.
     
    Last edited: May 5, 2011
  2. t_n_k

    AAC Fanatic!

    Mar 6, 2009
    5,448
    790
    Most of us won't have that book at hand. Perhaps you should post a copy of the problem.
     
  3. alex1234

    Thread Starter New Member

    Jul 10, 2010
    7
    0
    Ok, I should have posted it in before as well...
    S11=0.65L-140
    S12=0.04L60
    S21=2.41L50
    S22=0.7L-65
    All angles are in degrees.
    From my calculations Δ=0.393L165,k=1.25 Thus from rollets condition, the device is stable at the operating frequency.
    load reflection coefficent as = 0.85L71(degrees).
    and from my calculations
    length of OC Stub to be 0.204λ and series stub to be 0.203λ.
    But in solution its given to be
    length of OC Stub to be 0.298λ and series stub to be 0.107λ.
    Here is the link of my solved smith chart [​IMG][​IMG]solution

    Q2) 11.9 from the book.
    S11=0.61L-170
    S12=0
    S21=2.24L32
    S22=0.72L-83
    Since unilateral,source reflection coefficent=S11*=0.61L170
    load reflection coeff=S22*=0.72L83.
    Maximum gain Gtu=12.2dB.
    Now since in exams, we are provided only with Z-smith charts, I dont know How to design the matching network by lumped elements using Z-chart only
    Please help thank you.
     
  4. t_n_k

    AAC Fanatic!

    Mar 6, 2009
    5,448
    790
    Re Q1 - You happen to have found the alternative solution for the two line components. A series line of 0.196λ with an open stub of 0.202λ and Zo load gives the same load reflection coefficient as a series line of 0.107λ and open stub of 0.298λ and Zo load. Either solution is valid.

    Your values are slightly different because you used a pencil and paper Smith Chart method which has some inherent uncertainty.
     
    Last edited: May 6, 2011
  5. t_n_k

    AAC Fanatic!

    Mar 6, 2009
    5,448
    790
    Calculation of L-section (lumped inductor / capacitor) matching networks is not a trivial task and probably unlikely to be tested under exam conditions. If you can demonstrate the use of transmission line matching I would think that would be more than sufficient. What does your professor say regarding this?

    I've seen mention (including formulae) of L-section matching procedure in some brief study notes on S parameters by a Nick Gamroth (Google him). There's a small formula error in the notes in reference to output reflection coefficient which he transcribed directly from another source - also with same error. I haven't checked whether his notes on L-section matching are OK but they might be a point of reference for you if you want to follow up on this.
     
  6. t_n_k

    AAC Fanatic!

    Mar 6, 2009
    5,448
    790
  7. John_2016

    Member

    Nov 23, 2016
    55
    5
    While getting enough forum entries to open a blog where eventually all POZAR exercises may be solved with MATLAB (in blue font), this kind of exercise posted by Alex1234 is quite common in Microwave engineering starter modules.

    clear all;clc;close all;

    your data:

    % s11_ang_grad=-140
    s11_mod=.65
    s11_ang_rad=-140*pi/180
    [s11real,s11imag]=pol2cart(s11_ang_rad,s11_mod)
    s11=s11real+1j*s11imag
    % S12=0.04L60
    s12_mod=.04
    s12_ang_rad=60*pi/180
    [s12real,s12imag]=pol2cart(s12_ang_rad,s12_mod)
    s12=s12real+1j*s12imag
    % S21=2.41L50
    s21_mod=2.41
    s21_ang_rad=50*pi/180
    [s21real,s21imag]=pol2cart(s21_ang_rad,s21_mod)
    s21=s21real+1j*s21imag
    % S22=0.7L-65
    s22_mod=.7
    s22_ang_rad=-65*pi/180
    [s22real,s22imag]=pol2cart(s22_ang_rad,s22_mod)
    s22=s22real+1j*s22imag


    Stability factor

    delta=s11*s22-s12*s21;
    K=(1-s11*conj(s11)-s22*conj(s22)+delta*conj(delta))/(2*abs(s12*s21))
    % K =
    % 1.254085709165930


    unconditionally stable on this particular frequency
    and(K>1,abs(delta)<1)
    % =
    % logical
    % 1


    How far are the unstable areas


    C1=s11-delta*conj(s22);
    C2=s22-delta*conj(s11);
    D1=s11*conj(s11)-delta*conj(delta);
    D2=s22*conj(s22)-delta*conj(delta);
    B1=1-s22*conj(s22)+D1;
    B2=1-s11*conj(s11)+D2;

    gamma_S_1=(B1+(B1^2-4*abs(C1^2))^.5)/(2*C1)
    gamma_S_2=(B1-(B1^2-4*abs(C1^2))^.5)/(2*C1)

    if abs(gamma_S_1)<1 % rid of |reflection_source|>1
    gamma_S=gamma_S_1 % because K>1 there has to be a |reflection|<1
    elseif abs(gamma_S_2)<1
    gamma_S=gamma_S_2
    end

    gamma_L_1=(B2+(B2^2-4*C2*conj(C2))^.5)/(2*C2)
    gamma_L_2=(B2-(B2^2-4*C2*conj(C2))^.5)/(2*C2)

    if abs(gamma_L_1)<1 % rid of |reflection_load|>1
    gamma_L=gamma_L_1
    elseif abs(gamma_L_2)<1
    gamma_L=gamma_L_2
    end

    % calculate input and output stability circle centres and radii
    Centre_stability_IN=conj(C1)/D1; % input stability circle
    R_stability_IN=abs(s12*s21/D1);

    Centre_stability_OUT=conj(C2)/D2; % output stability circle
    R_stability_OUT=abs(s12*s21/D2);

    a=[0:.1:360];
    xc_in=R_stability_IN*cosd(a)+real(Centre_stability_IN);
    yc_in=R_stability_IN*sind(a)+imag(Centre_stability_IN);
    hf1=figure(1);smithchart; % input reflection on Smith chart, with input stability circle
    ax1=hf1.CurrentAxes
    hold all;plot(ax1,xc_in,yc_in,'LineWidth',1.5,'Color','r');
    title(ax1,' Input Reflection gamma_S','HorizontalAlignment','left')
    plot(ax1,real(gamma_S),imag(gamma_S),'bo','color','blue','MarkerSize',5,'MarkerFaceColor',[0 0 1])

    xc_out=R_stability_OUT*cosd(a)+real(Centre_stability_OUT);
    yc_out=R_stability_OUT*sind(a)+imag(Centre_stability_OUT);

    hf2=figure(2);smithchart; % output reflection on Smith chart, with output stability circle
    ax2=hf2.CurrentAxes
    hold all;plot(ax2,xc_out,yc_out,'LineWidth',1.5,'Color','r')
    title(ax2,' Output Reflection gamma_L','HorizontalAlignment','left')
    plot(ax2,real(gamma_L),imag(gamma_L),'bo','color','red','MarkerSize',5,'MarkerFaceColor',[1 0 0])

    % showing where input and output reflections would be unstable
    if (abs(Centre_stability_IN)>R_stability_IN); % circle does not comprise (0,0) then in port is STABLE OUTSIDE CIRCLE
    figure(1);text(real(Centre_stability_IN),imag(Centre_stability_IN),'unstable','Color','r','HorizontalAlignment','center');
    center1(1)=real(Centre_stability_IN);center1(2)=imag(Centre_stability_IN);
    color=[.5 0 0]; N=100;
    a=linspace(0,2*pi,N);
    r0=ones(1,N)*R_stability_IN;
    [X,Y] = pol2cart(a,r0);
    X=X+center1(1);Y=Y+center1(2);
    h=fill(X,Y,color);h.FaceAlpha=.3;
    end;

    if (abs(Centre_stability_IN)<R_stability_IN); % circle comprises (0,0) then in port is STABLE INSIDE CIRCLE
    figure(1);text(real(Centre_stability_IN),imag(Centre_stability_IN),'stable','Color',[0 .8 0],'HorizontalAlignment','center')
    center1(1)=real(Centre_stability_IN);center1(2)=imag(Centre_stability_IN);
    color=[0 .5 0]; N=100;
    a=linspace(0,2*pi,N);
    r0=ones(1,N)*R_stability_IN;
    [X,Y] = pol2cart(a,r0);
    X=X+center1(1); Y=Y+center1(2);
    h=fill(X,Y,color); h.FaceAlpha=.3;
    end;

    if (abs(Centre_stability_OUT)>R_stability_OUT); % circle does not comprise (0,0) then in port is STABLE OUTSIDE CIRCLE
    figure(2);text(real(Centre_stability_OUT),imag(Centre_stability_OUT),'unstable','Color','r','HorizontalAlignment','center')
    center2(1)=real(Centre_stability_OUT);center2(2)=imag(Centre_stability_OUT);
    color=[.5 0 0]; N=100;
    a=linspace(0,2*pi,N);
    r0=ones(1,N)*R_stability_OUT;
    [X,Y] = pol2cart(a,r0);
    X=X+center2(1); Y=Y+center2(2);
    h=fill(X,Y,color); h.FaceAlpha=.3;
    end;

    if (abs(Centre_stability_OUT)<R_stability_OUT); % circle comprises (0,0) then in port is STABLE INSIDE CIRCLE
    figure(2);text(real(Centre_stability_OUT),imag(Centre_stability_OUT),'stable','Color',[0 .8 0],'HorizontalAlignment','center');
    center2(1)=real(Centre_stability_OUT);center2(2)=imag(Centre_stability_OUT);
    color=[0 .5 0]; N=100;
    a=linspace(0,2*pi,N);
    r0=ones(1,N)*R_stability_OUT;
    [X,Y] = pol2cart(a,r0);
    X=X+center2(1); Y=Y+center2(2);
    h=fill(X,Y,color); h.FaceAlpha=.3;
    end;

    [​IMG]

    Respective source and load impedance
    Z0=50
    Z_S=gamma2z(gamma_S,Z0)
    Z_L=gamma2z(gamma_L,Z0)


    Z_S and Z_L are looking outwards

    [​IMG]
    because you are building input and output matching networks with
    components that at the same time perform DC decoupling and
    transistor bias.


    [​IMG]


    From http://www.rfcafe.com/references/electrical/images2/electronic-applications-smith-chart-p-117.jpg
    that is actually from

    https://www.amazon.co.uk/Microwave-Transistor-Amplifiers-Analysis-Design/dp/0132543354

    Depending on what quarter of the Smith chart the reflection of a given port is located,
    then there are 2 possible matching networks for each port.

    Input

    [​IMG]

    Output

    [​IMG]

    for instance the case for series C parallel C would be

    [​IMG]

    Z_S = 5.1357 +14.5861i


    1st shift from Z_S to R=Z0 circle
    syms B1
    eq1=Z0==real(1/(1j*B1+1/(Z_S)))
    B1=real(double(solve(eq1,B1)))

    if knowing the frequency, that is not the case, then
    to obtain the value of C1 the following would be possible:

    B1=C1*Z0*2*pi*f0

    2nd shift, zeroing reactance:

    syms B2
    eq2=abs(imag(1/(1j*B2)+1/(1j*B1+1/Z_S)))==0.001
    B2=double(solve(eq2,B2))

    ignore the negative result

    B2=B2(B2>0)

    again the 2nd capacitor value could be calculated provided f0 known
    B2=C2*Z0*2*pi*f0

    similar procedure could be iterated for all 3 remaining possible lump
    element matching networks, but as seen there's need for f0 to be known,
    which is not the case,
    and there are frequent decision points where some equation solutions have
    to be manually disregarded.

    Be aware that a few times command solve will simply return empty results,
    as when
    for instance you ask to solve an equation with complex values.

    There are sort of 'java aplets' out there that solve circuit components
    connected in different ways, but they are bound to specific topologies

    Dellsperger's Smith app


    http://www.fritz.dellsperger.net/smith.html

    the chart demo is free, but it has a top amount of circuit
    elements to a low amount, and it has to be chain of components selected
    from a palette with just a few components.

    If your university has purchased Agilent (now Keysight) test instruments,
    the chances are that there is at least one professor who will
    support your application for an ADS student licence


    https://www.keysight.com/main/edito....0.00&id=1488740&cmpid=zzfindeesof-university

    ADS has a tool called Smith Chart Utility that you may find really useful.
    Link to POZAR with ADS example in same AOC

    Since you've mentioned in the question it's requirement to use shunt stubs and series sections of transmission lines,


    [​IMG]

    transmission line plus single open circuit stub match (on single frequency) is POZAR 4th edition exercise 5.14

    5.14 already solved with MATLAB, scheduled for posting in blog soon.

    https://forum.allaboutcircuits.com/...ter-5-example-1-with-ads.151173/#post-1295405


    instead of moving impedance along constant resistance or constant
    reactance circles as it's the case when using lump circuit elements,
    series transmission lines shift impedance along constant SWR circles.


    Zin=ZL*(ZL+1j*Z0*tan(beta*L))/(Z0+1j*ZL*tan(complex_prop_const*L) % ideal transmission line
    Zin=ZL*(ZL+Z0*th(complex_prop_const*L))/(Z0+ZL*th(complex_prop_const*L) % ideal transmission line

    But for circuits with small amount of components, it may require less calculations to solve with the Smith Chart

    Also recommended to read example 12.3 page 573 of POZAR 4th edition.
    If you have the 3rd edition, instead, look at the Smith chart on page 622 that completes example 11.6

    Now, to use a Z Smith chart as Y chart by simply spinning 180deg the reflection coefficient:
    left side Short Circuit on Z Smith Chart is Open circuit on Y chart,
    and right side Open Circuit on Z Smith Chart is Short Circuit on Y chart.


    gamma_yS=-gamma_S
    yS=1/Z0*(1-gamma_yS)/(1+gamma_yS)

    plot(ax1,real(gamma_yS),imag(gamma_yS),'bo','LineWidth',1.5)
    Smith_plotOpRefLine2PhaseCircle(ax1,Z_S,Z0,[0 .7 0]);
    Smith_plotOpRefLine2PhaseCircle(ax1,1/yS,Z0,[0 .7 0]);
    [​IMG]


    now we are going to move the impedance along the SWR red circle until the
    real part equals Z0


    [x_swr,y_swr]=Smith_plotGammaCircle(ax1,Z_S,Z0,[1 .6 .6]);
    [xr1,yr1]=Smith_plotRcircle(ax1,Z0,Z0,[0 0 1])
    [xint,yint]=intersections(x_swr,y_swr,xr1,yr1);

    xint=xint(find(yint>0));yint=yint(find(yint>0)) % discard yint<0
    plot(ax1,xint,yint,'ro')

    [​IMG]

    Observe that Ys is close but not right on the real(Zin)=Z0 constant resistance circle

    [​IMG]

    how long has to be the transmission line departing from the device towards generator to bring the real part of the
    source impedance equal to Z0?


    abs(180/pi*(angle(gamma_yS) - angle(xint+1j*yint)))
    = 67.059122630177228 % degree

    abs(.25/pi*(angle(gamma_yS) - angle(xint+1j*yint)))
    = 0.093137670319691 % wavelengths

    POZAR (4th edition page 238) directly gives an equation to solve, in order to find both intersection points.
    X1=imag(Z_S);R1=real(Z_S)
    t1=(X1+(R1/Z0*((Z0-R1)^2+X1^2))^.5)/(R1-Z0)
    =
    -0.662118449238019
    180/pi*atan(t1)
    =
    -33.509277617220988

    t2=(X1-(R1/Z0*((Z0-R1)^2+X1^2))^.5)/(R1-Z0)
    t2 =
    0.011885293980521
    180/pi*atan(t2)
    =
    0.680945121079561

    if t1>=0 nTL1_lambda=1/(2*pi)*atan(t1) ; end
    if t1<0 nTL1_lambda=1/(2*pi)*(pi+atan(t1)); end
    nTL1_lambda
    =
    0.406918673285497

    all multiples or fractions of wavelengths are referred with variables like n1_.. n2_..

    if t2>=0 nTL2_lambda=1/(2*pi)*atan(t2); end
    if t2<0 nTL2_lambda=1/(2*pi)*(pi+atan(t2)); end
    nTL2_lambda
    =
    0.001891514225221

    and for the OC parallel stub Zin_OCstub=-1j*Z0*cot(beta*L)
    beta=2*pi/lambda
    L=n1_lambda*lambda
    turn unknown beta*L=n1_lambda*lambda, now a single variable to solve
    G1=R1*(1+t1^2)/(R1^2+(X1+Z0*t1)^2)
    B1=(R1^2*t1-(Z0-X1*t1)*(X1+Z0*t1))/(Z0*(R1^2+(X1+Z0*t1)^2))
    n1_OCstub=1/(2*pi)*atan(-B1/Z0^-1)
    if n1_OCstub<0 n1_OCstub=.5+n1_OCstub; end
    n1_OCstub =
    0.302114823901448

    check circles crossing match, green marker should overlap red marker on intersection:
    Y1=(G1+1j*B1)
    gamma_z1=(1/Z0-Y1)/(1/Z0+Y1)
    gamma_y1=-gamma_z1
    plot(ax1,real(gamma_y1),imag(gamma_y1),'go')

    match to the positive solution found with support function intersections.m

    G2=R1*(1+t2^2)/(R1^2+(X1+Z0*t2)^2)
    B2=(R1^2*t2-(Z0-X1*t2)*(X1+Z0*t2))/(Z0*(R1^2+(X1+Z0*t2)^2))
    n2_OCstub=1/(2*pi)*atan(-B2/Z0^-1)
    if n2_OCstub<0 n2_OCstub=.5+n2_OCstub; end
    n2_OCstub
    =
    0.197885176098552

    Y2=(G2+1j*B2)
    gamma_z2=(1/Z0-Y2)/(1/Z0+Y2)
    gamma_y2=-gamma_z2
    plot(ax1,real(gamma_y2),imag(gamma_y2),'go')

    match to the positive solution found with support function intersections.m
    [​IMG]

    So the solution is, either:
    1.- the long way 4/5ths around Smith Chart on Transmission line

    nTL1_lambda
    = 0.406918673285497

    n1_OCstub
    = 0.302114823901448

    2.- or a fairly short run on TL
    nTL2_lambda
    = 0.001891514225221
    n2_OCstub
    = 0.197885176098552

    graphically drawing long Transmission Line arc on Smith chart
    a_in=angle(gamma_yS)
    plot(ax1,real(gamma_yS),imag(gamma_yS),'ro')
    a_target2=angle(gamma_y1)
    plot(ax1,real(gamma_y2),imag(gamma_y2),'ro')
    a=a_in;a_tol=a_target2*0.01;a_step=2*pi/5000; gamma=gamma_yS % init gamma sweep
    winL1=a_target2*(1+a_tol);winL2=a_target2*(1-a_tol) % catch window
    da=a_step
    while ceil(100*a)/100>winL1 || ceil(100*a)/100<winL2
    gamma=gamma*exp(-1j*a_step); % exp(-1j*) is CW, towards generator
    a=angle(gamma);da=da+a_step
    plot(ax1,real(gamma),imag(gamma),'ro','LineWidth',1.5);
    end
    a1=da

    [​IMG]


    long angle, in degree
    180/pi*a1
    =
    2.928960000000026e+02

    graphically drawing short Transmission Line arc on Smith chart
    a_in=angle(gamma_yS)
    plot(ax1,real(gamma_yS),imag(gamma_yS),'ro')
    a_target2=angle(gamma_y2)
    plot(ax1,real(gamma_y2),imag(gamma_y2),'ro')
    a=a_in;a_tol=a_target2*0.01;a_step=2*pi/5000; gamma=gamma_yS % init gamma sweep
    winL1=a_target2*(1+a_tol);winL2=a_target2*(1-a_tol) % catch window
    da=a_step
    while ceil(100*a)/100>winL1 || ceil(100*a)/100<winL2
    gamma=gamma*exp(-1j*a_step); % exp(-1j*) is CW, towards generator
    a=angle(gamma);da=da+a_step
    plot(ax1,real(gamma),imag(gamma),'ro','LineWidth',1.5);
    end
    a2=da

    [​IMG]

    short angle, in degree
    180/pi*a2
    =
    1.656000000000000

    Then from your question statement:

    if instead of using OC shunt (parallel) stubs the choice would be SC shunt stubs, then
    the lengths of the parallel stubs would be

    SC parallel stub Zin_SCstub=-1j*Z0*tan(beta*L)

    n1_SCstub=1/(2*pi)*acot(-B1/Z0^-1)
    if n1_SCstub<0 n1_SCstub=.5+n1_SCstub; end
    =
    0.447885176098552

    n2_SCstub=1/(2*pi)*acot(-B2/Z0^-1)
    if n2_SCstub<0 n2_SCstub=.5+n2_SCstub; end
    =
    0.052114823901448

    if you placed the OC (or SC) stub first, next to the device, and then you
    try to run along the Transmission Line outwards, towards generator and towards load, it won't work because the SWR
    circle will not bring the impedance to the centre of the Smith Chart.

    the stubs could also be OC series or SC series, but omitting them here,
    if interested email me and I will send back the solution with OC series or SC series.


    Output match:


    gamma_yL=-gamma_L
    yL=1/Z0*(1-gamma_yL)/(1+gamma_yL)

    plot(ax2,real(gamma_yL),imag(gamma_yL),'bo','LineWidth',1.5)
    Smith_plotOpRefLine2PhaseCircle(ax2,Z_L,Z0,[0 .7 0]);
    Smith_plotOpRefLine2PhaseCircle(ax2,1/yL,Z0,[0 .7 0]);

    [x_swr,y_swr]=Smith_plotGammaCircle(ax2,Z_L,Z0,[1 .6 .6]);
    [xr1,yr1]=Smith_plotRcircle(ax2,Z0,Z0,[0 0 1])
    [xint,yint]=intersections(x_swr,y_swr,xr1,yr1);
    plot(ax2,xint,yint,'ro')

    keep turning still towards generator.
    it's actually towards load, but it's the test generator replacing
    the load and marching towards the generator again.


    gamma_y1=xint(1)+1j*yint(1)
    gamma_y2=xint(2)+1j*yint(2)
    y1=1/Z0*(1-gamma_y1)/(1+gamma_y1)
    y2=1/Z0*(1-gamma_y2)/(1+gamma_y2)

    check
    1/y1
    =
    5.001474552579269e+01 - 1.619932608083966e+02i
    1/y2
    =
    5.001474552579269e+01 - 1.619932608083966e+02i

    on R=Z0 constant impedance circle, as expected

    a_in=angle(gamma_yL)
    plot(ax2,real(gamma_yL),imag(gamma_yL),'ro')
    a_target2=angle(gamma_y2)
    plot(ax2,real(gamma_y2),imag(gamma_y2),'ro')
    a=a_in;a_tol=a_target2*0.01;
    a_step=2*pi/5000; gamma=gamma_yL % init gamma sweep
    winL1=a_target2*(1+a_tol);winL2=a_target2*(1-a_tol) % catch window
    da=a_step
    while ceil(100*a)/100>winL1 || ceil(100*a)/100<winL2
    gamma=gamma*exp(-1j*a_step); % exp(-1j*) is CW, towards generator
    a=angle(gamma);da=da+a_step
    plot(ax2,real(gamma),imag(gamma),'go','LineWidth',1.5);
    end
    a1=da

    short TL angle, in degree
    180/pi*a1
    =
    2.192399999999899e+02

    [​IMG]

    a_target2=angle(gamma_y1)
    plot(ax2,real(gamma_y1),imag(gamma_y1),'ro')
    a=a_in;a_tol=a_target2*0.01;a_step=2*pi/5000; gamma=gamma_yL % init gamma sweep
    winL1=a_target2*(1+a_tol);winL2=a_target2*(1-a_tol) % catch window
    da=a_step
    while ceil(100*a)/100>winL1 || ceil(100*a)/100<winL2
    gamma=gamma*exp(-1j*a_step); % exp(-1j*) is CW, towards generator
    a=angle(gamma);da=da+a_step
    plot(ax2,real(gamma),imag(gamma),'ro','LineWidth',1.5);
    end
    a2=da

    long TL angle, in degree
    180/pi*a2
    =
    2.822400000000002e+02


    [​IMG]


    Since we already have the intersection points, obtained graphically,
    there's no need to numerically solve the equations.

    B1=imag(y1);B2=imag(y2);

    and for the OC parallel stub Zin_OCstub=-1j*Z0*cot(beta*L)
    n1_OCstub=1/(2*pi)*atan(-B1/Z0^-1)
    if n1_OCstub<0 n1_OCstub=.5+n1_OCstub; end
    =
    0.456284795699821
    n2_OCstub=1/(2*pi)*atan(-B2/Z0^-1)
    if n2_OCstub<0 n2_OCstub=.5+n2_OCstub; end
    =
    0.043715204300179

    SC parallel stub Zin_SCstub=-1j*Z0*tan(beta*L):
    n1_SCstub=1/(2*pi)*acot(-B1/Z0^-1)
    if n1_SCstub<0 n1_SCstub=.5+n1_SCstub; end
    =
    0.293715204300179
    n2_SCstub=1/(2*pi)*acot(-B2/Z0^-1)
    if n2_SCstub<0 n2_SCstub=.5+n2_SCstub; end
    =
    0.206284795699821

    Use the circle with radius 1 to measure open and short circuit stub
    length graphically on the Smith Chart



    hf3=figure(3);smithchart; % input reflection
    ax3=hf3.CurrentAxes
    hold all;plot(ax3,xc_in,yc_in,'LineWidth',1.5,'Color','r');
    title(ax3,' Input gamma_S 2nd intersect','HorizontalAlignment','left')
    plot(ax3,real(gamma_S),imag(gamma_S),'bo','color','blue','MarkerSize',5,'MarkerFaceColor',[0 0 1])
    plot(ax3,real(gamma_yS),imag(gamma_yS),'bo','LineWidth',1.5)

    Smith_plotOpRefLine2PhaseCircle(ax3,Z_S,Z0,[0 .7 0]);
    Smith_plotOpRefLine2PhaseCircle(ax3,1/Z_S,1/Z0,[0 .7 0]);
    [x_swr,y_swr]=Smith_plotGammaCircle(ax3,Z_S,Z0,[1 .6 .6]);
    [xr1,yr1]=Smith_plotRcircle(ax3,Z0,Z0,[0 0 1])
    [xint,yint]=intersections(x_swr,y_swr,xr1,yr1);
    plot(ax3,xint,yint,'ro')

    gamma_y1=xint(1)+1j*yint(1)
    gamma_y2=xint(2)+1j*yint(2)
    y1=1/Z0*(1-gamma_y1)/(1+gamma_y1)
    y2=1/Z0*(1-gamma_y2)/(1+gamma_y2)

    Smith_plotOpRefLine2PhaseCircle(ax3,y1,1/Z0,[.7 0 0]);
    Smith_plotOpRefLine2PhaseCircle(ax3,y2,1/Z0,[.7 0 0]);

    da=1/100;a_stub=[angle(gamma_y1):da : pi];arc_stub1=da;
    gamma_stub=.99*(cos(a_stub)+1j*sin(a_stub));
    arc_stub1=arc_stub1+da;
    plot(ax3,real(gamma_stub),imag(gamma_stub),'bo','LineWidth',1.5);

    angle_OCstub1=180/pi*abs(angle(gamma_y1)-pi)
    =
    2.142307901340358e+02

    [​IMG]


    close(hf3)
    hf3=figure(3);smithchart; % input reflection
    ax3=hf3.CurrentAxes
    hold all;plot(ax3,xc_in,yc_in,'LineWidth',1.5,'Color','r');
    title(ax3,' Input gamma_S 2nd intersect','HorizontalAlignment','left')
    plot(ax3,real(gamma_S),imag(gamma_S),'bo','color','blue','MarkerSize',5,'MarkerFaceColor',[0 0 1])
    plot(ax3,real(gamma_yS),imag(gamma_yS),'bo','LineWidth',1.5)

    Smith_plotOpRefLine2PhaseCircle(ax3,Z_S,Z0,[0 .7 0]);
    Smith_plotOpRefLine2PhaseCircle(ax3,1/Z_S,1/Z0,[0 .7 0]);
    [x_swr,y_swr]=Smith_plotGammaCircle(ax3,Z_S,Z0,[1 .6 .6]);
    [xr1,yr1]=Smith_plotRcircle(ax3,Z0,Z0,[0 0 1])
    [xint,yint]=intersections(x_swr,y_swr,xr1,yr1);
    plot(ax3,xint,yint,'ro')
    Smith_plotOpRefLine2PhaseCircle(ax3,y1,1/Z0,[.7 0 0]);
    Smith_plotOpRefLine2PhaseCircle(ax3,y2,1/Z0,[.7 0 0]);

    da=1/100;a_stub=[angle(gamma_y2):da : pi];arc_stub2=da;
    gamma_stub=.99*(cos(a_stub)+1j*sin(a_stub));
    arc_stub2=arc_stub2+da;
    plot(ax3,real(gamma_stub),imag(gamma_stub),'bo','LineWidth',1.5);

    angle_OCstub2=180/pi*abs(angle(gamma_y2)-pi)

    [​IMG]


    Closing comment:
    Solving input output match networks with lump elements is easier than one
    may think, as shown above, it's about manually combining parallel or
    series elements to reach the target impedance, although there may be some
    equation solutions to be ignored.


    close all
    hf4=figure(4);smithchart; % input reflection
    ax4=hf4.CurrentAxes
    hold all;plot(ax4,xc_in,yc_in,'LineWidth',1.5,'Color','r');
    title(ax4,' Input gamma_S','HorizontalAlignment','left')
    plot(ax4,real(gamma_S),imag(gamma_S),'bo','color','blue','MarkerSize',5,'MarkerFaceColor',[0 0 1])
    plot(ax4,real(gamma_yS),imag(gamma_yS),'bo','LineWidth',1.5)
    Smith_plotOpRefLine2PhaseCircle(ax4,Z_S,Z0,[0 .7 0]);
    Smith_plotOpRefLine2PhaseCircle(ax4,1/Z_S,1/Z0,[0 .7 0]);

    [x_g1,y_g1]=Smith_plotGcircle(ax4,1/Z_S,1/Z0,[.7 0 0])
    [xr1,yr1]=Smith_plotRcircle(ax4,Z0,Z0,[0 0 1])
    [xint,yint]=intersections(x_g1,y_g1,xr1,yr1);
    plot(ax4,xint,yint,'go')
    [​IMG]


    When using lump elements, one has to shift impedance along constant
    resistance or constant reactance circles, there's no SWR circle.

    It's good to remember the following:
    when adding series capacitance: CCW along constant resistance circle, Z Smith Chart.

    when adding series inductance: CW along constant resistance circle, Z Smith Chart.
    when adding parallel capacitance: CW along constant G (conductance) circle on reversed Y Smith Chart.

    when adding parallel inductance: CCW along constant G circle on reversed Y Smith Chart.



    In practical terms, Ys is already on the R=Z0 circle: the manufacturer of the device sought a marketing bechmark, allocated real(Z_S) quite close to circle constant R=Z0, so simply adding the right DC decoupling capacitor it may bring
    the input impedance close enough to consider it well enough matched.

    In reality, one would simulate or build a few prototypes and measure.

    Additional data that commonly asked in tests, along with the above stub lengths:

    SWR=(1+abs(gamma_S))/(1-abs(gamma_S)) % SWR=Vmax/Vmin

    GS=(1-gamma_S*conj(gamma_S))/(abs(1-s11*gamma_S))^2

    G0=s21*conj(s21)

    GL=(1-gamma_L*conj(gamma_L))/(abs(1-s22*gamma_L))^2

    GT=GS*G0*GL % GT: Transducer gain

    GTU_max=1/(1-s11*conj(s11))*s21*conj(s21)*1/(1-s22*conj(s22)) % max transducer gain

    GT_max= abs(s21)/abs(s12)*(K^2-(K^2-1)^.5) % when K>1 stable, max transducer power gain

    Gmsg=abs(s21)/abs(s12) % max (achievable) stable gain
     
    Last edited: Aug 16, 2018
  8. John_2016

    Member

    Nov 23, 2016
    55
    5
Loading...