Curve fitting thin film reflectance to extract optical parameters

10 views (last 30 days)
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.

Answers (0)

Categories

Find more on Linear and Nonlinear Regression in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!