CORSO DI LAUREA
IN INGEGNERIA ELETTRONICA PROGRAMMI IN MATLABDI CAMPI ELETTROMAGNETICIANNO ACCADEMICO 1997 / 1998
Guida
dielettrica a 5 strati generica: Curve
di dispersione Professore
: Marco De Sario
Eseguito da Marinelli Vito
PROGRAMMA PRINCIPALE
% GUIDA DIELETTRICA
STRATIFICATA A 5 STRATI clear; whitebg; disp('Introduzione
delle dimensioni dei vari strati :'); disp('Introduci
lo spessore (in metri) : '); c2=input('del
primo cuore : '); g=input('del
gap : '); c4=input('del
secondo cuore : '); disp('Introduci
l''indice di rifrazione : '); n(1)=input('del
superstrato : '); n(2)=input('del
primo cuore : '); n(3)=input('del
gap : '); n(4)=input('del
secondo cuore : '); n(5)=input('del
sottostrato : '); if n(2)>n(4)
k=n(2);
n(2)=n(4);
n(4)=k;
k=c2;
c2=c4;
c4=k;
k=n(1);
n(1)=n(5);
n(5)=k;
end for k0=3e5:8e4:3e7
clear zero;
zero=0;
d2=g/2+c2;
d4=g/2+c4;
errore=1e-11;
j=1;
passo=-(n(4)-n(3))/300;
for nef=n(4):passo:n(3)-passo
for k=1:5
h(k)=k0*sqrt(abs(n(k)^2-nef^2));
end
if nef>n(2)
pol2=mdisp2(h,d2,d4,g);
else
pol2=mdisp1(h,d2,d4,g);
end
if nef~=n(4) & nef~=n(4)+passo
if nef>n(2) | nef-passo<n(2)
if pol2*pol1<=0
if pol2==0
zero(j)=nef;
j=j+1;
else
indice=(log((2*nef-passo)/errore))/log(2);
pol11=pol1;
pol21=pol2;
ak=nef;
bk=nef-passo;
indice=ceil(indice);
ciclo=1;
while ciclo<=indice
medio=(ak+bk)/2;
for k=1:5
hmedio(k)=k0*sqrt(abs(n(k)^2-medio^2));
end
if medio>n(2)
determ=mdisp2(hmedio,d2,d4,g);
else
determ=mdisp1(hmedio,d2,d4,g);
end
if determ==0
ciclo=indice;
else
if determ*pol11<0
ak=medio;
pol21=determ;
else
bk=medio;
pol11=determ;
end
end
ciclo=ciclo+1;
end
zero(j)=medio;
j=j+1;
end
end
end
end
pol1=pol2;
end
lungh=length(zero);
hold on;
for k1=1:lungh
if zero(k1)~=0
plot(k0,zero(k1),'.k');
end
end end xlabel('k0'); ylabel('nef');
|