The transfer matrix adds amplitudes: every reflected wave interferes with every other. That is right for a film a few hundred nanometres thick, and wrong for the glass it sits on. A 1 mm plate in a spectrometer shows no fringes, though the matrix predicts them, with a contrast of nearly 8 % for glass. The discrepancy is not a failure of Maxwell's equations; it is a statement about the light and the instrument, and once it is made precise it becomes a second formalism, this time for intensities, that joins seamlessly to the first.
Fringes too fine to see
Two reflections that differ by a path interfere only if the light stays coherent over that path. A source of bandwidth has a coherence length
30 µm for a 10 nm bandwidth at 550 nm. Put the other way, the fringes of a slab are spaced by
which for 1 mm of glass at 600 nm is 0.12 nm. Any instrument with a coarser resolution, nearly all of them, averages over many fringes and records their mean. Three other averages act in the same direction: a real plate varies in thickness by more than a wavelength across the beam, the beam has a spread of angles (a cone of a few degrees already smears by more than a fringe), and a thermal source's phase is random on a timescale set by its bandwidth. Each of them averages the phase uniformly over , and that is the operational definition of an incoherent layer: one whose round-trip phase is, as far as the measurement can tell, uniformly random.
Adding intensities: the phase average
Take the Airy sum for a slab, , and average over . The cross terms between passes with different numbers of round trips carry , , and average to zero; what survives is the sum of the powers of the individual passes,
a geometric series in powers, not amplitudes. For a bare, non-absorbing plate with face reflectance this gives
8.2 % and 91.8 % for glass: twice the single-surface loss, less a little. The phase average and the "add intensities" rule are the same statement; PyStratify's Verification page checks the engine's incoherent path against an explicit average of coherent solves over the layer's phase, and they agree to .
Coherent films on incoherent plates
Harbecke (1986), Mitsas and Siapkas (1995) and Katsidis and Siapkas (2002) generalised this to any stack. The layers are grouped into coherent sub-stacks, each solved with the transfer matrix of amplitudes, which yields its reflectance and transmittance from the front, , , and from the back, , . The sub-stacks are then joined through the incoherent layers by intensity matrices: for a sub-stack between two incoherent regions
which carries the forward and backward powers across it exactly as the characteristic matrix carries the fields, and the propagation through an incoherent layer of absorptance is a diagonal matrix of its single-pass attenuation . A thin film on a thick substrate is then exact for both: the film's fringes survive, and the substrate contributes its two faces in power. Two features of the formula deserve notice. for an absorbing sub-stack (a dielectric film on an absorbing one reflects differently from the two sides, though always, by reciprocity), so the back-side coefficients cannot be dropped. And an incoherent layer's own thickness enters only through its absorption: a lossless incoherent plate's thickness has no effect on and at all, which is why a measured spectrum cannot tell a 1 mm plate from a 2 mm one.
PyStratify's planar engine implements this scheme (Byrnes's inc_tmm); in the calculator each layer carries a
coherence flag (c or i), the substrate behind the last layer is semi-infinite, and a thick substrate is written
as an incoherent layer followed by air.
Code
import numpy as np
from pystratify import planar
n = lambda wl: [1.0, 2.3, 1.52, 1.0] # incident medium, layers, substrate
d = [np.inf, 0.13, 1000.0, np.inf] # thicknesses, µm
lam = (400 + 2 * np.arange(201)) * 1e-3 # wavelength, µm
th = np.radians(0)
R, T = {}, {}
for pol in ('s', 'p'):
rows = [planar.inc_tmm(pol, n(wl), d, ['i', 'c', 'i', 'i'], th, wl) for wl in lam]
R[pol], T[pol] = np.array([r['R'] for r in rows]), np.array([r['T'] for r in rows])
R_avg, T_avg = (R['s'] + R['p']) / 2, (T['s'] + T['p']) / 2 # unpolarized
- agrees reflectance at the half-wave wavelength 2nd = 598 nm, bare plate 2R₀/(1 + R₀): 0.081682 against 0.081682 ± 2×10⁻⁵ (closed form (incoherent plate, R₀ = ((n − 1)/(n + 1))²))
At the film's half-wave wavelength it is absent, and the reflectance returns to the bare plate's . Between those points the film's fringes ride on the plate's incoherent background, which is what a measured spectrum looks like. A coherent calculation of the same stack would show the film's fringes modulated by a comb of 0.12 nm fringes of nearly 8 % depth, and would have to be computed on a grid finer than 0.03 nm to resolve them at all, which is the practical reason the incoherent treatment matters even when the instrument's resolution is known.
Partial coherence
Between the two limits sit rough interfaces, thickness gradients and finite spectral resolution, which damp fringes without removing them. Three models are in use, and each is a different average of the coherent result:
- spectral resolution: convolve the coherent spectrum with the instrument's line shape; exact for a perfect plane-parallel plate measured with a known slit, and the right model for a thin wafer in a high-resolution FTIR, where the fringes of 500 µm of silicon are resolved and routinely used to measure thickness;
- thickness variation: average the coherent result over the distribution of across the beam, which damps the fringes by the Fourier transform of that distribution; a Gaussian spread of multiplies the fringe contrast by ;
- phase averaging within a layer, Katsidis and Siapkas' formulation, in which a layer is assigned a degree of coherence between 0 and 1 that interpolates between the amplitude and the intensity matrices.
Their infrared reflectance of a thin film on a thick wafer is the textbook case of fringes riding on an incoherent background, with the semi-infinite and the finite incoherent substrate side by side.
What the model is not
An incoherent layer is a model of the measurement, not of the light inside the plate: the fields in the glass are as coherent as anywhere else, and a different instrument (a laser and a photodiode, say) would see the fringes. The treatment also assumes the incoherent layer is thick enough for the multiply reflected beams to be laterally separated or phase-randomised; a layer of a few wavelengths that is simply rough belongs to the scattering models of the textured surfaces section. And a stack with several incoherent layers is handled exactly by the intensity matrices, but the engine's only independent check for that case is the explicit phase average, as the Verification page states.
References
- C. C. Katsidis and D. I. Siapkas, Appl. Opt. 41, 3978 (2002), doi:10.1364/AO.41.003978
- B. Harbecke, Appl. Phys. B 39, 165 (1986), doi:10.1007/BF00697414
- C. L. Mitsas and D. I. Siapkas, Appl. Opt. 34, 1678 (1995), doi:10.1364/AO.34.001678
- M. Born and E. Wolf, Principles of Optics, 7th ed. (Cambridge University Press, 1999), §7.6 and ch. 10, doi:10.1017/CBO9781139644181
- S. J. Byrnes, Multilayer optical calculations, arXiv:1603.02720 (2016), https://arxiv.org/abs/1603.02720