Skip to content

NormalizeReflectance

Leandro Acquaroli edited this page Oct 2, 2019 · 6 revisions

This function returns the normalised reflectance of an input raw, reference, and theoretical measurement.

The idea is that when measuring the reflection of a single layer, you setup the spectrophotometer, using a reference (known material). You set this as the reference and then you place your sample to measure. When doing this, you need to normalise the sample spectrum removing the information of the reference and make it absolute. The reference is always known so you can then find its spectrum from a database and subtract it from the sample's measurement.

Usage

Normalize the experimental reflectance dividing by the reference reflectance and multiplying by the theoretical one. The experimental and the reference reflectance spectra must have the same scale.

R = NormalizeReflectance(λ, Rexp, Rthe, Rref)

Input arguments

λ::Array{Float64,1}: wavelength range of interest [nm]. This is the wavelength range within that the spectrum is returned.

Rexp::Array{Float64,2}: 2-columns array with the experimental wavelength in the first one and the experimental reflectance in the second. This is the raw spectrum of the sample.

Rthe::Array{Float64,2}: 2-columns array with the theoretical wavelength in the first one and theoretical reflectance in the second. This is the theoretical spectrum of the reference.

Rref::Array{Float64,2}: 2-columns array with the reference wavelength in the first one and reference reflectance in the second. This is the reference spectrum.

Output argument

R::Array{Float64,1}: absolute reflectance spectrum. The output has the same scale as the theoretical reflectance with the same length as λ.

Example

To see the difference between all the spectra above, consider the following example, using the reflectance spectra stored in SpectraDB:

beam = PlaneWave(250:900, [5.0])

# Indices of refraction of incident and emergent media
incident = RIdb.air(beam.λ)
emergent = RIdb.silicon(beam.λ)

# Raw measured spectra of reflection
Rexp = SpectraDB.SL2ExpSpectrum(beam.λ)
# Reference measured spectra of reflection
Rref = SpectraDB.SL2RefSpectrum(beam.λ)
# Theoretical reflectance spectra of the reference
Rthe = TheoreticalSpectrum(Reflectance(), beam, incident, emergent)
# Calculate the normalised measured spectra (absolute R)
Rabs = NormalizeReflectance(beam.λ, [beam.λ Rexp], [beam.λ Rthe], [beam.λ Rref])

# Plot results
plot(λ, Rexp./100, label="Raw")
plot!(λ, Rref./100, label="Reference")
plot!(λ, Rthe, label="Theoretical")
plot!(λ, Rexp_norm, label="Absolute")
yaxis!("Reflectance")
xaxis!("Wavelength [nm]")
gui()

Comparison of reflectance spectra

Clone this wiki locally