exercise 3.13
ZIP with MATLAB scripts and note:
exercise 3.13 notes:
4 lowest cut-off frequencies, what 4 modes start to propagate first with frequency increasing.
a=.4e-2
tand_Cu=.0002
mur=1.00
er=1.50
There's a discrepancy with the solutions manual calling 4th mode TE01 when the 4th mode is actually TM11.
This error comes from [POZAR] is caused by only using 3 decimals calculating the roots of Bessel functions 1st kind and roots of 1st derivative of Bessel function 1st kind.
mu0=4*pi*10^-7; e0= 8.8539e-12;
f0=20e9 % Hz
c0=299792486; % m/s through vacuum or air
a=.4e-2; % radius [m]
mur=1;
er=1.5; % relative permittivity
etha0=377;etha=etha0/er^.5;
lambda0=c0/f0 % wave length in free space
tand=.0002;
sigma_Cu=5.813e7; % S/m
% sigma_Au=4.1e7; % S/m
% sigma_Ag=6.173e7; % S/m
N=5;n=[1:1:N]; % 5 1st modes
k_TE=2*pi*f0*(mu0*e0*mur*er)^.5 % wave number
k_TM=2*pi*f0*(mu0*e0*mur*er)^.5 % k_TE k_TM same as k0
k0=2*pi/lambda0 % wave number
x=[0:.001:15]; % finding J0(x) and J0(x)' zeros: p and p1
M=5;N=5;y=zeros(M(end),numel(x));
for k=0:1:M-1
y(k+1,:)=besselj(k,x);
end
p={}; % p: J zeros tor TM cut-offs
for k=1:1:M
[nx0,ny0]=intersections(x,y(k,:),x,zeros(1,numel(x)));
p{k}=nx0;
end
p{:}
for k=1:1:numel(p) % removing origin roots of p
Lp=p{k} % to avoid p(i,j) TMij indices mismatch
Lp(Lp==0)=[]
p{k}=Lp
end
yd=diff(y')';x(1)=[]; % 1st deriv of 5 lowest Bessel 1st kind
p1={}; % p1: J' zeros for TE cut-offs
for k=1:1:M
[nx0d,ny0d]=intersections(x,yd(k,:),x,zeros(1,numel(x)));
% TE find zeros 1st derivative
p1{k}=nx0d;
end
p1{:};
for k=1:1:numel(p1) % removing origin roots of p1
Lp1=p1{k} % to avoid p1(i,j) TEij indices mismatch
Lp1(Lp1==0)=[]
p1{k}=Lp1
end
L4=[0 0 0]; % TE modes and fc in L5: n m p'_nm
for k=1:1:M % n: order Bessel function
L05=p1{:,k}'; % m: root numeral
for s=1:1:length(L05) % p'_nm dJ(x)/dx roots
L4=[L4;[(k-1) s L05(s)]];
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 contains sorted fc_TE 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)=[];
fc_TE_table_names={'n' 'm' 'fc' 'mode_tag'}
% generating table with TE cut-off frequencies, indices, and TE tag
tag_TE=repmat('TE',size(L5,1),1)
fc_TE_table=table(uint64(L5(:,1)),uint64(L5(:,2)),...
L5(:,3),tag_TE,'VariableNames',fc_TE_table_names)
L6=[0 0 0]; % TM modes and fc in L7: m n p_nm
for k=1:1:M % n: order Bessel function
L07=p{:,k}'; % m: root numeral
for s=1:1:length(L07) % p'_nm dJ(x)/dx roots
L6=[L6;[(k-1) s L07(s)]];
end
end
L6(1,:)=[];
L6=[L6(:,1) L6(:,2) L6(:,3)*c0/(er^.5*2*pi*a)];
L6_3=L6(:,3);
[fc_TM_sorted,nfc_TM_sorted]=sort(L6_3);
L7=L6(nfc_TM_sorted,:);
% L7 contains sorted fc_TM 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_TM_table_names={'n' 'm' 'fc' 'mode_tag'}
% generating table with TE cut-off frequencies, indices, and TE tag
tag_TM=repmat('TM',size(L7,1),1)
fc_TM_table=table(uint64(L7(:,1)),uint64(L7(:,2)),L7(:,3),tag_TM,...
'VariableNAmes',fc_TM_table_names)
fc_TE_TM_table_names={'n' 'm' 'fc' 'mode_tag'}
% generating table with TE cut-off frequencies, indices, and TE tag
tag_=[repmat('TE',size(L5,1),1); repmat('TM',size(L7,1),1)]
fc_TE_TM_t=table([uint64(L5(:,1));uint64(L7(:,1))],...
[uint64(L5(:,2));uint64(L7(:,2))],...
[L5(:,3);L7(:,3)],...
tag_,'VariableNames',fc_TE_TM_table_names)
fc_TE_TM_table=sortrows(fc_TE_TM_t,'fc')
numerals_table=table([1:1:numel(L5(:,1))+numel(L7(:,1))]',…
'VariableNames',{'pos'})
fc_TE_TM_table=[numerals_table fc_TE_TM_table]
k_sort_fc=1;
while f0>fc_TE_TM_table.fc(k_sort_fc)
k_sort_fc=k_sort_fc+1;
if k_sort_fc>numel(fc_TE_TM_table.fc)
break
end
end
fc_TE_TM_table
p{:}
= 2.404825587623834
.520078116818740
8.653727924339442
11.791534449561969
14.930917711006265
= 3.831705997281383
7.015586687090941
10.173468147302287
13.323691944300002
= 5.135622324716259
8.417244151376378
11.619841177883227
14.795951783895344
= 6.380161906569109
9.761023131142311
13.015200727876815
= 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
fc_TE_TM_table =
39×5 table
pos n m fc mode_tag
___ _ _ ________________ ________
1 1 1 17937021179.2735 TE
2 0 1 23421722895.1374 TM
3 2 1 29751513658.7988 TE
4 1 1 37318779601.2417 TM
5 0 1 37323649385.6809 TE
6 3 1 40922216430.9797 TE
7 2 1 50018231510.2681 TM
8 4 1 51795010344.6638 TE
9 1 2 51930288440.1759 TE
10 0 2 53762626560.9512 TM
11 3 1 62139385480.1031 TM
12 2 2 65319042463.8699 TE
13 1 2 68328085070.9085 TM
14 0 2 68332954749.7671 TE
15 4 1 73906421736.6693 TM
16 3 2 78069013672.6184 TE
17 2 2 81979483696.799 TM
18 1 3 83144053639.051 TE
19 0 3 84282709938.2539 TM
20 4 2 90410475377.8804 TE
21 3 2 95067176649.8196 TM
22 2 3 97102186932.2407 TE
23 1 3 99084171864.647 TM
24 0 3 99089041534.2585 TE
25 4 2 107764388863.143 TM
26 3 3 110508141510.129 TE
27 2 3 113171076336.892 TM
28 1 4 114015135084.507 TE
29 0 4 114843277536.394 TM
30 4 3 1235199162977766.133 TE
31 3 3 126761136625.349 TM
32 2 4 128277280993.016 TE
33 1 4 129765677089.253 TM
34 0 4 10546832.989 TE
35 4 3 139980867285.259 TM
36 3 4 142063278765.896 TE
37 2 4 144104705320.699 TM
38 1 5 144768322073.85 TE
39 0 5 145419201707.192 TM
Although one can calculate the cut-off frequencies directly from the Bessel and respective derivatives, values stored in variables p and p1 (p1 for p')
1st mode: TE_11
p1_11=p1{2}(1);fc_TE11=p1_11*c0/(2*pi*a*er^.5)
2nd mode: TM01
p_01=p{1}(1);fc_TM01=p_01*c0/(2*pi*a*er^.5)
3rd mode: TE21
p1_21=p1{3}(1);fc_TE21=p1_21*c0/(2*pi*a*er^.5)
the suggested TE01 in the solutions manual as the 4th mode
p1_01=p1{1}(1);fc_TE01=p1_01*c0/(2*pi*a*er^.5)
should be (4th mode) TM11
p_11=p{2}(1); fc_TM01=p_11*c0/(2*pi*a*er^.5)
fc_TE11 = 1.793702117927346e+10
fc_TM01 = 2.342172289513736e+10
fc_TE21 = 2.975151365879876e+10
fc_TE01 = 3.732364938568088e+10
fc_TM01 = 3.731877960124174e+10
The script above may seem a bit long, but it's justified precisely to avoid having to deal with the ±1 on the indices of p and p1 to get mode indices.
The proximity of TE01 and TM11 is already shown in figure 3.13 pg127
But [POZAR] is only using 3 decimals precision on the p and p1 thus erroneously putting TE01 ahead of TM11 (with increasing frequency).
While a more accurate calculation shows that TM12 has a slightly lower cut-off frequency than TE01 therefore starting to propagate 1st as frequency increases than TE01
It's easier to read and compare values from
fc_TE_TM_table
beta= (er*k0^2-(p1_11/a)^2)^.5
again the solutions manual shows a beta roughly half way the one here obtained
dielectric attenuation per metre
alpha_dielectric_TE11=er*k0^2*tand/(2*beta)
Np2dB=10*log10(exp(1)^2)
alphad_TE11_dB=alpha_dielectric_TE11*Np2dB
metallic attenuation per metre
kc=p1_11/a
k_n=2*pi*f0*(mu0*e0*mur*er)^.5
Rs=(2*pi*f0*mu0*mur/(2*sigma_Cu)).^.5
alpha_conductor=Rs/(a*k0*etha0*beta)*(kc^2+k_n^2/(p1_11^2-1))
alphac_dB=alpha_conductor*Np2dB
fc_TE_TM_table =
39×5 table
pos n m fc mode_tag
___ _ _ ________________ ________
1 1 1 17937021179.2735 TE
2 0 1 23421722895.1374 TM
3 2 1 29751513658.7988 TE
4 1 2 37318779601.2417 TM
5 0 1 37323649385.6809 TE
6 3 1 40922216430.9797 TE
7 2 2 50018231510.2681 TM
8 4 1 51795010344.6638 TE
9 1 2 51930288440.1759 TE
10 0 2 53762626560.9512 TM
beta = 4.281862307931123e+02
alpha_dielectric_TE11 = 0.092326859148441
= 4.604209486508664e+02
= 5.133667443219498e+02
Rs = 0.036854854816740
= 0.035819304108147
= 0.311122522395652