top of page

example 3.2

ZIP with MATLAB scripts and note:

Small tag OK.jpg

 example 3.2 notes:

Example 3.2.- Circular waveguide:

 

Find cut-off frequencies of cylindrical waveguide with internal radius a=.5cm f0=14GHz. Find attenuation [dB] along 30cm, inside Au plated

Small tag OK.jpg
001.jpg

These are the 5 lowest order Bessel functions of 1st kind x within [0 15]

 

x=[0:.001:15];

M=5;N=5;

y=zeros(M(end),numel(x));

for k=0:1:M-1

    y(k+1,:)=besselj(k,x);

end

figure(1);hold on;

for k=1:1:M

    plot(x,y(k,:));

end

grid on;grid minor;

title('Bessel functions 1st kind with order 0 to 4')

 

J0(x) zeros for TM cut-offs

 

p={};

for k=1:1:M

    [nx0,ny0]=intersections(x,y(k,:),x,zeros(1,numel(x)));

    p{k}=nx0;

end

p{:}

 

And these are the 1st derivative of the 5 lowest order Bessel functions of 1st kind xÎ[0 15]

 

yd=diff(y')';x(1)=[];

figure(2);hold on;

for k=1:1:M

    plot(x,yd(k,:));

end

grid on;grid minor;

title('1st deriv Bessel funct 1st kind order 0 to 4')

 

dJ0(x)/dx zeros for TE cut-offs

p1={}   % roots  of 1st derivative

p = 2.404825587623834

   5.520078116818740

   8.653727924339442

  11.791534449561969

  14.930917711006265

=                 0

   3.831705997281383

   7.015586687090941

  10.173468147302287

  13.323691944300002

 =                0

   5.135622324716259

   8.417244151376378

  11.619841177883227

  14.795951783895344

 =                0

   6.380161906569109

   9.761023131142311

  13.015200727876815

=                 0

   7.588342449349021

  11.064709497802784

  14.372536680265153

p1 =

   3.832206002438044

   7.016086681407118

  10.173968140669018

  13.324191945277430

= 1.841683794603466

   5.331942785453609

   8.536816379612693

  11.706504916618902

  14.864088639390504

= 3.054736905459390

   6.706633213085026

   9.969967828343043

  13.170870863085048

= 4.201688902908669

   8.015736610027316

  11.346424323015373

  14.586348295875927

= 5.318053105903168

   9.282896290396334

  12.682408452626339

I'm a paragraph. Click here to add your own text and edit me. It's easy.

002.jpg

L4=[0 0 0];                % TE modes and fc in L5: n m p'_nm

for s=1:1:M

    L05=p1{:,s};

    L4=[L4;s*ones(numel(L05),1) [1:1:numel(L05)]' L05];% TE

end

end

L4(1,:)=[];

L4=[L4(:,1) L4(:,2) L4(:,3)*c0/er^.5*1/(2*pi*a)];

L4_3=L4(:,3);

[fc_TE_sorted,nfc_TE_sorted]=sort(L4_3);

L5=L4(nfc_TE_sorted,:);     % L5 fc_TE sorted with TE indices uint64(L5)             % fc TE sorted including null TE cut-offs

fc_TE=L5(:,3);                 % remove null TE cut-offs

[nfcTEz,v]=find(fc_TE==0);

L5(nfcTEz,:)=[];fc_TE(nfcTEz)=[];

L6=[0 0 0];                % TM modes and fc in L7: m n p_nm

for s=1:1:M                 % n: order Bessel function

    L07=p{:,s}';                  % m: root numeral

    L6=[L6;s*ones(numel(L07),1) [1:1:numel(L07)]' L07];   % TM

end

L6(1,:)=[];

L6=[L6(:,1) L6(:,2) L6(:,3)*c0/er^.5*1/(2*pi*a)];

L6_3=L6(:,3);

[fc_TM_sorted,nfc_TM_sorted]=sort(L6_3);

L7=L6(nfc_TM_sorted,:);  % L7 fc_TM sorted with TM indices uint64(L7)             % fc TM sorted included null TM cut-offs

fc_TM=L7(:,3)                      % remove null TM cut-offs

[nfcTMz,v]=find(fc_TM==0);

L7(nfcTMz,:)=[];fc_TM(nfcTMz)=[];

fc_TE and fc_TM contain the sorted non-null cut-off frequencies.

uint64(L5)

=

  20×3 uint64 matrix

             1             1   12185806285

             2             1   20212173388

             0             1   25356426618

             3             1   27801171511

             4             1   35187780418

             1             2   35279683786

             2             2   44375551004

             0             2   46423101203

             3             2   53037450756

             1             3   56485261477

             4             2   61421822950

             2             3   65967945737

             0             3   67317747639

             3             3   75075498431

             1             4   77458031401

             4             3   83915259008

             2             4   87147251563

             0             4   88161725932

             3             4   96512992765

             1             5   98350707814

 

 

L5 and L7 contain sorted cut-off frequencies paired to TE and TM mode indices respectively.

uint64(L7)

=

  18×3 uint64 matrix

             0             1   15911927361

             1             2   25353118251

             2             2   33980696897

             0             2   36524512410

             3             2   42215399457

             1             3   46419792908

             4             2   50209526405

             2             3   55694091997

             0             3   57258826103

             3             3   64585428493

             1             4   67314439350

             4             3   73211485565

             2             4   76884606399

             0             4   78020643408

             3             4   86117234294

             1             5   88158417593

             4             4   95098272748

             2             5   97899869008

             0             5   98792893450

f0=1.4e10;k_TE=2*pi*f0*er^.5/c0

this k_TE is the same for k_TM

 

beta_TE=(k_TE^2*ones(1,size(L5,1))'-(L5(:,3)*2*pi*er^.5/c0).^2).^.5

 

at 14GHz this waveguide only has one real beta_TE which is TE11.

 

beta value

beta_TE(imag(beta_TE)==0)

 

reading the only TE propagating mode frequency

L8=uint64(L5(find(imag(beta_TE)==0),:))

 

Generating propagation betas, in this case only one, but command evalin may be handful when in need to generate an unknown amount of them.

L91=['beta_TE' num2str(L8(1)) num2str(L8(1))]

L92= [L91 '=' num2str(beta_TE(imag(beta_TE)==0))];evalin('caller',L92)

 

same result as

L93=beta_TE(imag(beta_TE)==0);assignin('base',L91,L93)

 

dielectric attenuation per metre, Au layer inside

tand=.0004;alpha_d=k_TE^2*tand./(2* beta_TE11)   % dB/m

Np2dB=10*log10(exp(1)^2);  % 8.686

alpha_d_dB=alpha_d*Np2dB   % dB/m

 

conductor attenuation per metre of waveguide

sigma_Au=4.1e7  % S/m

Rs=(2*pi*f*mu0/(2*sigma_Au))^.5

 

L93=['p1_' num2str(L8(:,1)) num2str(L8(:,1))]

L94= [L93 '=' num2str(beta_TE(imag(beta_TE)==0))];evalin('caller',L94)

 

reading 1st derivative roots directly from the obtained cut-off frequencies:

p1=fc_TE*2*pi*a/c0*er^.5

% p=fc_TM*2*pi*a/c0*er^.5

 

the root of interest being

p1(find(beta_TE(imag(beta_TE)==0)))

 

L95=['p1_' num2str(L8(:,1)) num2str(L8(:,1))]

L96= [L95 '=' num2str(p1(find(beta_TE(imag(beta_TE)==0))))];evalin('caller',L96)

alpha_c=Rs/(a*k_TE*etha*beta_TE11)*(kc^2+k_TE^2/(p1_11^2-1))

alpha_c_dB=Np2dB*alpha_c

 

total attenuation per metre:

alpha_dB=alpha_d_dB+alpha_c_dB

alpha_dB=alpha_d_dB+alpha_c_dB   % total attenuation per metre:

L_30cm_dB=alpha_dB*.3  % total attenuation for 30cm

=     4.231738552325043e+02

 

=

    .208336611713207 + 0.000000000000000i

  0.000000000000000 + 0.440659268268221i

    ..

  0.000000000000000 + 2.631024045506140i

  0.000000000000000 + 2.886414064646955i

  0.000000000000000 + 2.942544669403333i

 

=     2.083366117132072e+02

  

=   1             1   12185806285

 

 

k_TE11 =     2.083366000000000e+02

 

 

 

 

=   0.171910362062386

 

=   1.493194432513684

 

 

 

 

 

 

 

p1 =

   1.841683794603465

   3.054736905459389

   3.832206002438044

   …

 

=   1.841683794603465

 

 

p1_11 =   1.841700000000000

 =   0.067085619620905

 =   0.582698288328388

 

 

=   0.582698288328388

 

alpha_dB =   2.075892688081312

L_30cm_dB =   0.622767806424394

bottom of page