Curve fitting thin film reflectance to extract optical parameters
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to fit experimental Reflectance data to Lorentz oscillator model but the fit is not matching the expirement data. Can you please suggest what I am doing wrong
The expression for relectivity from a thin film of thickness L is
where , and n are reflective index of incoming medium (air ), substrate(SiO2) and the thin film respectively.
where λ=532 nm is wavelength of the Laser
no=1;
and is complex reflective index.
The reflectivity is then
I am modelling the complex dielectric constant ϵ with Lorentz oscillators which gives
where , and are fitting parameter. The complex reflective index is .
I have experimental R vs E (energy in eV). I want to fit this experimental data to the above expression and find the fitting parameters.
%Resonant energy from experiment
E0=1.7226;
%Initial guess of fitting parameter
wp=0.707;
g=11.40*10^(-3);
e=10.8;
p0=[e wp g];
%Fitting of the experiment data
st=p0
opts = optimoptions(@lsqnonlin,'DiffMaxChange', 0.1,'FinDiffType', 'central', 'Display','off','MaxFunEvals',2E7,'TolFun',1E-18,'TolX',1E-300,'MaxIter',4E3);
%opts = optimoptions(@lsqnonlin);
opts.Algorithm = 'levenberg-marquardt'
x0 = st; % arbitrary initial guess
lb = 0.0*ones(size(st));
[p_estimated,resnorm,residuals,exitflag,output] = lsqnonlin(@(p)reflectance(I,E0,p) , x0, lb,[], opts)
%Function of the reflectance
function R = reflectance(I,E0,p)
ns=1.732; %reflective index of SiO2
E=linspace(min(I(:,1)), max(I(:,1)),length(I(:,1)));
E=E';
lambda=1240./E;
L=2*pi*0.6/(lambda);
I1=I(:,2);
e=p(1)+p(2).^2 ./(E0.^2-E.^2-1i.*E.*p(3));
n1=sqrt(e);
d=L*n1;
r=(n1.*(1-ns).*cos(d)+1i*(ns-n1.^2).*sin(d))./ (n1.*(1+ns).*cos(d)+1i.*(ns+n1.^2).*sin(d));
%r=(1-e)./((1+e)+2*1i.*sqrt(e).*cot(L.*sqrt(e)));
%r=(1-e)./(1+e);
R=abs(r).^2-I(:,2);
end
Below shown are plots of experiment data and data after fitting.
I have attached the experimental data. First column is energy in eV and second is reflectance.
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Linear and Nonlinear Regression dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!