top of page

ZIP with MATLAB scripts and note:

exercise 6.15

Small tag OK.jpg

 exercise 6.15 notes:

Small tag OK.jpg
pozar_06_exercise_15_question.jpg
001.jpg

The highlighted formula returns one and only one resonant frequency for each different cavity size input [a b d] .

 

Since the cavity is resonating at more than one frequency, it's has to be the case that we are dealing with a multimode signal that has components distributed along different modes, not just TE101 or whatever may be 'the next one' as the solutions manual puts it.

 

It's also important to mention that fixed size passive cavities like this one, may resonate at different frequencies, there's always a dominant resonant frequency only, when applying a narrow band signal and sweeping frequency. Then there may be other frequencies where the same cavity shows certain high Q, but such secondary resonating frequencies are not going to have as high Q as the dominant one.

 

The question doesn't mention how tall is Q on each resonating frequency. So one has to assume that it's more about finding a b d may not even solve for the equation above, for any of the measured frequencies in f0, but that such compromise a b d show relative high Q at all measured frequencies.

c0 = 298792586                                            % m/s

      

mu0 = 1.256637061435917e-06

eps0  = 8.854187817e-12                    % [F/m]=[C^2/N*m^2]

 

er=1                                              % relative permittivity of filler

mur=1

                                                                                                          

f0=[5.2 6.5 7.2]*1e9               % measurements

  

since

 

fres=c0/(2*pi*(er*mur)^.5)*((M*pi/a)^2+(N*pi/b)^2+(L*pi/d)^2)^.5

 

we can simplify to:

 

2*fres/c0=(M*pi/a)^2+(N*pi/b)^2+(L*pi/d)^2

 

and define the following:

 

sqfovc=f0.^2*4*er*mur/c0^2                 

 

this allows avoiding + - that show up when solving square roots  

 

sqfovc1=sqfovc(1);sqfovc2=sqfovc(2);sqfovc3=sqfovc(3)

Let's start with an easy matrix. Attempting direct solving of these type of equations for 3 known frequencies, it may seem that the only return is void

syms u v w

 

vars=[v u w];

eqns1=...

    [1/u^2+2*1/v^2+3*1/w^2==1,...

    4*1/u^2+5*1/v^2+6*1/w^2==2,...

    7*1/u^2+8*1/v^2+8*1/w^2==3 ];

[solv, solu, solw]=solve(eqns1, vars)

       

[a b d] exist because the cavity resonates at the measured frequencies, so there has to be a solution.

 

One gets a bit closer when applying substitution: u1=1/u ..

 

eqns2=...

    [1*u^2+2*v^2+3*w^2==1,...

    4*u^2+5*v^2+6*w^2==2,...

    7*u^2+8*v^2+8*w^2==3 ];

[solv, solu, solw]=solve(eqns2, vars)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s=[double(solu) double(solv) double(solw)]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s(1,:)

 

 

 

 

 

 

% check

A=[1 2 3;4 5 6;7 8 9]

 

 

 

A*s(1,:).^2'

 

 

 

A*s(1,:).^2'==v

solv =

Empty sym: 0-by-1

solu =

Empty sym: 0-by-1

solw =

Empty sym: 0-by-1

 

 

 

 

 

 

solv =

 -6^(1/2)/3

  6^(1/2)/3

 -6^(1/2)/3

  6^(1/2)/3

solu =

 -(3^(1/2)*1i)/3

 -(3^(1/2)*1i)/3

  (3^(1/2)*1i)/3

  (3^(1/2)*1i)/3

solw =

 0

 0

 0

 0

 

s =

  Column 1

  0.000000000000000 - 0.577350269189626i

  0.000000000000000 - 0.577350269189626i

  0.000000000000000 + 0.577350269189626i

  0.000000000000000 + 0.577350269189626i

  Column 2

 -0.816496580927726 + 0.000000000000000i

  0.816496580927726 + 0.000000000000000i

 -0.816496580927726 + 0.000000000000000i

  0.816496580927726 + 0.000000000000000i

  Column 3

  0.000000000000000 + 0.000000000000000i

  0.000000000000000 + 0.000000000000000i

  0.000000000000000 + 0.000000000000000i

  0.000000000000000 + 0.000000000000000i

 =

  Column 1

  0.000000000000000 - 0.577350269189626i

  Column 2

 -0.816496580927726 + 0.000000000000000i

  Column 3

  0.000000000000000 + 0.000000000000000i

 

A =

     1     2     3

     4     5     6

     7     8     9

ans =

     1

     2

     3

ans =

 1 == v

 2 == v

 3 == v

Trying another substitution

eqns3=...

    [1*u+2*v+3*w==1,...

    4*u+5*v+6*w==2,...

    7*u+8*v+8*w==3 ];

[solu,solv,solw]=solve(eqns3,vars)

s=[double(solu) double(solv) double(solw)]

s(1,:)

A*s(1,:).^2'==v

solu =

2/3

solv =

-1/3

solw =

0

s =

   0.666666666666667  -0.333333333333333                   0

ans =

   0.666666666666667  -0.333333333333333                   0

ans =

 2/3 == v

 7/3 == v

   4 == v

However, when guessing what resonant mode does each measurement belong to, let's say for instance that we assume like the solutions manual reads. that it must be this or that other mode therefore equations limited to such modes are laid out, and the first set a b d matching such partial equations should do as valid answer, if the wrong mode is assumed, for instance TE 111:

M=1;N=1;L=1

 

eqn41=N^2*u+M^2*v+L^2*w==sqfovc1

eqn42=N^2*u+M^2*v+L^2*w==sqfovc2

eqn43=N^2*u+M^2*v+L^2*w==sqfovc3

 

eqn4=[eqn41,eqn42,eqn43]

 

[solu,solv,solw]=solve(eqn4,vars)

s=[double(solu) double(solv) double(solw)]

 

 

 

 

 

again only trivial null solution.

u + v + w == 5328277835236583/4398046511104

eqn42 =

u + v + w == 8325434117557161/4398046511104

eqn43 =

u + v + w == 1276894984183915/549755813888

eqn4 =

[ u + v + w == 5328277835236583/4398046511104, u + v + w == 8325434117557161/4398046511104, u + v + w == 1276894984183915/549755813888]

>> [solu,solv,solw]=solve(eqn4,vars)

s=[double(solu) double(solv) double(solw)]

solu =

Empty sym: 0-by-1

solv =

Empty sym: 0-by-1

solw =

Empty sym: 0-by-1

s =

  0×3 empty double matrix

Tried isolating d as function of a and b

 

fovc^2=M^2/U^2+N^2/V^2+L^2/W^2

L^2/W^2=fovc^2-M^2/U^2+N^2/V^2

W^2=L^2*1/(fovc^2-M^2/U^2+N^2/V^2)

W=L*1/(fovc^2-M^2/U^2+N^2/V^2)^.5

M=1;N=0;L=1

dx=.00001

[U,V]=meshgrid([dx:dx:.1],[dx:dx:.1]);

 

W1=L./abs((N^2./U.^2+M^2./V.^2-sqfovc1).^.5);  % 1st

W2=L./abs((N^2./U.^2+M^2./V.^2-sqfovc2).^.5);  % 2nd

W3=L./abs((N^2./U.^2+M^2./V.^2-sqfovc3).^.5);  % 3rd

 

figure;hs1=surface(U,V,W1);hs1.EdgeColor='none';

grid on;xlabel('x  a');ylabel('y  b');zlabel('z  d')

hold all

campos([0.398810314952 .483835565113  4.808026827896])

hs2=surface(U,V,W2);hs2.EdgeColor='none';

grid on;xlabel('x  a');ylabel('y  b');zlabel('z  d')

hs3=surface(U,V,W3);hs3.EdgeColor='none';

grid on;xlabel('x  a');ylabel('y  b');zlabel('z  d')

title(['TE' num2str(M) num2str(N) num2str(L)])

 

 

 

 

 

 

 

 

campos([0.4580064131628 .0458522614234 0.335017867182])

010.jpg

Now there are intersections between paired surfaces but there's not intersection of all 3 surfaces, although a few a and b values seem to have all 3 surfaces really close one another b around 0.025 and d between 0.04 and 0.05

 

The following 6x for loops brought MATLAB to abrupt end followed by this system message

0win.jpg

M=[0:1:3];N=[0:1:3];L=[0:1:3]                   % sweep M N L

dx=.001

a=[dx:dx:.5];b=[dx:dx:.5];d=[dx:dx:.5];    % sweep a b d

 

log41=[0 0 0 0 0 0 0]   % logging [M N L diff1 a b d]

 

tic

for r1=1:1:numel(M)

    for r2=1:1:numel(N)

        for r3=1:1:numel(L)

 

for k1=1:1:numel(a)

    for k2=1:1:numel(b)

        for k3=1:1:numel(d)

 

            diff1=abs(fovc1^2-...

                        abs(M(r1)^2/a(k1)^2+...

                                N(r2)^2/b(k2)^2+...

                                L(r3)^2/d(k3)^2));

            diff2=abs(fovc2^2-...

                        abs(M(r1)^2/a(k1)^2+...

                               N(r2)^2/b(k2)^2+...

                                L(r3)^2/d(k3)^2));

            diff3=abs(fovc3^2-...

                       abs(M(r1)^2/a(k1)^2+...

                               N(r2)^2/b(k2)^2+...

                               L(r3)^2/d(k3)^2));

            diff4=diff1+diff2+diff3;

            log41=[log41;r1 r2 r3 diff4 k1 k2 k3];

           

        end

    end

end

 

        end

    end

end

toc

 

log41(1,:)=[]

err_trace=log41(:,4);

figure;plot(err_trace);grid on;title('err trace')

nmatch=find(err_trace==min(err_trance))

log41(nmatch,:)

The amount of loops to process is

numel(M)*numel(N)*numel(L)*numel(a)*numel(b)*numel(d)

=

     8.000000000000000e+09

Wouldn’t be a large amount of time, if enough system memory available, yet the above 6 for loops remained busy for half day approximately, 12 hours, to just carry out
size(log41)

   1261806           7

while expecting to have it all solved in a tiny fraction of those 12 hours, it had only processed
size(log41,1)/(numel(M)*numel(N)*numel(L)*numel(a)*numel(b)*numel(d))

=

     1.577257500000000e-04

a tiny 1.57%

 

all M N L mode indices still stuck on 1. @12 hours yet k1 k2 k3 had only reached respectively 5 427 428.

  

Since a b d relatively short, all below 10cm, shortening a b d ranges

M=[0:1:2];N=[0:1:2];L=[1:2]                   % sweep M N L

dx=.001

a=[dx:dx:.1];b=[dx:dx:.1];d=[dx:dx:.1];    % sweep a b d

 

log41=[0 0 0 0 0 0 0]  

 

tic

 

for r1=1:1:numel(M)

    for r2=1:1:numel(N)

        for r3=1:1:numel(L)

 

           diff1=abs(fovc1^2-abs(M(r1)^2/A^2+N(r2)^2/B^2+L(r3)^2/D^2));

           diff2=abs(fovc2^2-abs(M(r1)^2/A^2+N(r2)^2/B^2+L(r3)^2/D^2));

           diff3=abs(fovc3^2-abs(M(r1)^2/A^2+N(r2)^2/B^2+L(r3)^2/D^2));

           diff4=diff1+diff2+diff3;

           log41=[log41;r1 r2 r3 diff4 k1 k2 k3];

 

        end

    end

end

 

toc

 

 

MATLAB and system memory problems. When one keys in for instance ab = rand(1e9,1) it generates a 1GByte of random data. It takes a few seconds, but there is available memory, MATLAB can handle data as long as there's available memory.

 

Yet, for the previous cell code in red, meshgrid fails to generate a mesh with exactly the same amount of points, 1e9,  because a meshgrid for that input range needs 3 times that amount of memory. Command meshgrid returns the following error message:

 

Error using repmat

Out of memory. Type HELP MEMORY for your options.

Error in meshgrid (line 78)

        yy = repmat(yy, 1, nx, nz);

 

In the following 3 lines, I can generate 2e9 zeros, but the 3rd line reaches system limitation.

A=zeros(1e3,1e3,1e3);

B=zeros(1e3,1e3,1e3);

D=zeros(1e3,1e3,1e3);

Error using zeros

Out of memory. Type HELP MEMORY for your options.

only the 3rd line fails to get in the Workspace because it's after the 1st 2 1e9 size arrays that 1e10 is reached, that is beyond max available memory

[uv sv]=memory

 

 

 

 

 

 

 

 

 

 

 

 

 

sv.VirtualAddressSpace

 

 

 

 

sv.SystemMemory

 

 

 

sv.PhysicalMemory

uv =

  struct with fields:

 

    MaxPossibleArrayBytes: 3.262234624000000e+09

    MemAvailableAllArrays: 3.262234624000000e+09

            MemUsedMATLAB: 1.716239155200000e+10

sv =

  struct with fields:

 

    VirtualAddressSpace: [1×1 struct]

           SystemMemory: [1×1 struct]

         PhysicalMemory: [1×1 struct]

 

 =

  struct with fields:

 

    Available: 1.406657499340800e+14

        Total: 1.407374882242560e+14

 

=

  struct with fields:

 

    Available: 3.202191360000000e+09

 =

  struct with fields:

 

    Available: 6.673989632000000e+09

        Total: 8.465227776000000e+09

un-ticking box MATLAB array size limit doesn't increase max possible array size, but it slightly reduces it
size limit.jpg

[uv sv]=memory

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sv.VirtualAddressSpace

 

 

 

 

 

sv.SystemMemory

 

 

 

 

sv.PhysicalMemory

uv =

  struct with fields:

 

    MaxPossibleArrayBytes: 3.187789824000000e+09

    MemAvailableAllArrays: 3.187789824000000e+09

            MemUsedMATLAB: 1.717264793600000e+10

 

sv =

  struct with fields:

 

    VirtualAddressSpace: [1×1 struct]

           SystemMemory: [1×1 struct]

         PhysicalMemory: [1×1 struct]

 

 

ans =

  struct with fields:

 

    Available: 1.406657499340800e+14

        Total: 1.407374882242560e+14

 

ans =

  struct with fields:

 

    Available: 3.187789824000000e+09

 

ans =

  struct with fields:

 

    Available: 6.698483712000000e+09

        Total: 8.465227776000000e+09

the core problem being MORE RAM NEEDED: different department.

 

So let's find a way around by focussing on what points in space define more than one resonant frequency by sweeping all values of a b d.

 

The following cell sweeps all values of a b d, calculates the difference between each measured frequency, and the resonant frequency that such particular dimensions would generate, then it select the minimum of each mode, the dimensions a b d of each particular mode that cause closest resonance to those 3 measured frequencies, and it finds common a b d values, as what dimensions resonate at all 3 measured frequencies in f0.

M=[0:1:3];N=[0:1:3];L=[1:3]                   % sweep M N L

dx=.001

a=[.005:dx:.06];b=[.005:dx:.06];d=[.005:dx:.06];    % sweep a b d

[A,B,D]=meshgrid(a,b,d);

 

log40(1).mnl=[0 0 0]          % log, not for logarithm, but as in logging

log40(1).nmin1={}

log40(1).nmin2={}

log40(1).nmin3={}

log40(1).intersect={}

log40(1).valmin1=[]

log40(1).valmin2=[]

log40(1).valmin3=[]

 

nlog=1

 

for r1=1:1:numel(M)

    for r2=1:1:numel(N)

        for r3=1:1:numel(L)

              

Diff1=abs(sqfovc1^2-abs(M(r1)^2/A.^2+N(r2)^2/B.^2+L(r3)^2/D.^2));

Diff2=abs(sqfovc2^2-abs(M(r1)^2/A.^2+N(r2)^2/B.^2+L(r3)^2/D.^2));

Diff3=abs(sqfovc3^2-abs(M(r1)^2/A.^2+N(r2)^2/B.^2+L(r3)^2/D.^2));

          

log40(nlog).mnl=[r1 r2 r3];

    

nv1=find(Diff1==min(min(Diff1)))      % only log min diff locations

nv2=find(Diff2==min(Diff2(:)))

nv3=find(Diff3==min(Diff3(:)))

nint=intersect(intersect(nv1,nv2),nv3)

nint(1)=[]

log40(nlog).intersect=nintlog40(nlog).nmin1=nv1

log40(nlog).nmin2=nv2

log40(nlog).nmin3=nv3

log40(nlog).valmin1=min(Diff1(:))                    % log min values

log40(nlog).valmin2=min(Diff2(:))

log40(nlog).valmin3=min(Diff3(:))

nlog=nlog+1

   

        end

    end

end

So out of the following amount of checked modes
size(log40)
=     1    49
Only 42% showed a b d values causing resonance close to the 3 measured frequencies.

intersect_modes=[]

for k=1:1:size(log40,2)

    if ~isempty(log40(k).intersect)

        intersect_modes=[intersect_modes k]  

    end

end

 

length(intersect_modes)/size(log40,2)

intersect_modes =

    1     2     3     4     5     6     7     8     9    10    11    12    13

 

    14    15    25    26    27    37    38    39

 

 

 

=   0.437500000000000

May be some of a b d found values do not cause a resonance sharp enough, Q not high enough, but the following modes, in each mode, there's one or more than one set [a b d] that cause resonance close to all 3 frequencies measured:

res_modes_mnl=[0 0 0]

for k=1:1:numel(intersect_modes)

    res_modes_mnl=[res_modes_mnl; log40(intersect_modes(k)).mnl]

end

res_modes_mnl(1,:)=[]

res_modes_mnl =

     0     0     1

     0     0     2

     0     0     3

     0     1     1

     0     1     2

     0     1     3

     0     2     1

     0     2     2

     0     2     3

     0     3     1

     0     3     2

     0     3     3

     1     0     1

     1     0     2

     1     0     3

     2     0     1

     2     0     2

     2     0     3

     3     0     1

     3     0     2

     3     0     3

Here is where

 

fc=@(u,v,w) c0/(2*(er*mur)^.5)*(abs(M(r1)^2./u.^2.+N(r2)^2./v.^2.+L(r3)^2./w.^2)).^.5

 

May come handy to, knowing what modes to apply, and what frequencies to use, now look for a b d. It may be the case that more than one set of [a b d] may apply.

  

 

Since meshgrid triples the amount of points, thus tripling the amount of memory to process a given matrix, I have considered working with the points directly, as follows:

dx=.0001

a=[dx:dx:.06];b=[dx:dx:.06];d=[dx:dx:.05];    % sweep a b d

[A,B,D]=meshgrid(a,b,d);

P=[D(:) A(:) B(:)];   % [vt1,vt2,vt3]=mesgrid([1:3],[1:3],[1:3]) then  [vt3(:) vt1(:) vt2(:)] gives logic index ascending progression

 

log41(1).mnl=[0 0 0]                                

 

log41(1).a1=0                        % a values producing resonance at f0(1)

log41(1).a2=0

log41(1).a3=0

 

log41(1).b1=0                       % b values producing resonance at f0(1)

log41(1).b2=0

log41(1).b3=0

 

log41(1).d1=0                        % d values producing resonance at f0(1)

log41(1).d2=0

log41(1).d3=0

 

log41(1).int=0

 

nx=[1:1:size(P,1)];

nlog=1

 

th_low=.99                              % .999 causes ALL null results and excessive delay

th_high=1.01

 

for r1=1:1:numel(M)

    for r2=1:1:numel(N)

        for r3=1:1:numel(L)

           

            log41(nlog).mnl=[r1 r2 r3]

                       sqFc0=abs(M(r1)^2./P(:,1).^2.+N(r2)^2./P(:,2).^2.+L(r3)^2./P(:,3).^2);

          

          % resonant frequencies within [.9*fc(1)  1.1*fc(1)]

           Lq1=sqFc0<th_high*sqfovc(1) & sqFc0>th_low*sqfovc(1);         

           nv1=find(Lq1>0);

 

          % resonant frequencies within [.9*fc(2)  1.1*fc(2)]

           Lq2=sqFc0<th_high*sqfovc(2) & sqFc0>th_low*sqfovc(2);           

           nv2=find(Lq2>0);

 

           % resonant frequencies within [.9*fc(3)  1.1*fc(3)]

            Lq3=sqFc0<th_high*sqfovc(3) & sqFc0>th_low*sqfovc(3);                       

            nv3=find(Lq3>0);

 

            log41(nlog).a1=P(nv1,1);

            log41(nlog).a2=P(nv2,1);

            log41(nlog).a3=P(nv3,1);

 

            log41(nlog).b1=P(nv1,2);

            log41(nlog).b2=P(nv2,2);

            log41(nlog).b3=P(nv3,2);

 

            log41(nlog).d1=P(nv1,3);

            log41(nlog).d2=P(nv2,3);

            log41(nlog).d3=P(nv3,3);

           

            log41(nlog).int=intersect(intersect(nv1,nv2),nv3)

        

           nlog=nlog+1

        end

    end

end

 

save log41.mat log41 trace_a1 trace_a2 trace_a3 trace_b1 trace_b2 trace_b3 trace_d1 trace_d2 trace_d

The above for loops retrieve out of the complete list of points, those values of a b d that minimise frequency distance to each frequency in f0 .

% a

 

trace_a1=0

for k=1:1:sz2

    L01=log41(k).a1';

    trace_a1=cat(2,trace_a1,L01);

end

trace_a1(1)=[]

 

trace_a2=0

for k=1:1:sz2

     L02=log41(k).a2';

    trace_a2=cat(2,trace_a2,L02);

end

trace_a2(1)=[]

 

trace_a3=0

for k=1:1:sz2

    L03=log41(k).a3';

    trace_a3=cat(2,trace_a3,L03);

end

trace_a3(1)=[]

 

figure;hst1=histogram(trace_a1);grid on

title('hist(a) for f0(1)=6.5GHz')

 

figure;hst2=histogram(trace_a2);grid on

title('hist(a) for f0(2)=6.5GHz')

 

figure;hst3=histogram(trace_a3);grid on

title('hist(a) for f0(2)=7.2GHz')

031.jpg
033.jpg
032.jpg

% b

 

trace_b1=0

for k=1:1:sz2

    L01=log41(k).b1';

    trace_b1=cat(2,trace_b1,L01);

end

trace_b1(1)=[]

 

trace_b2=0

for k=1:1:sz2

     L02=log41(k).b2';

    trace_b2=cat(2,trace_b2,L02);

end

trace_b2(1)=[]

 

trace_b3=0

for k=1:1:sz2

    L03=log41(k).b3';

    trace_b3=cat(2,trace_b3,L03);

end

trace_b3(1)=[]

 

figure;hst1=histogram(trace_b1);grid on

title('hist(b) for f0(1)=6.5GHz')

 

% hold on

figure;hst2=histogram(trace_b2);grid on

title('hist(b) for f0(2)=6.5GHz')

 

figure;hst3=histogram(trace_b3);grid on

title('hist(b) for f0(2)=7.2GHz')

041.jpg
043.jpg
042.jpg

% d

 

trace_d1=0

for k=1:1:sz2

    L01=log41(k).d1';

    trace_d1=cat(2,trace_d1,L01);

end

trace_d1(1)=[]

 

trace_d2=0

for k=1:1:sz2

     L02=log41(k).d2';

    trace_d2=cat(2,trace_d2,L02);

end

trace_d2(1)=[]

 

trace_d3=0

for k=1:1:sz2

    L03=log41(k).d3';

    trace_d3=cat(2,trace_d3,L03);

end

trace_d3(1)=[]

 

hf51=figure;ax51=gca;

hst7=histogram(ax51,trace_d1);grid on

title(ax51,'hist(d) for f0(1)=6.5GHz')

 

hf52=figure;ax52=gca;

hst8=histogram(ax52,trace_d2);grid on

title(ax52,'hist(d) for f0(2)=6.5GHz')

 

hf53=figure;ax53=gca;

hst9=histogram(ax53,trace_d3);grid on

title(ax53,'hist(d) for f0(2)=7.2GHz')

051.jpg
052.jpg
053.jpg

structure log41 and variables used for histograms saved in supplied .mat file.

 

 

save log41.mat log41 trace_a1 trace_a2 trace_a3 trace_b1 trace_b2 trace_b3 trace_d1 trace_d2 trace_d3

 

 

When looking for common values across frequencies

% overlapped a traces

 

hf33=figure;ax33=gca

hst1=histogram(ax33,trace_a1);grid on

hold on

hst2=histogram(ax33,trace_a2);

hst3=histogram(ax33,trace_a3);

hst1.EdgeColor='none'

hst2.EdgeColor='none'

hst3.EdgeColor='none'

title(ax33,'a overlap')

 

% overlapped b traces

 

hf43=figure;ax43=gca

hst4=histogram(ax43,trace_b1);grid on

hold on

hst5=histogram(ax43,trace_b2);

hst6=histogram(ax43,trace_b3);

hst4.EdgeColor='none'

hst5.EdgeColor='none'

hst6.EdgeColor='none'

title(ax43,'b overlap')

 

% overlapped d traces

 

hf53=figure;ax53=gca

hst7=histogram(ax53,trace_d1);grid on

hold on

hst8=histogram(ax53,trace_d2);

hst9=histogram(ax53,trace_d3);

hst7.EdgeColor='none'

hst8.EdgeColor='none'

hst9.EdgeColor='none'

title(ax53,'d overlap')

 

There is no such magic overlap that one can readily tell that such dimension has a prefect resonance behaviour on all components of f0 measurements.

061.jpg
062.jpg
063.jpg

Alternatively one can cut the cavity to a size that is exactly at multiples of all paired wavelengths, let's say a and b perfectly resonating on 2 of the 3 frequencies in f0, and b and d resonating at another pair of f0 frequencies, because a and b are such as

 

a=N1*L1=N2*L2=b

a=N1*L1=N3*L3=d

 

L1=lambda0(1)/2; L2=lambda0(2)/2; L3=lambda0(3)/2;

 

and the signal should have at least one TE_nm0 mode and one TE_n0L to resonate along a b direction, and along a d direction.

lambda0=c0./f0

 

 

lambda0=floor(1e4*lambda0)*1e-4

 

 

lambda_mm10=round(lambda0*1e4)

 

 

L1=lambda_mm10(1)

 

L2=lambda_mm10(2)

 

L3=lambda_mm10(3)

 

 

L1/L2

 

L1/L3

 

L2/L3

 

 

rat(L2/L3)

 

rat(L1/L2)

 

rat(L1/L3)

 

 

rats(L2/L3)

 

rats(L1/L2)

 

rats(L1/L3)

 

 

[N_L12,D_L12]=rat(L1/L2)

 

 

[N_L23,D_L23]=rat(L2/L3)

 

 

[N_L13,D_L13]=rat(L1/L3)

 

 

these lengths are in 10th of millimetre.

lambda0 =

   0.057460112692308   0.045968090153846   0.041498970277778

 

lambda0 =

   0.057400000000000   0.045900000000000   0.041400000000000

 

lambda_mm10 =

   574   459   414

 

L1 =

   574

L2 =

   459

L3 =

   414

 

=

   1.250544662309368

=

   1.386473429951691

=

   1.108695652173913

 

=

    '1 + 1/(9 + 1/(5))'

=

    '1 + 1/(4 + 1/(-115))'

=

    '1 + 1/(3 + 1/(-2 + 1/(-2 + 1/(-3 + 1/(5)))))'

 

=

    '     51/46    '

=

    '    574/459   '

=

    '    287/207   '

 

N_L12 =   574

D_L12 =   459

 

N_L23 =    51

D_L23 =    46

 

N_L13 =   287

D_L13 =   207

bottom of page