example 3.2
ZIP with MATLAB scripts and note:
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
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.
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