Viewing blog entries in category: microwave engineering pozar 05 exercise 05

  • John_2016
    Question

    [​IMG]

    Answer

    the literature source [POZAR] 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


    [​IMG]


    this is the OC series stub impedance match circuit on single frequency.

    [​IMG]

    The arcs of the transmission line lengths on the Smith chart are:

    [​IMG]


    [​IMG]

    And the OC series stub arcs:

    [​IMG]


    [​IMG]

    There's also an alternative graph to find the required transmission line and stub lengths; |s11| surface.

    clc;clear all;close all
    ZL=90+1j*60;Z0=75;
    Dstep=.001;drange=[0: Dstep:1];
    D1=drange;D2=D1;
    [D1,D2]=meshgrid(drange);


    Z1=Z0*(ZL+1j*Z0*tan(2*pi*D1))./(Z0+1j*ZL*tan(2*pi*D1));
    Zin_stub=Z0./(1j*tan(2*pi*D2));
    % series oc stub
    Zin=Z1+Zin_stub;
    s11=(Zin-Z0)./(Zin+Z0);


    surf(abs(s11),'LineStyle','none')
    ax=gca
    xlabel('D1');ylabel('D2');
    ax.XTickLabelMode='manual'; ax.YTickLabelMode='manual';
    ax.XTickLabel=[0:0.1:1];ax.YTickLabel=[0:0.1:1];
    ax.XTick=[0:100:1000];ax.YTick=[0:100:1000];
    ax.PlotBoxAspectRatio=[1 1 1]


    [​IMG]


    hold all;x0=find(drange==.5) % plotting corner to box D1<.5 D2<.5
    plot3([x0 x0 0],[0 x0 x0],[5 5 5],'Color',[1 0 0],'LineWidth',3)

    % moving camera birdeye view
    ax.CameraPosition=[500 500 10]

    camzoom(ax,1.5) % zoom in a bit, camzoom is cumulative
    % zoom_factor within [0 1) zooms out zoom_factor>1 zooms in

    ax.CameraUpVector = [0 1 0]; % camera attitude
    ax.CameraTarget = [500 500 0]; % centring
    ax.CameraViewAngle =8*pi; % focus

    [​IMG]

    automating peaks capture: findpeaks with MinPeakProminence=2.5 returns the right amount of peaks. MinPeakProminence larger or smaller than 2.5 then either too few or too many peaks.

    With MinPeakHeight=2 command findpeaks doesn't catch the right amount of peaks for any MinPeakDistance, going from 6 peaks only to too many peaks.

    With Threshold=2 doesn't catch a single peak but Threshold=1 gets the right amount of peaks.



    To get zeros exact locations, it's useful to invert |s11| surface just plotted, with the Laplacian of the surface, command del2

    V=1e3*del2(abs(s11));
    figure(2);ax=gca;surf(V,'Lines','none');
    xlabel('D1');ylabel('D2');
    ax.XTickLabelMode='manual';
    ax.YTickLabelMode='manual'; ax.XTickLabel=[0:0.1:1];ax.YTickLabel=[0:0.1:1];
    ax.XTick=[0:100:1000];ax.YTick=[0:100:1000];
    [pks,locs]=findpeaks(V( : ),'Threshold',1);
    [nd1,nd2]=ind2sub(size(V),locs);

    hold all;figure(2);plot3(nd2,nd1,V(nd2,nd1)+2,'ro');
    % plot peaks
    ax.PlotBoxAspectRatio=[1 1 1]

    x0=find(drange==.5) % plot corner to box D1<.5 D2<.5
    figure(2);
    plot3([x0 x0 0],[0 x0 x0],[.5 .5 .5],'Color',[1 0 0],'LineWidth',3)
    ax2=gca

    ax2.CameraPosition=[500 500 10]
    % moving camera bird-eye view
    ax2.CameraUpVector = [0 1 0]; % camera attitude

    camzoom(ax,1.5) % zoom in a bit, camzoom is cumulative

    % zoom_factor within [0 1) zooms out zoom_factor>1 zooms in
    ax2.CameraTarget = [500 500 0]; % centring

    abs(s11(sub2ind(size(V),nd1,nd2)))

    = 0.001390798787950
    0.001390798787950
    0.002883920448033
    0.002883920448033
    0.001390798787950
    0.001390798787950
    0.002883920448033
    0.002883920448033

    unique(sort(drange(nd1)))
    = 0.1470 0.3530 0.6470 0.8530

    numel(nd1)
    = 8

    among these stub lengths

    D1=unique(drange(nd1))
    = 0.1470 0.3530 0.6470 0.8530

    D2=unique(drange(nd2))

    = 0.1740 0.4820 0.6740 0.9820


    the stub lengths inside D<.5 are the smallest ones

    Dstub1= D1([1 2])
    = 0.1470 0.3530

    Dstub2= D2([1 2])

    = 0.1740 0.4820

    The resulting frequency response is the same as the one obtained with the MATLAB solution

    [​IMG]

    So the problem is simple enough to find transmission line and stub length on a surface.


    Quick check how short circuit and open circuit stubs behave over frequency:

    Zin_sc_stub=1j*Z0*tan(beta*L)

    Zin_oc_stub=-1j*Z0*cot(beta*L)

    da=pi/2000;a=[-2*pi:da:2*pi];
    y_OC=-cot(a); y_SC=tan(a);
    figure;plot(a,y_OC,a,y_SC);
    grid on;axis([-2*pi 2*pi -10 10])
    legend('SC','OC')
    ylabel('Stub Z_i_n');xlabel('\betaL')
    xticks([-2*pi -2*pi*3/4 -pi -pi/2 0 pi/2 pi 3*pi/2 2*pi])
    xticklabels({'-2\pi','-3\pi/4','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'})


    [​IMG]


    John BG
    jgb2012@sky.com