| SOCR ≫ | BPAD1 Website ≫ | BPAD GitHub ≫ |
Biomedical Physics with Applications to Disease (BPAD)
Every optical diagnostic method in medicine answers the same question in a different way: what happened to the photon? It was absorbed, re-emitted, elastically scattered, or inelastically scattered. That single fork in the road separates capnography from pulse oximetry, Raman from OCT, and fluorescence microscopy from infrared thermography.
This chapter is organized around one physical principle rather than around a catalogue of devices. When light meets tissue, a photon can be absorbed, emitted after excitation, elastically scattered, or inelastically scattered. Each outcome supports a distinct family of clinical measurements, and knowing which outcome a device exploits tells you immediately what it can and cannot measure.
The conceptual sequence is
\[\underbrace{\text{biological scale}}_{\text{what must be resolved}} \rightarrow \underbrace{\text{electromagnetic radiation}}_{E = hc/\lambda} \rightarrow \underbrace{\text{light--matter interaction}}_{\text{fate of the photon}} \rightarrow \underbrace{\text{absorption, emission, scattering}}_{\text{contrast mechanism}} \rightarrow \underbrace{\text{diagnostic spectroscopy and imaging}}_{\text{clinical question}}.\]
The chapter serves three uses. As a course text, each section develops the physics from first principles and anchors it in a clinical measurement. As a reference, sections are self-contained: a reader who needs only the Beer–Lambert law and the tissue optical window can read Section 2.1 alone. As classroom material, every section ends with a Section summary suitable for a slide and a Checkpoint question suitable for discussion; worked examples are set off in their own boxes.
Chapter-level clinical puzzle. A patient is under general anaesthesia and the team must confirm ventilation; a premature infant needs continuous brain-oxygenation monitoring; a patient with diabetes has retinal capillary changes that may be invisible on fundus photography; a surgeon needs to know whether a tumor margin is clear while the patient is still on the table; a rheumatologist wants to compare inflammation over two joints without touching them; and a dermatologist must decide how much ultraviolet light is therapeutic rather than harmful. Six problems, six different instruments, one physics: what happens to the photon.
Photon story for the chapter. Follow a single photon. In capnography it is absorbed by a CO\(_2\) molecule at 4.3 µm, and its disappearance measures ventilation. In pulse oximetry it is absorbed differently by oxyhaemoglobin and deoxyhaemoglobin, and the difference measures saturation. In Raman spectroscopy, roughly one photon in \(10^7\) leaves with slightly altered energy, carrying a molecular fingerprint. In OCT it is backscattered and made to interfere with a reference beam, and its phase reveals depth. In thermography no external photon is used at all: the body emits its own at about 9 µm. And in ultraviolet photobiology the photon is absorbed by DNA, which is where medicine stops observing and starts managing dose.
Key idea. Optical diagnostic methods differ mainly in the fate of the photon. Once you know whether a device measures absorption, emission, elastic scattering, or inelastic scattering, you can predict its contrast mechanism, its penetration depth, its resolution, and its failure modes.
This chapter applies rather than re-derives the mathematics of Chapter 1. Table 1 lists the specific results that are used and where they appear, so that a reader can review the relevant Chapter 1 section before proceeding.
All computations use base R plus ggplot2 and scales; gridExtra is used for multi-panel layout and is guarded, so the chapter knits without it. No network access or external data are required. Physical constants are defined once in the setup chunk (CODATA 2018 values) and reused, so every numerical result in the chapter is reproducible and internally consistent.
By the end of this chapter the reader should be able to:
| # | Objective | Section |
|---|---|---|
| 1 | Relate biological length scale to the resolution and penetration depth of an optical method, and explain why no single method spans all scales. | 2.1 |
| 2 | Relate wavelength, frequency, and photon energy, and place the diagnostic wavelength bands on the electromagnetic spectrum. | 2.1 |
| 3 | Classify a light–matter interaction as absorption, emission, elastic scattering, or inelastic scattering, and name the diagnostic family each supports. | 2.1 |
| 4 | Apply the Beer–Lambert law, convert between \(\mu_a\) and molar absorptivity, and state the conditions under which the law fails in tissue. | 2.1 |
| 5 | Distinguish Rayleigh from Mie scattering, define the anisotropy factor and reduced scattering coefficient, and compute a diffuse penetration depth. | 2.1 |
| 6 | Explain the tissue optical window quantitatively in terms of haemoglobin and water absorption. | 2.1 |
| 7 | Relate atomic and molecular energy-level structure to the spectral region used by each spectroscopic method. | 2.1 |
| 8 | Explain the physical basis of capnography, anaesthetic-gas monitoring, and FTIR, and state the IR activity requirement. | 2.2 |
| 9 | Explain the isosbestic point and the two-wavelength principle of pulse oximetry, including the ratio-of-ratios and why calibration is empirical. | 2.2 |
| 10 | Apply the modified Beer–Lambert law to recover haemoglobin concentration changes from a two-wavelength NIRS measurement. | 2.2 |
| 11 | Distinguish Rayleigh, Stokes, and anti-Stokes scattering, and use the Boltzmann factor to predict their relative intensities. | 2.3 |
| 12 | Contrast the IR and Raman selection rules and explain why the two methods are complementary. | 2.3 |
| 13 | Explain low-coherence interferometry, compute OCT axial and lateral resolution, and describe the resolution–depth-of-focus trade-off. | 2.3 |
| 14 | Explain Fourier-domain OCT as a Fourier-transform pair and describe how OCTA generates flow contrast. | 2.3 |
| 15 | Use the Jablonski picture to explain the Stokes shift, quantum yield, and fluorescence lifetime, and describe FLIM and multiphoton excitation. | 2.4 |
| 16 | Explain confocal optical sectioning and place CLE, OCT, and CT on a resolution–depth ladder. | 2.4 |
| 17 | Use the Boltzmann factor to explain why the body radiates in the infrared, and derive Wien’s and the Stefan–Boltzmann laws from the Planck function. | 2.5 |
| 18 | Compute total and net radiative exchange for the human body and explain the sensitivity of thermography from the \(T^4\) law. | 2.5 |
| 19 | Describe infrared thermography instrumentation and its clinical applications and limitations. | 2.5 |
| 20 | Classify UV bands, describe their biological effects, and use the erythemal action spectrum and MED to quantify UV dose. | 2.6 |
| 21 | Given a clinical question, select an appropriate optical method and justify the choice against its physical trade-offs. | 2.7 |
| Symbol | Meaning | Value / units |
|---|---|---|
| \(\lambda,\ \nu,\ \tilde{\nu}\) | wavelength, frequency, wavenumber | m, Hz, cm\(^{-1}\) |
| \(c\) | speed of light in vacuum | \(2.998\times10^{8}\) m s\(^{-1}\) |
| \(n\) | refractive index | dimensionless (\(\approx 1.38\) for soft tissue) |
| \(h,\ \hbar\) | Planck constant, reduced | \(6.626\times10^{-34}\) J s |
| \(k_B\) | Boltzmann constant | \(1.381\times10^{-23}\) J K\(^{-1}\) |
| \(\sigma_{SB}\) | Stefan–Boltzmann constant | \(5.670\times10^{-8}\) W m\(^{-2}\) K\(^{-4}\) |
| \(b\) | Wien displacement constant | \(2.898\times10^{-3}\) m K |
| \(\mu_a\) | absorption coefficient | cm\(^{-1}\) |
| \(\mu_s,\ \mu_s'\) | scattering and reduced scattering coefficient | cm\(^{-1}\) |
| \(g\) | scattering anisotropy, \(g=\langle\cos\theta\rangle\) | dimensionless (\(\approx 0.9\) in tissue) |
| \(\delta\) | optical penetration depth | mm |
| \(\varepsilon\) | molar absorptivity (chemistry) | L mol\(^{-1}\) cm\(^{-1}\) |
| \(\epsilon(\lambda)\) | emissivity (Sec. 2.5) / erythemal action spectrum (Sec. 2.6) | dimensionless |
| \(A\) | absorbance, \(A=-\log_{10}(I/I_0)\) | dimensionless |
| \(\Phi\) | fluorescence quantum yield | dimensionless |
| \(\tau\) | fluorescence lifetime | ns |
| \(\mathrm{NA}\) | numerical aperture | dimensionless |
| \(W_\lambda\) | spectral radiant exitance | W m\(^{-3}\) |
| \(\mathrm{MED}\) | minimal erythema dose | J m\(^{-2}\) |
A convenient working relation used repeatedly is \(E[\text{eV}] = 1240/\lambda[\text{nm}]\), accurate to better than \(0.02\%\).
| Chapter 1 result | Where it is used here | Physical statement |
|---|---|---|
| First-order ODE, exponential decay | Sec. 2.1, 2.4 | Beer–Lambert attenuation; fluorescence lifetime decay |
| Fourier transform, FFT | Sec. 2.2, 2.3 | FTIR interferogram \(\rightarrow\) spectrum; spectral fringes \(\rightarrow\) OCT depth profile |
| Fourier resolution set by window length | Sec. 2.2, 2.3 | FTIR resolution \(\approx 1/\Delta\delta_{\max}\); OCT axial resolution \(\propto \lambda_0^2/\Delta\lambda\) |
| Reciprocal width of a Fourier pair | Sec. 2.3 | Broad optical bandwidth \(\Rightarrow\) short coherence length \(\Rightarrow\) fine axial resolution |
| Critical points, optimization | Sec. 2.5 | Wien’s displacement law from \(dW_\lambda/d\lambda = 0\) |
| Definite integration | Sec. 2.5, 2.6 | Stefan–Boltzmann law from \(\int_0^\infty W_\lambda\,d\lambda\); erythemally weighted dose |
| Solving \(A\mathbf{x}=\mathbf{b}\) | Sec. 2.2 | Two-wavelength NIRS inversion for \(\Delta\)[HbO\(_2\)] and \(\Delta\)[Hb] |
| Least squares and estimation | Sec. 2.2, 2.4 | Spectral unmixing; fitting a fluorescence lifetime |
| Boltzmann factor and statistical weighting | Sec. 2.3, 2.5 | Anti-Stokes/Stokes ratio; why the body glows in the infrared |
| Signal-to-noise and \(\sqrt{N}\) statistics | Sec. 2.3, 2.5 | Why spontaneous Raman needs long integration; thermal camera NETD |
| Convolution and the point spread function | Sec. 2.3, 2.4 | Confocal and OCT resolution as an instrument PSF |
A chest CT resolves lung anatomy at the millimeter scale, OCT resolves retinal layers at the micrometer scale, and Raman spectroscopy probes chemical bonds at the sub-nanometer scale. No single method covers all three, because every technique occupies a physical window defined jointly by its resolution (the smallest separation it can distinguish) and its penetration depth (how far into tissue it can probe). These two quantities are almost always in tension: the same short wavelengths and tight focusing that buy resolution also guarantee strong scattering and shallow penetration.
The starting question in biomedical optics is therefore not “which instrument is best?” but what size structure must be detected, and what physical contrast can reveal it?
| Scale | Approximate size | Biomedical example | Typical optical method |
|---|---|---|---|
| meter | \(10^{0}\) m | whole body | — (radiography, Ch. 5) |
| centimeter | \(10^{-2}\) m | organ dimensions | NIRS, diffuse optical tomography |
| millimeter | \(10^{-3}\) m | tissue layers, tumor margins | OCT, thermography |
| micrometer | \(10^{-6}\) m | cells, capillaries, retinal layers | OCT, confocal microscopy |
| manometer | \(10^{-9}\) m | proteins, membranes, viruses | super-resolution fluorescence |
| ångström | \(10^{-10}\) m | atoms, chemical bonds | Raman, FTIR (spectroscopic, not spatial) |
The last row deserves emphasis: Raman and FTIR do not image at ångström resolution. They report on ångström-scale structure (bond lengths and vibrational frequencies) while their spatial resolution remains diffraction-limited at roughly a micrometer. Chemical resolution and spatial resolution are independent axes.
Section 2.1.1 summary. Resolution sets what a method can distinguish; penetration depth sets how far it can see; and the two generally trade against each other. Chemical specificity is a third, independent axis.
Checkpoint 2.1. Why can no single optical method visualize the whole body, individual cells, and molecular bonds simultaneously? Identify which physical constraint blocks each combination.
Light is an electromagnetic wave, a self-propagating modulation of coupled electric and magnetic fields. It is equally a stream of photons, each carrying a discrete quantum of energy. Biomedical optics needs both descriptions: the wave picture explains interference (OCT), diffraction (resolution limits), and coherence; the photon picture explains absorption, emission, and photochemical damage.
In vacuum, light travels at \(c = 2.998\times10^{8}\) m s\(^{-1}\). In a medium of refractive index \(n\) the speed is reduced,
\[\begin{equation} c_n = \frac{c}{n} \tag{1} \end{equation}\]
and wavelength and frequency are related by
\[\begin{equation} c = \lambda\,\nu . \tag{2} \end{equation}\]
When light crosses into a new medium its frequency is unchanged (it is set by the source) while its wavelength changes (because the speed changes). This is not a technicality: it is why OCT depths must be divided by the tissue refractive index to convert optical path length into physical depth (Section 2.3.5).
Treating light as photons, each carries energy
\[\begin{equation} E = h\nu = \frac{hc}{\lambda}, \tag{3} \end{equation}\]
with \(h = 6.626\times10^{-34}\) J s. Equivalently \(E = \hbar\omega\) with \(\omega = 2\pi\nu\) and \(\hbar = h/2\pi\). The wave and particle descriptions are unified for any particle of momentum \(p\) by the de Broglie relation
\[\begin{equation} \lambda = \frac{h}{p} = \frac{h}{mv}. \tag{4} \end{equation}\]
From equation to patient. Equation (3) is the single most consequential relation in this chapter. It explains why an ultraviolet photon can break a covalent bond in DNA while a near-infrared photon of the same intensity cannot; why near-infrared light is the natural choice for non-invasive oxygenation measurement; and why the human body, at 310 K, radiates only in the infrared. Wavelength is not a free design parameter, it is a choice about photon energy, and therefore about which molecular processes are accessible.
Worked Example 2.1 (pulse-oximeter photon energies). A pulse oximeter uses LEDs at \(\lambda = 660\) nm (red) and \(\lambda = 940\) nm (near-infrared). Using \(E[\text{eV}] = 1240/\lambda[\text{nm}]\),
\[E_{660} = \frac{1240}{660} = 1.88\ \text{eV} = 3.01\times10^{-19}\ \text{J}, \qquad E_{940} = \frac{1240}{940} = 1.32\ \text{eV} = 2.11\times10^{-19}\ \text{J}.\]
Neither photon is energetic enough to break a chemical bond (typically \(3\)–\(5\) eV), which is why pulse oximetry is intrinsically safe. What matters diagnostically is not the absolute energies but that these two wavelengths sit on opposite sides of the haemoglobin isosbestic point near 805 nm, where the two haemoglobin species absorb oppositely (Section 2.2.5).
| Region | Wavelength | Frequency (Hz) | Photon energy (eV) | Biomedical relevance |
|---|---|---|---|---|
| Radio | \(>1\) m | \(<3\times10^{8}\) | \(<1.24\times10^{-6}\) | MRI (Ch. 4) |
| Microwave | 1 m – 1 mm | \(3\times10^{8}\) – \(3\times10^{11}\) | \(1.24\times10^{-6}\) – \(1.24\times10^{-3}\) | diathermy, rotational spectroscopy |
| Far infrared | 1 mm – 15 µm | \(3\times10^{11}\) – \(2\times10^{13}\) | \(1.24\times10^{-3}\) – 0.083 | thermal emission tail |
| Mid infrared | 15 – 3 µm | \(2\times10^{13}\) – \(10^{14}\) | 0.083 – 0.41 | thermography (9 µm), capnography (4.3 µm), FTIR |
| Near infrared | 3 µm – 750 nm | \(10^{14}\) – \(4\times10^{14}\) | 0.41 – 1.65 | NIRS, OCT, pulse oximetry |
| Visible | 750 – 400 nm | \(4\times10^{14}\) – \(7.5\times10^{14}\) | 1.65 – 3.11 | fluorescence, confocal, Raman excitation |
| Ultraviolet | 400 – 12 nm | \(7.5\times10^{14}\) – \(2.4\times10^{16}\) | 3.11 – 103 | photobiology, phototherapy, sterilization |
| X-ray, \(\gamma\)-ray | \(<12\) nm | \(>2.4\times10^{16}\) | \(>103\) | radiography, CT (Ch. 5), PET (Ch. 6) |
wl <- 10^seq(1, 4.5, length.out = 600) # nm
E_eV <- hc_eVnm / wl
marks <- data.frame(
wl = c(300, 365, 488, 660, 805, 940, 1300, 4300, 9300),
lab = c("UVB 300", "UVA 365", "fluor. exc. 488", "oximeter 660",
"isosbestic 805", "oximeter 940", "OCT 1300",
"CO2 4300", "body IR 9300"))
marks$E <- hc_eVnm/marks$wl
ggplot(data.frame(wl = wl, E = E_eV), aes(wl, E)) +
annotate("rect", xmin = 400, xmax = 750, ymin = 1e-3, ymax = 1e3,
fill = "gold", alpha = 0.18) +
geom_line(linewidth = 0.9, colour = bpad_pal[1]) +
geom_hline(yintercept = 3.6, linetype = "dashed", colour = bpad_pal[2]) +
geom_point(data = marks, aes(wl, E), colour = bpad_pal[2], size = 1.9) +
geom_text(data = marks, aes(wl, E, label = lab), size = 2.5,
hjust = -0.08, vjust = -0.5, colour = "grey25") +
scale_x_log10(breaks = 10^(1:4),
labels = trans_format("log10", math_format(10^.x))) +
scale_y_log10(breaks = 10^(-2:2),
labels = trans_format("log10", math_format(10^.x))) +
annotate("text", x = 545, y = 300, label = "visible", fontface = "italic",
size = 3.2, colour = "grey30") +
annotate("text", x = 12, y = 4.6, label = "covalent bond ~3.6 eV",
size = 2.8, hjust = 0, colour = bpad_pal[2]) +
labs(title = "Photon energy versus wavelength",
x = "wavelength (nm, log scale)", y = "photon energy (eV, log scale)")Figure 1: Photon energy versus wavelength across the electromagnetic spectrum, Eq. (3). The shaded band marks the visible range. Labelled points mark the wavelengths used by specific instruments discussed in this chapter. The dashed line at 3.6 eV is a representative covalent bond dissociation energy: only ultraviolet photons cross it.
Checkpoint 2.2. Rank red light, near-infrared light, ultraviolet light, and X-rays by photon energy. Then explain why the ranking, rather than the intensity, determines which of them can cause direct DNA damage.
When a photon meets tissue, four outcomes organize the entire chapter.
| Photon outcome | What happens | Diagnostic family | Section |
|---|---|---|---|
| Absorption | Photon energy transferred to the molecule | capnography, anaesthetic-gas monitoring, FTIR, pulse oximetry, NIRS | 2.2 |
| Emission | Molecule releases a photon after excitation | fluorescence microscopy, confocal endomicroscopy, FLIM | 2.4 |
| Elastic scattering | Direction changes, energy unchanged | OCT, OCTA, diffuse optical imaging | 2.3 |
| Inelastic scattering | Direction and energy change | Raman spectroscopy, SRS, CARS | 2.3 |
A fifth process, spontaneous thermal emission, requires no incident photon at all and is the basis of infrared thermography (Section 2.5).
Section 2.1.4 summary. Absorption tells you how much of a known absorber is present. Emission tells you where a labelled target is. Elastic scattering tells you where the structures are. Inelastic scattering tells you what molecules are present. Thermal emission tells you how hot the surface is.
Checkpoint 2.3. A photon leaves tissue with the same energy it entered with, but in a different direction. Which of the four outcomes is this, and which diagnostic family exploits it?
Consider a collimated beam traversing a thin slab of an absorbing medium. The fractional loss of intensity across a thickness \(dx\) is proportional to the thickness,
\[\frac{dI}{dx} = -\mu_a I,\]
a first-order linear ODE of exactly the form solved in Chapter 1. Integrating gives the Beer–Lambert law
\[\begin{equation} I(x) = I_0\, e^{-\mu_a x}, \tag{5} \end{equation}\]
where \(\mu_a\) (cm\(^{-1}\)) is the absorption coefficient. Its reciprocal \(1/\mu_a\) is the mean free path, the average distance a photon travels before absorption, and it plays exactly the role that a time constant plays in a decay law.
Chemists write the same statement using base-10 logarithms:
\[\begin{equation} A = -\log_{10}\!\left(\frac{I}{I_0}\right) = \varepsilon\, c\, l, \tag{6} \end{equation}\]
with \(A\) the absorbance, \(\varepsilon\) the molar absorptivity (L mol\(^{-1}\) cm\(^{-1}\)), \(c\) the concentration, and \(l\) the path length. The two conventions are connected by \(\mu_a = 2.303\,\varepsilon\, c\), the factor \(2.303 = \ln 10\) converting between natural and decadic logarithms. Mixing the conventions is a common and consequential error.
For a mixture of absorbers the coefficients add:
\[\begin{equation} \mu_a(\lambda) = \sum_{i} 2.303\,\varepsilon_i(\lambda)\, c_i , \tag{7} \end{equation}\]
which is the linearity property that makes multi-wavelength unmixing (pulse oximetry, NIRS, multispectral photoacoustics in Chapter 3) possible at all.
When Beer–Lambert fails. Equation (5) assumes a collimated beam, a non-scattering medium, monochromatic light, and dilute non-interacting absorbers. Living tissue violates the first two badly. Photons follow long, tortuous paths, so the true optical path length greatly exceeds the geometric separation, and some light is lost sideways without ever being absorbed. Section 2.2.7 introduces the modified Beer–Lambert law, which repairs the damage well enough for changes in concentration; Section 2.1.6 explains why the repair is needed.
x <- seq(0, 5, length.out = 300)
mu <- c(0.3, 0.7, 1.5)
bl <- do.call(rbind, lapply(mu, function(m)
data.frame(x = x, Tfrac = exp(-m*x),
mu = sprintf("mu_a = %.1f / cm", m))))
p1 <- ggplot(bl, aes(x, Tfrac, colour = mu)) +
geom_line(linewidth = 0.9) +
scale_colour_manual(values = bpad_pal[1:3]) +
labs(title = "transmittance", x = "path length (cm)", y = expression(I/I[0]))
p2 <- ggplot(bl, aes(x, Tfrac, colour = mu)) +
geom_line(linewidth = 0.9) + scale_y_log10() +
scale_colour_manual(values = bpad_pal[1:3]) +
labs(title = "same data, logarithmic axis",
x = "path length (cm)", y = expression(I/I[0]~"(log)"))
bpad_grid(p1, p2, ncol = 2)Figure 2: The Beer-Lambert law, Eq. (5). Left: transmitted fraction falls exponentially with path length. Right: on a logarithmic axis the same curves are straight lines whose slopes are the absorption coefficients, which is why absorbance is the quantity actually fitted in practice.
## mean free path and the "1/e" depth
data.frame(mu_a_per_cm = mu, mean_free_path_cm = round(1/mu, 3),
transmittance_at_1cm = round(exp(-mu*1), 4))## mu_a_per_cm mean_free_path_cm transmittance_at_1cm
## 1 0.3 3.333 0.7408
## 2 0.7 1.429 0.4966
## 3 1.5 0.667 0.2231
Worked Example 2.2 (absorbance and concentration). A cuvette of 1 cm path length transmits 40% of the incident light. Then
\[A = -\log_{10}(0.40) = 0.398 \approx 0.40 .\]
If the molar absorptivity is \(\varepsilon = 200\) L mol\(^{-1}\) cm\(^{-1}\), Eq. (6) gives
\[c = \frac{A}{\varepsilon l} = \frac{0.40}{200 \times 1} = 2.0\times10^{-3}\ \text{mol L}^{-1}.\]
The corresponding absorption coefficient is \(\mu_a = -\ln(0.40)/1\ \text{cm} = 0.92\) cm\(^{-1}\), so the mean free path is \(1.09\) cm. Note that \(A\) and \(\mu_a\) differ by the factor \(\ln 10\).
Absorption is only half the story. In the visible and near-infrared, soft tissue scatters light far more strongly than it absorbs it, typically \(\mu_s \sim 100\) cm\(^{-1}\) against \(\mu_a \sim 0.1\) cm\(^{-1}\). Scattering is what makes tissue opaque-looking rather than merely coloured, and it is the single largest obstacle to quantitative optical measurement.
Two regimes matter, distinguished by the size parameter \(2\pi a/\lambda\) where \(a\) is the scatterer radius.
Rayleigh scattering applies when the scatterer is much smaller than the wavelength (\(a \ll \lambda\)), as for individual macromolecules and fine collagen fibrils. The scattering cross-section varies as
\[\begin{equation} \sigma_{\text{Rayleigh}} \propto \frac{1}{\lambda^{4}}, \tag{8} \end{equation}\]
so blue light scatters roughly \((700/450)^4 \approx 6\) times more strongly than red. Rayleigh scattering is nearly isotropic, sending as much light backward as forward.
Mie scattering applies when the scatterer is comparable to or larger than the wavelength (\(a \gtrsim \lambda\)), as for mitochondria, nuclei, and cell membranes. Its wavelength dependence is much weaker (roughly \(\lambda^{-b}\) with \(b \approx 0.5\)–\(2\)) and, crucially, it is strongly forward-directed.
Forward-directedness is quantified by the anisotropy factor
\[\begin{equation} g = \langle \cos\theta \rangle, \tag{9} \end{equation}\]
the mean cosine of the scattering angle: \(g = 0\) is isotropic, \(g \to 1\) is purely forward. Soft tissue has \(g \approx 0.9\), meaning a typical scattering event deflects a photon by only about \(25^\circ\). Because many such small deflections are needed to randomize direction, it is convenient to define the reduced scattering coefficient
\[\begin{equation} \mu_s' = \mu_s\,(1-g), \tag{10} \end{equation}\]
which is the equivalent isotropic scattering coefficient. With \(g = 0.9\), \(\mu_s' = 0.1\,\mu_s\), so a tissue with \(\mu_s = 100\) cm\(^{-1}\) behaves, on scales larger than a millimeter, like an isotropic scatterer with \(\mu_s' = 10\) cm\(^{-1}\). Empirically, across soft tissues,
\[\begin{equation} \mu_s'(\lambda) = a\left(\frac{\lambda}{500\ \text{nm}}\right)^{-b}, \tag{11} \end{equation}\]
with \(a \approx 10\)–\(40\) cm\(^{-1}\) and \(b \approx 1\)–\(1.5\).
When scattering dominates absorption, light propagation becomes diffusive, and the relevant depth scale is the optical penetration depth
\[\begin{equation} \delta = \frac{1}{\sqrt{3\mu_a\,(\mu_a + \mu_s')}}, \tag{12} \end{equation}\]
at which the diffuse fluence falls to \(1/e\). Equation (12) is the quantitative answer to “how deep can we see?”, and it is the bridge to the photoacoustic methods of Chapter 3, where optical absorption at depth \(\delta\) is read out acoustically rather than optically.
lam <- seq(400, 1400, by = 5)
musp_fun <- function(l, a = 20, b = 1.3) a*(l/500)^(-b)
sc <- rbind(
data.frame(lam = lam, v = 100*(lam/500)^(-4), law = "Rayleigh: lambda^-4"),
data.frame(lam = lam, v = musp_fun(lam), law = "tissue mu_s' : a(lambda/500)^-1.3"))
p1 <- ggplot(sc, aes(lam, v, colour = law)) +
geom_line(linewidth = 0.9) + scale_y_log10() +
scale_colour_manual(values = bpad_pal[1:2]) +
labs(title = "wavelength dependence of scattering",
x = "wavelength (nm)", y = expression("coefficient (cm"^-1*", log)"))
## Henyey-Greenstein phase function for three anisotropy values
th <- seq(0, pi, length.out = 400)
hg <- function(th, g) (1 - g^2)/(2*(1 + g^2 - 2*g*cos(th))^1.5)
ph <- do.call(rbind, lapply(c(0, 0.5, 0.9), function(g)
data.frame(theta = th*180/pi, p = hg(th, g), g = sprintf("g = %.1f", g))))
p2 <- ggplot(ph, aes(theta, p, colour = g)) +
geom_line(linewidth = 0.9) + scale_y_log10() +
scale_colour_manual(values = bpad_pal[c(3,1,2)]) +
labs(title = "Henyey-Greenstein phase function",
x = "scattering angle (degrees)", y = "probability density (log)")
bpad_grid(p1, p2, ncol = 2)Figure 3: Scattering in tissue. Left: Rayleigh scattering falls as the fourth power of wavelength, whereas the reduced scattering coefficient of bulk tissue follows a much shallower power law, Eq. (11). Right: the effect of the anisotropy factor, Eq. (9); with g = 0.9 a single scattering event deflects a photon by only about 25 degrees on average, so many events are needed to randomize direction.
## Rayleigh: blue (450 nm) scatters 5.9 times more than red (700 nm)
## with g = 0.90, mean deflection per event = 25.8 degrees
## mu_s = 100 /cm and g = 0.9 -> mu_s' = 10 /cm
Combining absorption and scattering explains one of the central facts of biomedical optics: there is a band of wavelengths, roughly 650–1100 nm, in which light penetrates tissue by several millimeters. Below it, haemoglobin absorbs strongly (the Soret band near 420 nm and the Q bands near 540–580 nm). Above it, water absorbs strongly (bands near 970, 1200, and 1450 nm). Between the two lies a transmission window, and it is not a coincidence that pulse oximetry, NIRS, OCT, and photoacoustic imaging all operate inside it.
The demonstration below computes the window quantitatively from representative chromophore data rather than asserting it.
## Representative molar extinction coefficients (cm^-1 / M), Prahl compilation
hb_tab <- data.frame(
lam = c(400,420,450,500,540,560,576,600,620,640,660,680,700,720,740,760,
780,800,805,820,840,860,880,900,940,980,1000),
HbO2 = c(266232,466800,62816,20932,53236,39036,60000,3200,1506,610,320,293,
290,313,383,586,858,816,800,888,966,1058,1123,1198,1214,1154,1132),
Hb = c(223296,314000,103292,20862,40092,53788,37020,14677,10035,5148,3227,
2153,1794,1540,1442,1549,1191,762,800,726,693,691,707,762,693,726,726))
## Representative pure-water absorption coefficient (cm^-1)
w_tab <- data.frame(
lam = c(400,500,600,700,800,900,970,1000,1100,1200,1300,1450),
mua = c(6e-4,2.5e-4,2.3e-3,6.0e-3,1.96e-2,6.8e-2,0.45,0.36,0.16,1.00,1.40,29.0))
c_Hb <- 150/64500 # M, whole blood: 150 g/L, 64.5 kDa
lg <- seq(400, 1400, by = 2)
mua_HbO2 <- 2.303*c_Hb*exp(approx(hb_tab$lam, log(hb_tab$HbO2), lg, rule = 2)$y)
mua_Hb <- 2.303*c_Hb*exp(approx(hb_tab$lam, log(hb_tab$Hb), lg, rule = 2)$y)
mua_H2O <- exp(approx(w_tab$lam, log(w_tab$mua), lg, rule = 2)$y)
mua_mel <- 1.70e12*lg^(-3.48) # melanosome, Jacques parameterization
## Composite soft tissue and its diffuse penetration depth
satO2 <- 0.75; f_blood <- 0.02; f_water <- 0.70
mua_tissue <- f_blood*(satO2*mua_HbO2 + (1 - satO2)*mua_Hb) + f_water*mua_H2O
musp_t <- musp_fun(lg)
delta_mm <- 10/sqrt(3*mua_tissue*(mua_tissue + musp_t))
chrom <- rbind(
data.frame(lam = lg, mua = mua_HbO2, sp = "HbO2 (whole blood)"),
data.frame(lam = lg, mua = mua_Hb, sp = "Hb (whole blood)"),
data.frame(lam = lg, mua = mua_H2O, sp = "water"),
data.frame(lam = lg, mua = 0.05*mua_mel, sp = "melanosome (5% vol.)"))
p1 <- ggplot(chrom, aes(lam, mua, colour = sp)) +
geom_line(linewidth = 0.85) +
geom_vline(xintercept = 805, linetype = "dashed", colour = "grey55") +
scale_y_log10() +
coord_cartesian(ylim = c(1e-4, 1e4)) +
scale_colour_manual(values = bpad_pal[c(2,1,6,7)]) +
labs(title = "chromophore absorption", x = "wavelength (nm)",
y = expression(mu[a]~"(cm"^-1*", log)"))
p2 <- ggplot(data.frame(lam = lg, d = delta_mm), aes(lam, d)) +
geom_ribbon(data = subset(data.frame(lam = lg, d = delta_mm),
d > max(delta_mm)/2),
aes(ymin = 0, ymax = d), fill = bpad_pal[3], alpha = 0.20) +
geom_line(linewidth = 1.0, colour = bpad_pal[3]) +
labs(title = "diffuse penetration depth", x = "wavelength (nm)",
y = expression(delta~"(mm)"))
bpad_grid(p1, p2, ncol = 2)Figure 4: The tissue optical window, computed from Eqs. (7) and (12). Left: absorption coefficients of the dominant chromophores. Right: diffuse optical penetration depth for a representative soft tissue (2 percent blood volume, 75 percent saturation, 70 percent water). The window is bounded below by haemoglobin and above by water absorption.
i <- which.max(delta_mm)
win <- range(lg[delta_mm > max(delta_mm)/2])
cat(sprintf("maximum penetration depth %.2f mm at %d nm\n", delta_mm[i], lg[i]))## maximum penetration depth 6.09 mm at 720 nm
## optical window (delta above half its maximum): 634 - 1168 nm
knitr::kable(data.frame(
wavelength_nm = c(450, 550, 660, 800, 900, 1000, 1300),
mu_a_per_cm = round(approx(lg, mua_tissue, c(450,550,660,800,900,1000,1300))$y, 4),
mu_s_prime = round(musp_fun(c(450,550,660,800,900,1000,1300)), 2),
delta_mm = round(approx(lg, delta_mm, c(450,550,660,800,900,1000,1300))$y, 2)),
caption = "Absorption, reduced scattering, and penetration depth for a representative soft tissue.")| wavelength_nm | mu_a_per_cm | mu_s_prime | delta_mm |
|---|---|---|---|
| 450 | 7.8128 | 22.94 | 0.37 |
| 550 | 4.9064 | 17.67 | 0.55 |
| 660 | 0.1150 | 13.94 | 4.54 |
| 800 | 0.0997 | 10.86 | 5.52 |
| 900 | 0.1642 | 9.31 | 4.63 |
| 1000 | 0.3624 | 8.12 | 3.29 |
| 1300 | 1.0904 | 5.78 | 2.11 |
Section 2.1.7 summary. The optical window exists because haemoglobin absorption falls steeply above about 650 nm while water absorption rises steeply above about 1100 nm. Inside the window a few millimeters of tissue can be interrogated optically; outside it, only the surface. Every non-invasive optical method in this chapter lives inside this window, and Chapter 3 shows how photoacoustics escapes its depth limit by converting the optical signal into an acoustic one.
Checkpoint 2.4. Melanin absorption falls monotonically with wavelength and has no window of its own. Using the computed figure, explain why heavily pigmented skin reduces the signal available to a red LED far more than to a near-infrared LED, and connect this to the pulse-oximetry accuracy problem discussed in Section 2.2.6.
Spectroscopy is possible because atoms and molecules possess discrete energy levels. A photon is absorbed or emitted only when its energy matches an allowed level difference,
\[\begin{equation} \Delta E = h\nu = \frac{hc}{\lambda}. \tag{13} \end{equation}\]
This quantization is why a molecule absorbs at particular wavelengths rather than uniformly, and therefore why absorption spectra are fingerprints rather than featureless attenuation curves.
Atomic levels. The Bohr model gives the hydrogen levels
\[\begin{equation} E_n = -\frac{13.6}{n^{2}}\ \text{eV}, \qquad n = 1,2,3,\ldots \tag{14} \end{equation}\]
The negative sign denotes a bound state; \(E \to 0\) as \(n\to\infty\) is ionization, so hydrogen’s ionization energy is 13.6 eV (sodium’s is 5.1 eV). The full quantum description assigns each electron five quantum numbers: principal \(n\) (energy), orbital angular momentum \(l = 0,\ldots,n-1\) (shape: s, p, d, f), magnetic \(m_l = -l,\ldots,+l\) (orientation), spin \(s = 1/2\), and spin projection \(m_s = \pm 1/2\). Transitions obey the selection rules \(\Delta l = \pm1\) and \(\Delta j = 0,\pm1\); violating transitions are “forbidden” because the transition dipole moment vanishes.
n <- 1:6
En <- -13.6/n^2
lev <- data.frame(n = n, E = En)
tr <- rbind(
data.frame(from = 2:5, to = 1, series = "Lyman (UV)", x = 0.42),
data.frame(from = 3:6, to = 2, series = "Balmer (visible)", x = 0.62))
tr$Efrom <- -13.6/tr$from^2; tr$Eto <- -13.6/tr$to^2
tr$lambda_nm <- hc_eVnm/(tr$Efrom - tr$Eto)
ggplot() +
geom_segment(data = lev, aes(x = 0.28, xend = 0.78, y = E, yend = E),
linewidth = 0.8) +
geom_text(data = lev, aes(x = 0.80, y = E, label = paste0("n = ", n)),
hjust = 0, size = 3.2) +
geom_segment(data = tr, aes(x = x, xend = x, y = Efrom, yend = Eto,
colour = series),
arrow = arrow(length = unit(0.13, "cm")), linewidth = 0.5) +
scale_colour_manual(values = bpad_pal[c(1,2)]) +
scale_y_continuous(breaks = seq(-14, 0, 2), limits = c(-14.6, 0.8)) +
scale_x_continuous(limits = c(0.2, 1.05)) +
labs(title = "Hydrogen atom energy levels", y = "energy (eV)", x = NULL) +
theme(axis.text.x = element_blank(), axis.ticks.x = element_blank(),
panel.grid.major.x = element_blank())Figure 5: Hydrogen energy levels from Eq. (14), with the Lyman (ultraviolet) and Balmer (visible) series. Level spacing narrows as 1/n squared and converges to the ionization limit at 0 eV. The Balmer H-alpha transition at 656 nm is the red line seen in every hydrogen discharge.
knitr::kable(data.frame(
transition = paste0("n = ", tr$from, " -> ", tr$to),
series = tr$series,
energy_eV = round(tr$Efrom - tr$Eto, 3),
wavelength_nm = round(tr$lambda_nm, 1)),
caption = "Photon energies and wavelengths of the first Lyman and Balmer transitions.")| transition | series | energy_eV | wavelength_nm |
|---|---|---|---|
| n = 2 -> 1 | Lyman (UV) | 10.200 | 121.6 |
| n = 3 -> 1 | Lyman (UV) | 12.089 | 102.6 |
| n = 4 -> 1 | Lyman (UV) | 12.750 | 97.2 |
| n = 5 -> 1 | Lyman (UV) | 13.056 | 95.0 |
| n = 3 -> 2 | Balmer (visible) | 1.889 | 656.4 |
| n = 4 -> 2 | Balmer (visible) | 2.550 | 486.2 |
| n = 5 -> 2 | Balmer (visible) | 2.856 | 434.1 |
| n = 6 -> 2 | Balmer (visible) | 3.022 | 410.2 |
Molecular levels. A molecule adds rotational and vibrational degrees of freedom to its electronic states. Treating a diatomic bond as a rigid rotor with reduced mass \(\mu = m_1m_2/(m_1+m_2)\) and moment of inertia \(I = \mu R^2\), the rotational energies are
\[\begin{equation} E_r = \frac{r(r+1)\hbar^{2}}{2I}, \qquad r = 0,1,2,\ldots \tag{15} \end{equation}\]
and, treating the bond as a harmonic oscillator with force constant \(k\) and \(\omega = \sqrt{k/\mu}\), the vibrational energies are
\[\begin{equation} E_v = \hbar\omega\left(v + \tfrac{1}{2}\right), \qquad v = 0,1,2,\ldots \tag{16} \end{equation}\]
Note the zero-point energy \(\hbar\omega/2\) in Eq. (16): a molecule vibrates even at absolute zero. The selection rules for one-photon absorption or emission are \(\Delta r = \pm1\) and \(\Delta v = \pm1\).
The resulting energy hierarchy determines which spectral region each method uses:
\[\underbrace{E_{\text{electronic}}}_{1-10\ \text{eV, UV/visible}} \;\gg\; \underbrace{E_{\text{vibrational}}}_{0.05-0.5\ \text{eV, mid-IR}} \;\gg\; \underbrace{E_{\text{rotational}}}_{10^{-4}-10^{-2}\ \text{eV, far-IR/microwave}} .\]
Section 2.1.8 summary. Electronic transitions require ultraviolet or visible photons and underlie fluorescence. Vibrational transitions require mid-infrared photons and underlie IR absorption and Raman. Rotational transitions require far-infrared or microwave photons. The hierarchy \(E_{\text{el}} \gg E_{\text{vib}} \gg E_{\text{rot}}\) explains the spectral placement of every method in this chapter.
Checkpoint 2.5. Why does a molecule absorb only at certain wavelengths rather than attenuating all wavelengths equally? Contrast this with the behaviour of a heated solid (Section 2.5.2), which emits a continuum.
Absorption methods measure photons that fail to arrive. Two distinct clinical families share this physics but answer different questions.
Two absorption families. Molecular infrared methods ask “which molecule absorbed the light?” and identify substances by their vibrational fingerprints (capnography, anaesthetic-gas analysis, FTIR). Haemoglobin-based red/near-infrared methods ask “how oxygenated is the blood or tissue?” and quantify a known absorber whose spectrum changes with its binding state (pulse oximetry, NIRS). The first is chemistry; the second is physiology.
The analytically useful mid-infrared region spans 4000–400 cm\(^{-1}\) (2.5–25 µm), where spectroscopists work in wavenumbers \(\tilde{\nu} = 1/\lambda\) because wavenumber is directly proportional to photon energy, \(E = hc\tilde{\nu}\).
A vibration is infrared active only if it changes the molecule’s electric dipole moment, because it is the oscillating dipole that couples to the oscillating electric field of the photon. Carbon dioxide illustrates the rule precisely. CO\(_2\) is linear and symmetric (O=C=O), so:
The 4.26 µm asymmetric stretch is the band every clinical capnograph uses.
IR versus Raman activity. IR absorption requires a change in dipole moment. Raman scattering (Section 2.3.2) requires a change in polarizability. A vibration may be IR active, Raman active, both, or neither. For a centrosymmetric molecule such as CO\(_2\) the rule of mutual exclusion applies: no vibration is both IR and Raman active. The CO\(_2\) symmetric stretch, invisible to a capnograph, is strongly Raman active. This complementarity is why the two techniques are used together rather than interchangeably.
Capnography measures the carbon dioxide concentration in exhaled breath, most importantly the end-tidal CO\(_2\) (\(\mathrm{EtCO_2}\)), the value at the end of exhalation, which approximates alveolar and hence arterial CO\(_2\). Detection uses a non-dispersive infrared (NDIR) sensor: a broadband IR source, a narrowband optical filter centred on the 4.26 µm band, a gas cell of known path length, and a detector. Concentration follows from Eq. (5) with a calibrated path length, which is straightforward here because a gas cell genuinely is a non-scattering medium with a collimated beam, exactly the conditions Beer–Lambert requires.
Clinically, \(\mathrm{EtCO_2}\) is the fastest available indicator of ventilation. It confirms tracheal (rather than oesophageal) intubation within a single breath, detects circuit disconnection immediately, tracks the adequacy of ventilation continuously, and, during cardiopulmonary resuscitation, reflects cardiac output because CO\(_2\) delivery to the lungs requires perfusion. A blood gas measurement is more accurate but takes minutes; capnography takes one breath.
Clinical example. After intubation, a sustained \(\mathrm{EtCO_2}\) waveform over several breaths confirms tracheal placement. A flat trace with no CO\(_2\) indicates oesophageal intubation, circuit disconnection, or absent circulation. During CPR, a sudden rise in \(\mathrm{EtCO_2}\) is an early sign of return of spontaneous circulation, often preceding a palpable pulse.
Anaesthetic gas analysers extend the same NDIR principle to quantify volatile agents (sevoflurane, isoflurane, desflurane, enflurane, halothane) alongside CO\(_2\) and N\(_2\)O. Each agent has a characteristic absorption spectrum in the 3–13 µm range, but the bands overlap, so a single-wavelength measurement cannot separate them.
The solution is exactly the linear unmixing problem of Eq. (7): measure absorbance at \(m\) wavelengths, and solve the linear system \(\mathbf{A} = E\mathbf{c}\) for the \(p\) concentrations, where \(E\) is the \(m \times p\) matrix of extinction coefficients. With \(m > p\) the system is solved by least squares (Chapter 1). The same mathematical structure reappears three more times in this book: two-wavelength NIRS (Section 2.2.7), multispectral photoacoustic unmixing (Chapter 3), and dual-energy CT material decomposition (Chapter 5).
wn <- seq(600, 3200, by = 2) # wavenumber, cm^-1
band <- function(c0, w, a) a*exp(-((wn - c0)^2)/(2*w^2))
gases <- rbind(
data.frame(wn = wn, A = band(2349, 12, 1.00) + band(667, 10, 0.55), gas = "CO2"),
data.frame(wn = wn, A = band(2224, 14, 0.85) + band(1285, 12, 0.45), gas = "N2O"),
data.frame(wn = wn, A = band(1200, 45, 0.70) + band(1130, 35, 0.55) +
band(830, 25, 0.30), gas = "sevoflurane"),
data.frame(wn = wn, A = band(1180, 40, 0.65) + band(1250, 30, 0.50) +
band(880, 22, 0.35), gas = "isoflurane"))
ggplot(gases, aes(wn, A, colour = gas)) +
geom_line(linewidth = 0.85) +
scale_x_reverse(breaks = seq(600, 3200, by = 400)) +
scale_colour_manual(values = bpad_pal[1:4]) +
annotate("segment", x = 2349, xend = 2349, y = 1.04, yend = 1.14,
colour = "grey35") +
annotate("text", x = 2349, y = 1.20, label = "capnography band\n4.26 um",
size = 2.7, colour = "grey25") +
labs(title = "Mid-infrared absorption bands of clinical gases (schematic)",
x = expression("wavenumber "*tilde(nu)*" (cm"^-1*")"),
y = "relative absorbance")Figure 6: Schematic mid-infrared absorption bands of respiratory and anaesthetic gases. Bands overlap, so a multi-wavelength measurement and a linear unmixing step, Eq. (7), are required to report each agent separately. The CO2 asymmetric stretch near 4.26 micrometers is well separated and is the band used by clinical capnographs.
data.frame(feature = c("CO2 asymmetric stretch", "CO2 bend", "N2O stretch"),
wavenumber_cm1 = c(2349, 667, 2224),
wavelength_um = round(1e4/c(2349, 667, 2224), 2),
photon_energy_eV = round(hc_eVnm/(1e7/c(2349, 667, 2224)), 4))## feature wavenumber_cm1 wavelength_um photon_energy_eV
## 1 CO2 asymmetric stretch 2349 4.26 0.2912
## 2 CO2 bend 667 14.99 0.0827
## 3 N2O stretch 2224 4.50 0.2757
Fourier-transform infrared spectroscopy identifies unknown materials from their complete absorption spectrum. In laboratory medicine it is the reference method for kidney stone composition (distinguishing calcium oxalate monohydrate from dihydrate, uric acid, struvite, and cystine, each of which implies different management), and it is widely used for drug and material identification in toxicology.
An FTIR spectrometer does not scan one wavelength at a time. A Michelson interferometer with a moving mirror encodes all wavelengths simultaneously into a single signal, the interferogram \(I(\delta)\), recorded as a function of the optical path difference \(\delta\). The spectrum is recovered by a Fourier transform:
\[\begin{equation} B(\tilde{\nu}) = \int_{-\infty}^{\infty} I(\delta)\, e^{\,i2\pi\tilde{\nu}\delta}\, d\delta . \tag{17} \end{equation}\]
Two advantages follow. The Fellgett (multiplex) advantage: because every wavelength is measured during the entire scan rather than for a \(1/N\) fraction of it, the signal-to-noise ratio improves by roughly \(\sqrt{N}\) for detector-noise-limited measurements. The Jacquinot (throughput) advantage: an interferometer needs no narrow entrance slit, so it accepts far more light than a dispersive monochromator.
Connection to Chapter 1. Equation (17) is the Fourier transform of Chapter 1 doing clinical work. The interferogram and the spectrum are a Fourier-transform pair, computed in practice with the FFT. The spectral resolution is set by the maximum mirror travel, \[\Delta\tilde{\nu} \approx \frac{1}{\Delta\delta_{\max}},\] which is precisely the Chapter 1 result that frequency resolution is set by the length of the observation window. A 1 cm mirror travel gives 1 cm\(^{-1}\) resolution.
The demonstration below builds a synthetic IR spectrum, computes its interferogram, transforms back, and shows how truncating the mirror travel degrades resolution. This is the complete FTIR measurement chain in fifteen lines of code.
N <- 8192
dnu <- 0.5 # cm^-1 per sample
nu <- (0:(N-1))*dnu
gau <- function(cc, w, a) a*exp(-((nu - cc)^2)/(2*w^2))
## a narrow band (w = 5) is included to expose the resolution limit
B <- gau(3300, 90, 0.6) + gau(2950, 40, 1.0) + gau(1650, 25, 0.8) +
gau(1450, 20, 0.5) + gau(1050, 5, 0.9)
L <- 2*N
Bsym <- c(B, 0, rev(B[2:N])) # even extension -> real interferogram
Igram <- Re(fft(Bsym))
ddelta <- 1/(L*dnu)
delta <- (0:(L-1))*ddelta # optical path difference, cm
Brec <- Re(fft(Igram, inverse = TRUE))[1:N]/L
cat(sprintf("round-trip maximum error: %.2e (exact to machine precision)\n",
max(abs(Brec - B))))## round-trip maximum error: 9.99e-16 (exact to machine precision)
## mirror travel 1.000 cm -> nominal resolution 1.00 cm^-1
truncate_spec <- function(frac) {
M <- max(2, floor(N*frac))
It <- Igram; keep <- c(1:M, (L - M + 2):L); It[-keep] <- 0
list(res = 1/delta[M], dmax = delta[M],
spec = Re(fft(It, inverse = TRUE))[1:N]/L)
}
fwhm_1050 <- function(y) {
idx <- nu > 950 & nu < 1150
xx <- nu[idx]; yy <- y[idx]
diff(range(xx[yy >= max(yy)/2]))
}
fr <- c(1, 0.10, 0.02)
tr <- lapply(fr, truncate_spec)
knitr::kable(data.frame(
interferogram_kept = paste0(100*fr, "%"),
mirror_travel_cm = round(sapply(tr, `[[`, "dmax"), 4),
nominal_resolution_cm1 = round(sapply(tr, `[[`, "res"), 1),
measured_FWHM_of_1050_band = round(sapply(tr, function(z) fwhm_1050(z$spec)), 1)),
caption = "Truncating the interferogram degrades spectral resolution; a band is broadened only once the instrument resolution approaches its intrinsic width.")| interferogram_kept | mirror_travel_cm | nominal_resolution_cm1 | measured_FWHM_of_1050_band |
|---|---|---|---|
| 100% | 0.9999 | 1.0 | 11 |
| 10% | 0.0999 | 10.0 | 11 |
| 2% | 0.0198 | 50.6 | 31 |
p1 <- ggplot(subset(data.frame(nu = nu, B = B), nu >= 500 & nu <= 4000),
aes(nu, B)) +
geom_line(colour = bpad_pal[1], linewidth = 0.7) +
scale_x_reverse() +
labs(title = "(a) infrared spectrum B(nu)",
x = expression(tilde(nu)*" (cm"^-1*")"), y = "absorbance")
p2 <- ggplot(data.frame(d = delta[1:600], I = Igram[1:600]), aes(d, I)) +
geom_line(colour = bpad_pal[2], linewidth = 0.6) +
labs(title = "(b) interferogram I(delta), centre burst region",
x = "optical path difference (cm)", y = "signal")
recdf <- do.call(rbind, lapply(seq_along(fr), function(i)
data.frame(nu = nu, B = tr[[i]]$spec,
lab = sprintf("%.1f cm^-1 resolution", tr[[i]]$res))))
p3 <- ggplot(subset(recdf, nu > 900 & nu < 1250), aes(nu, B, colour = lab)) +
geom_line(linewidth = 0.8) +
scale_x_reverse() +
scale_colour_manual(values = bpad_pal[c(1,3,2)]) +
labs(title = "(c) recovered 1050 band at three mirror travels",
x = expression(tilde(nu)*" (cm"^-1*")"), y = "absorbance")
bpad_grid(p1, p2, p3, ncol = 1)Figure 7: FTIR as a Fourier-transform pair, Eq. (17). Top: a synthetic infrared spectrum with five bands. Middle: the corresponding interferogram, dominated by the large centre burst at zero path difference. Bottom: spectra recovered from progressively truncated interferograms. Truncation degrades resolution exactly as 1 over the maximum mirror travel, so a narrow band is broadened while a wide band is unaffected.
Section 2.2.4 summary. FTIR is chemical fingerprinting by vibrational absorption. The instrument measures an interferogram, not a spectrum; the spectrum is computed. Resolution is bought with mirror travel, sensitivity with the multiplex and throughput advantages, and the whole method is one FFT away from the mathematics of Chapter 1.
Oxyhaemoglobin (HbO\(_2\)) and deoxyhaemoglobin (Hb) are the same protein in two binding states, and their absorption spectra differ markedly in the red and near-infrared. Below about 805 nm, Hb absorbs more than HbO\(_2\) (which is why poorly oxygenated blood looks darker and bluer); above 805 nm the ordering reverses. At the isosbestic point near 805 nm the two spectra cross and the absorption is independent of saturation.
The isosbestic point is doubly useful. Measuring at it gives total haemoglobin concentration independent of oxygenation; measuring on either side of it gives maximum sensitivity to saturation. Pulse oximetry does the latter, choosing 660 nm and 940 nm to straddle the crossing.
lg2 <- seq(600, 1000, by = 2)
eHbO2 <- exp(approx(hb_tab$lam, log(hb_tab$HbO2), lg2, rule = 2)$y)
eHb <- exp(approx(hb_tab$lam, log(hb_tab$Hb), lg2, rule = 2)$y)
hbdf <- rbind(data.frame(lam = lg2, e = eHbO2, sp = "HbO2"),
data.frame(lam = lg2, e = eHb, sp = "Hb"))
ggplot(hbdf, aes(lam, e, colour = sp)) +
geom_line(linewidth = 0.95) +
geom_vline(xintercept = 805, linetype = "dashed", colour = "grey50") +
geom_vline(xintercept = c(660, 940), linetype = "dotted",
colour = bpad_pal[5], linewidth = 0.7) +
annotate("text", x = 812, y = 8000, hjust = 0, size = 3,
label = "isosbestic point\n~805 nm", colour = "grey30") +
annotate("text", x = 660, y = 40, label = "660 nm", size = 2.8,
colour = bpad_pal[5], angle = 90, vjust = -0.4, hjust = 0) +
annotate("text", x = 940, y = 40, label = "940 nm", size = 2.8,
colour = bpad_pal[5], angle = 90, vjust = -0.4, hjust = 0) +
scale_y_log10() +
scale_colour_manual(values = c(HbO2 = bpad_pal[2], Hb = bpad_pal[1])) +
labs(title = "Haemoglobin extinction spectra and the isosbestic point",
x = "wavelength (nm)",
y = expression(epsilon~"(cm"^-1*" M"^-1*", log)"))Figure 8: Molar extinction coefficients of oxy- and deoxyhaemoglobin, from the Prahl compilation. The curves cross at the isosbestic point near 805 nm; the two pulse-oximeter wavelengths at 660 nm and 940 nm straddle it, where the contrast between the two species is largest. Water absorption is shown for reference and sets the long-wavelength edge of the useful range.
knitr::kable(data.frame(
wavelength_nm = c(660, 805, 940),
eps_HbO2 = round(approx(hb_tab$lam, hb_tab$HbO2, c(660,805,940))$y),
eps_Hb = round(approx(hb_tab$lam, hb_tab$Hb, c(660,805,940))$y),
ratio_Hb_over_HbO2 = round(approx(hb_tab$lam, hb_tab$Hb, c(660,805,940))$y /
approx(hb_tab$lam, hb_tab$HbO2, c(660,805,940))$y, 2)),
caption = "Extinction coefficients at the two oximeter wavelengths and at the isosbestic point. Deoxyhaemoglobin absorbs about ten times more than oxyhaemoglobin at 660 nm and slightly less at 940 nm.")| wavelength_nm | eps_HbO2 | eps_Hb | ratio_Hb_over_HbO2 |
|---|---|---|---|
| 660 | 320 | 3227 | 10.08 |
| 805 | 800 | 800 | 1.00 |
| 940 | 1214 | 693 | 0.57 |
Pulse oximetry. A red photon leaves an LED, enters the fingertip, scatters many times through skin, fat, bone, and blood, and may be absorbed by haemoglobin before reaching the photodiode on the far side. A pulse oximeter does not measure “redness”. It measures how the transmitted intensity changes with each arterial pulse, because only the arterial compartment pulsates.
Common misconception. Pulse oximetry measures the oxygen dissolved in blood. Correction. It estimates the fraction of haemoglobin binding sites occupied by oxygen, \(\mathrm{SpO_2}\). Dissolved oxygen, which determines \(P\mathrm{aO_2}\), is a separate and much smaller reservoir. A patient can have a normal \(\mathrm{SpO_2}\) with a dangerously abnormal \(P\mathrm{aO_2}\), and carbon monoxide poisoning produces a falsely reassuring \(\mathrm{SpO_2}\) because carboxyhaemoglobin absorbs like oxyhaemoglobin at 660 nm.
The measurement separates arterial blood from everything else by exploiting pulsatility. The detected signal has a large steady component (\(DC\)) from tissue, bone, venous blood, and non-pulsatile arterial blood, plus a small oscillating component (\(AC\), typically 1–5% of \(DC\)) from the arterial pulse. Forming the ratio of ratios
\[\begin{equation} R = \frac{(AC/DC)_{660}}{(AC/DC)_{940}} \tag{18} \end{equation}\]
cancels the unknown incident intensity, the detector gain, and, to first order, the unknown optical path length and all static absorbers. What survives depends almost entirely on the relative amounts of HbO\(_2\) and Hb in the pulsatile arterial blood.
Naive Beer–Lambert theory predicts
\[\begin{equation} \mathrm{SpO_2} = \frac{\varepsilon_{\mathrm{Hb}}(\lambda_1) - \varepsilon_{\mathrm{Hb}}(\lambda_2)\,R} {\varepsilon_{\mathrm{Hb}}(\lambda_1) - \varepsilon_{\mathrm{HbO_2}}(\lambda_1) + \left[\varepsilon_{\mathrm{HbO_2}}(\lambda_2) - \varepsilon_{\mathrm{Hb}}(\lambda_2)\right] R}, \tag{19} \end{equation}\]
but real devices do not use Eq. (19). They use an empirical calibration curve obtained from healthy-volunteer desaturation studies, approximately \(\mathrm{SpO_2} \approx 110 - 25R\) over the clinical range. The demonstration below shows why the two disagree.
e660 <- c(HbO2 = 320, Hb = 3227)
e940 <- c(HbO2 = 1214, Hb = 693)
R_theory <- function(S)
(S*e660["HbO2"] + (1-S)*e660["Hb"]) / (S*e940["HbO2"] + (1-S)*e940["Hb"])
S <- seq(0.60, 1.00, by = 0.005)
Rt <- as.numeric(R_theory(S))
S_emp <- (110 - 25*Rt)/100 # empirical clinical curve
cal <- rbind(
data.frame(R = Rt, SpO2 = 100*S, model = "Beer-Lambert theory"),
data.frame(R = Rt, SpO2 = 100*S_emp, model = "empirical clinical calibration"))
ggplot(cal, aes(R, SpO2, colour = model)) +
geom_line(linewidth = 0.95) +
geom_point(data = data.frame(R = as.numeric(R_theory(c(0.70,0.80,0.90,0.97,1.00))),
SpO2 = c(70,80,90,97,100),
model = "Beer-Lambert theory"),
size = 2) +
scale_colour_manual(values = bpad_pal[1:2]) +
coord_cartesian(ylim = c(50, 105)) +
labs(title = "Ratio of ratios versus oxygen saturation",
x = "R (ratio of ratios)", y = expression(SpO[2]~"(%)"))Figure 9: Pulse oximetry calibration. The theoretical Beer-Lambert relation, Eq. (19), and the empirical clinical calibration disagree substantially, because tissue scattering makes the effective optical path length wavelength-dependent and unknown. Clinical devices are calibrated against arterial blood gas measurements in volunteers, not against theory. Points mark the clinically important saturation range.
knitr::kable(data.frame(
SpO2_percent = c(70, 80, 90, 95, 100),
R_theory = round(as.numeric(R_theory(c(0.70,0.80,0.90,0.95,1.00))), 3),
SpO2_from_empirical = round(110 - 25*as.numeric(R_theory(c(0.70,0.80,0.90,0.95,1.00))), 1)),
caption = "Theory and empirical calibration disagree by 10-15 saturation points, which is why pulse oximeters are calibrated experimentally.")| SpO2_percent | R_theory | SpO2_from_empirical |
|---|---|---|
| 70 | 1.127 | 81.8 |
| 80 | 0.812 | 89.7 |
| 90 | 0.526 | 96.9 |
| 95 | 0.392 | 100.2 |
| 100 | 0.264 | 103.4 |
Modern clinical caution: accuracy across skin tones. Because the calibration is empirical and the optical path is scattering-dominated, pulse-oximeter readings can be systematically biased. Large retrospective studies have shown that conventional oximeters more often overestimate true arterial saturation in patients with darker skin pigmentation, producing occult hypoxaemia, in which the true \(\mathrm{SaO_2}\) is low while the displayed \(\mathrm{SpO_2}\) appears adequate. This has prompted regulatory re-evaluation of clearance standards and active work on pigmentation-robust calibration.
The physics is specific and is visible in the optical-window figure of Section 2.1.7: melanin is a strong, monotonically decreasing absorber, so it adds a wavelength-dependent contribution to the \(DC\) background that the ratio in Eq. (18) does not fully cancel. Because melanin absorbs far more at 660 nm than at 940 nm, the cancellation is asymmetric and \(R\) is shifted. Contrast this with infrared thermography (Section 2.5), where skin emissivity is essentially independent of pigmentation and no such bias arises. Equity in device performance is, here, a directly physical question.
Checkpoint 2.6. Why does a pulse oximeter need the pulse rather than the total transmitted light? Give a clinical situation (poor perfusion, motion, or vasoconstriction) in which the \(AC\) component becomes too small to use, and predict what the device does.
Near-infrared spectroscopy exploits the optical window of Section 2.1.7 to interrogate tissue several centimeters deep, using continuous-wave light delivered and collected by fibre-optic bundles placed a few centimeters apart on the scalp or limb.
Because tissue scatters strongly, the plain Beer–Lambert law is inadequate: photons follow long, tortuous, wavelength-dependent paths, and some light is lost sideways without ever being absorbed. The modified Beer–Lambert law (MBLL) repairs this with two corrections, a differential pathlength factor DPF accounting for the true mean path being longer than the source–detector separation \(d\), and an unknown scattering-loss term \(G\):
\[\begin{equation} A(\lambda) = \varepsilon(\lambda)\, c\, d\, \mathrm{DPF}(\lambda) + G(\lambda). \tag{20} \end{equation}\]
The term \(G\) cannot be measured, which is why NIRS cannot report absolute concentrations. But if \(G\) is approximately constant over the measurement period, it cancels in the difference:
\[\begin{equation} \Delta A(\lambda) = \varepsilon(\lambda)\,\Delta c\, d\, \mathrm{DPF}(\lambda). \tag{21} \end{equation}\]
Measuring \(\Delta A\) at two wavelengths straddling the isosbestic point gives two equations in the two unknowns \(\Delta[\mathrm{HbO_2}]\) and \(\Delta[\mathrm{Hb}]\):
\[\begin{equation} \begin{bmatrix} \Delta A_{\lambda_1} \\ \Delta A_{\lambda_2}\end{bmatrix} = d \begin{bmatrix} \varepsilon_{\mathrm{HbO_2}}(\lambda_1)\mathrm{DPF}_1 & \varepsilon_{\mathrm{Hb}}(\lambda_1)\mathrm{DPF}_1\\ \varepsilon_{\mathrm{HbO_2}}(\lambda_2)\mathrm{DPF}_2 & \varepsilon_{\mathrm{Hb}}(\lambda_2)\mathrm{DPF}_2 \end{bmatrix} \begin{bmatrix} \Delta[\mathrm{HbO_2}] \\ \Delta[\mathrm{Hb}]\end{bmatrix}, \tag{22} \end{equation}\]
a \(2\times2\) linear system solved exactly as in Chapter 1.
Functional NIRS (fNIRS) applies this to the brain. Neural activation triggers neurovascular coupling: local blood flow increases more than oxygen consumption, so \([\mathrm{HbO_2}]\) rises and \([\mathrm{Hb}]\) falls over the activated cortex. This is the same haemodynamic response that BOLD fMRI detects magnetically (Chapter 4), measured optically instead. fNIRS is portable, silent, inexpensive, and tolerant of motion, at the cost of shallow penetration (outer cortex only) and centimeter-scale localization.
set.seed(1)
## Extinction coefficients at 760 and 850 nm, straddling the isosbestic point
eps_n <- matrix(c(1.55, 2.20, # HbO2 at 760, 850
3.85, 1.80), # Hb at 760, 850
nrow = 2, byrow = TRUE,
dimnames = list(c("HbO2","Hb"), c("l760","l850")))
d_sep <- 3.0 # source-detector separation, cm
DPF <- c(l760 = 6.0, l850 = 5.8)
tt <- seq(0, 30, by = 0.2)
hrf <- function(t) ifelse(t > 0, t^2*exp(-t/1.5), 0)
dHbO2 <- 0.8*hrf(tt - 5)/max(hrf(tt))
dHb <- -0.3*hrf(tt - 5)/max(hrf(tt))
## forward model with measurement noise
M <- matrix(c(eps_n["HbO2","l760"]*d_sep*DPF["l760"], eps_n["Hb","l760"]*d_sep*DPF["l760"],
eps_n["HbO2","l850"]*d_sep*DPF["l850"], eps_n["Hb","l850"]*d_sep*DPF["l850"]),
nrow = 2, byrow = TRUE)
dA <- M %*% rbind(dHbO2, dHb) + matrix(rnorm(2*length(tt), 0, 0.05), nrow = 2)
rec <- solve(M, dA) # the 2x2 inversion
cat("condition number of the NIRS system matrix:", round(kappa(M), 2), "\n")## condition number of the NIRS system matrix: 5.51
cat("RMS recovery error, HbO2:", round(sqrt(mean((rec[1,] - dHbO2)^2)), 4),
" Hb:", round(sqrt(mean((rec[2,] - dHb)^2)), 4), "\n")## RMS recovery error, HbO2: 0.0022 Hb: 0.0013
nirs <- rbind(
data.frame(t = tt, v = dHbO2, sp = "HbO2", kind = "true"),
data.frame(t = tt, v = dHb, sp = "Hb", kind = "true"),
data.frame(t = tt, v = rec[1,], sp = "HbO2", kind = "recovered"),
data.frame(t = tt, v = rec[2,], sp = "Hb", kind = "recovered"))
ggplot(nirs, aes(t, v, colour = sp)) +
geom_hline(yintercept = 0, colour = "grey75") +
geom_line(data = subset(nirs, kind == "true"), linewidth = 1.0) +
geom_point(data = subset(nirs, kind == "recovered"), size = 0.8, alpha = 0.6) +
scale_colour_manual(values = c(HbO2 = bpad_pal[2], Hb = bpad_pal[1])) +
labs(title = "fNIRS: recovering HbO2 and Hb from two wavelengths",
x = "time (s)", y = expression(Delta*"concentration (a.u.)"))Figure 10: Recovering haemoglobin concentration changes from a two-wavelength NIRS measurement by inverting Eq. (22). Lines are the simulated ground-truth haemodynamic response; points are the values recovered from noisy attenuation measurements. Oxyhaemoglobin rises and deoxyhaemoglobin falls with activation, the canonical neurovascular coupling signature that BOLD fMRI also detects.
Why the condition number matters. The two wavelengths must straddle the isosbestic point. If both were chosen on the same side, the two columns of \(M\) in Eq. (22) would become nearly parallel, the matrix would be ill-conditioned, and small measurement noise would produce large errors in the recovered concentrations. This is the Chapter 1 discussion of conditioning applied directly: the wavelength choice is a numerical-stability decision.
Clinical example. Cerebral NIRS oximetry is used during cardiac and carotid surgery to give early warning of falling brain oxygenation during cross-clamping or circulatory arrest, and in neonatal intensive care, where a thin skull makes optical access to the cortex especially favourable. It answers a different question from pulse oximetry: a neonate can have a normal arterial \(\mathrm{SpO_2}\) while cerebral oxygen delivery is inadequate because of low cardiac output or a shunt.
Pulse oximetry versus NIRS. Pulse oximetry asks “how saturated is arterial haemoglobin?” and uses pulsatility to isolate the arterial compartment, reporting an absolute percentage. NIRS asks “how oxygenated is this tissue region?”, includes arterial, capillary, and venous blood, and reports changes rather than absolute values because the scattering term \(G\) in Eq. (20) is unknown. Both use red/near-infrared absorption; they answer different physiological questions.
Section 2.2 summary.
Raman versus OCT. Raman asks “what molecules are here?” by measuring the tiny energy shift imprinted on inelastically scattered photons. OCT asks “where are the scattering structures?” by measuring the interference of elastically scattered photons with a reference beam. Both use scattered light; they extract entirely different information from it.
When a photon of frequency \(\nu_0\) interacts with a molecule, three outcomes are possible.
The measured quantity is the Raman shift, conventionally expressed in wavenumbers and independent of the excitation wavelength:
\[\begin{equation} \Delta\tilde{\nu} = \frac{1}{\lambda_0} - \frac{1}{\lambda_s}\quad[\text{cm}^{-1}], \tag{23} \end{equation}\]
with \(\lambda_0\) the excitation wavelength and \(\lambda_s\) the scattered wavelength, both in centimeters. Because \(\Delta\tilde{\nu}\) equals the vibrational energy of the bond, the same molecule gives the same Raman spectrum whether excited at 532, 785, or 1064 nm, which is what makes the spectrum a transferable fingerprint.
Spontaneous Raman scattering is extraordinarily weak: roughly one incident photon in \(10^{7}\) is Raman scattered. This single number explains most of the practical difficulty of biomedical Raman: long integration times, sensitivity to fluorescence background, and the strong motivation for the coherent techniques of Section 2.3.3.
The relative strength of anti-Stokes and Stokes lines is fixed by how many molecules already occupy the excited vibrational state, which the Boltzmann factor of Chapter 1 determines:
\[\begin{equation} \frac{I_{\text{anti-Stokes}}}{I_{\text{Stokes}}} = \left(\frac{\nu_0 + \nu_{\text{vib}}}{\nu_0 - \nu_{\text{vib}}}\right)^{4} \exp\!\left(-\frac{h\nu_{\text{vib}}}{k_B T}\right). \tag{24} \end{equation}\]
At body temperature this ratio is of order \(10^{-2}\) for a typical bond, which is why the Stokes line is the one normally measured. But because Eq. (24) depends explicitly on \(T\), the ratio is also a non-contact optical thermometer, used to measure temperature during laser therapy and in materials processing.
kB_cm <- 0.6950348 # cm^-1 per kelvin
lam0_nm <- 785
nu0_cm <- 1e7/lam0_nm # excitation wavenumber
modes <- data.frame(shift = c(1004, 1450, 1655, 2935),
amp = c(1.00, 0.60, 0.75, 0.90),
lab = c("phenylalanine", "CH2 bend", "amide I", "CH stretch"))
Temp_K <- 310
modes$aS_S <- ((nu0_cm + modes$shift)/(nu0_cm - modes$shift))^4 *
exp(-modes$shift/(kB_cm*Temp_K))
grid_shift <- seq(-3200, 3200, by = 2)
spec <- rep(1e-6, length(grid_shift))
for (i in seq_len(nrow(modes))) {
spec <- spec + modes$amp[i]*exp(-((grid_shift - modes$shift[i])^2)/(2*12^2))
spec <- spec + modes$amp[i]*modes$aS_S[i]*
exp(-((grid_shift + modes$shift[i])^2)/(2*12^2))
}
spec <- spec + 1e5*exp(-(grid_shift^2)/(2*6^2)) # elastic Rayleigh line
p1 <- ggplot(data.frame(s = grid_shift, I = spec), aes(s, I)) +
geom_line(colour = bpad_pal[1], linewidth = 0.6) +
scale_y_log10() +
coord_cartesian(ylim = c(1e-4, 2e5)) +
annotate("text", x = -2400, y = 3e-2, label = "anti-Stokes", size = 3,
colour = "grey30") +
annotate("text", x = 2400, y = 3, label = "Stokes", size = 3,
colour = "grey30") +
annotate("text", x = 0, y = 6e4, label = "Rayleigh", size = 3, colour = "grey30") +
labs(title = "Raman spectrum about a 785 nm line",
x = expression("Raman shift (cm"^-1*")"), y = "intensity (log, a.u.)")
Tg <- seq(250, 600, by = 1)
rt <- do.call(rbind, lapply(c(500, 1000, 2935), function(sh)
data.frame(T = Tg,
r = ((nu0_cm + sh)/(nu0_cm - sh))^4*exp(-sh/(kB_cm*Tg)),
mode = sprintf("%d cm^-1", sh))))
p2 <- ggplot(rt, aes(T, r, colour = mode)) +
geom_line(linewidth = 0.9) +
geom_vline(xintercept = 310, linetype = "dashed", colour = "grey50") +
scale_y_log10() +
scale_colour_manual(values = bpad_pal[1:3]) +
labs(title = "anti-Stokes / Stokes ratio versus temperature",
x = "temperature (K)", y = "intensity ratio (log)")
bpad_grid(p1, p2, ncol = 2)Figure 11: Raman scattering. Left: schematic spectrum about a 785 nm excitation line, with Stokes lines red-shifted and much weaker anti-Stokes lines blue-shifted; note the intensity axis is logarithmic and the elastic Rayleigh line is many orders of magnitude stronger than either. Right: the anti-Stokes to Stokes intensity ratio from Eq. (24) rises with temperature, which is the basis of non-contact Raman thermometry.
## k_B T at 310 K = 215.5 cm^-1
knitr::kable(data.frame(
mode = modes$lab, shift_cm1 = modes$shift,
antiStokes_over_Stokes_310K = signif(modes$aS_S, 3),
fraction_in_v1_at_310K = signif(exp(-modes$shift/(kB_cm*310)), 3)),
caption = "Only a small fraction of molecules occupy the first excited vibrational state at body temperature, so anti-Stokes scattering is correspondingly weak.")| mode | shift_cm1 | antiStokes_over_Stokes_310K | fraction_in_v1_at_310K |
|---|---|---|---|
| phenylalanine | 1004 | 1.78e-02 | 9.47e-03 |
| CH2 bend | 1450 | 2.98e-03 | 1.19e-03 |
| amide I | 1655 | 1.31e-03 | 4.61e-04 |
| CH stretch | 2935 | 7.90e-06 | 1.20e-06 |
Checkpoint 2.7. A scattered photon has lower energy than the incident photon. Did the molecule gain or lose vibrational energy, and is this the Stokes or the anti-Stokes line? Using the table above, explain why raising the temperature from 310 K to 500 K increases the anti-Stokes signal far more for a 500 cm\(^{-1}\) mode than for a 2935 cm\(^{-1}\) mode.
A vibration is Raman active if it changes the molecular polarizability \(\alpha\), the ease with which the electron cloud is distorted by an applied field. This is a fundamentally different requirement from IR activity, which needs a changing dipole moment. The Raman selection rules are \(\Delta v = \pm1\) and \(\Delta J = 0, \pm2\).
The complementarity is not a technicality but a practical advantage:
That last point is decisive for biomedical work: Raman can interrogate living, wet tissue; transmission mid-IR generally cannot.
IR versus Raman in one line. IR asks whether a vibration changes the molecule’s dipole moment; Raman asks whether it changes the molecule’s polarizability. IR is strong but drowned by water; Raman is weak but works in water. They are complementary, not redundant.
Because spontaneous Raman is weak by a factor of \(10^{7}\), coherent techniques drive the vibration deliberately rather than waiting for a spontaneous event.
Stimulated Raman scattering (SRS). A pump beam at \(\nu_p\) and a Stokes beam at \(\nu_s\) are applied together. When \(\nu_p - \nu_s = \nu_{\text{vib}}\), the vibration is driven resonantly and energy transfers from pump to Stokes beam. The measured signal (stimulated Raman loss or gain) is linear in concentration and free of the non-resonant background that complicates CARS.
Coherent anti-Stokes Raman scattering (CARS). The same driven vibration radiates at \(\nu_p + \nu_{\text{vib}}\), blue-shifted and therefore detectable against a dark background free of fluorescence. CARS carries a non-resonant background that distorts line shapes and must be removed.
Both raise signal levels by many orders of magnitude, enough to make Raman imaging possible at video rates, and both are now standard for label-free lipid and protein mapping in tissue.
Raman provides label-free molecular contrast: no dye, no stain, no genetic modification. In tissue it distinguishes lipids (strong CH\(_2\) bands near 2850 cm\(^{-1}\)), proteins (amide I near 1655 cm\(^{-1}\), phenylalanine at 1004 cm\(^{-1}\)), collagen, nucleic acids, and carotenoids.
Clinical and translational applications include intraoperative tumor-margin assessment, in which the spectral shift from lipid-rich normal brain to protein-rich tumor is measured directly; fibre-optic Raman probes passed through endoscopes to sample hollow organs; and spectral unmixing to map several components in the same field, another instance of the linear inverse problem of Eq. (7).
Clinical example. Raman spectra can reveal the increased nucleic-acid and protein content and reduced lipid content that often accompany malignant transformation, without any exogenous label. Because the measurement is optical and non-destructive, the same tissue can subsequently go to histopathology, which remains the diagnostic reference standard.
OCT forms depth-resolved images from elastically backscattered near-infrared light. The instrument is a Michelson interferometer: light from a broadband source is split into a sample arm and a reference arm, and the returning fields are recombined on a detector.
The key idea is the coherence gate. A broadband source has a short coherence length \(l_c\), the maximum path difference over which light still interferes. Interference therefore occurs only for sample light whose path length matches the reference arm to within \(l_c\), so the interference signal isolates a thin slice of depth. Everything else contributes only background.
Depth follows from the round-trip time delay \(\Delta t\):
\[\begin{equation} z = \frac{c\,\Delta t}{2n}, \tag{25} \end{equation}\]
where the factor 2 is the round trip and \(n \approx 1.38\) converts optical path length to physical depth in tissue. Forgetting either factor is the most common OCT arithmetic error.
Axial resolution is set by the coherence length, hence by the source bandwidth. For a Gaussian spectrum of centre wavelength \(\lambda_0\) and FWHM \(\Delta\lambda\),
\[\begin{equation} \Delta z = \frac{2\ln 2}{\pi}\,\frac{\lambda_0^{2}}{\Delta\lambda} \tag{26} \end{equation}\]
in air; divide by \(n\) for resolution in tissue. Two features of Eq. (26) matter. Resolution improves with broader bandwidth, an immediate consequence of the Chapter 1 reciprocal-width property of Fourier pairs: a wide spectrum has a narrow coherence function. And resolution degrades as \(\lambda_0^{2}\), so moving from 800 nm to 1300 nm to gain penetration costs a factor of \((1300/800)^2 = 2.6\) in axial resolution at fixed bandwidth. This is the central design trade-off of OCT.
Lateral resolution is set by focusing, not by bandwidth, and follows the diffraction limit:
\[\begin{equation} \Delta x = 0.61\,\frac{\lambda_0}{\mathrm{NA}}, \tag{27} \end{equation}\]
while the depth of focus over which that resolution is maintained is
\[\begin{equation} \mathrm{DoF} = \frac{2\lambda_0 n}{\mathrm{NA}^{2}}. \tag{28} \end{equation}\]
Because \(\Delta x \propto 1/\mathrm{NA}\) but \(\mathrm{DoF} \propto 1/\mathrm{NA}^{2}\), halving the lateral spot size quarters the usable depth range. Clinical retinal OCT therefore uses a low NA, accepting roughly 20 µm lateral resolution in exchange for a depth of focus spanning the whole retina, while optical coherence microscopy uses a high NA and gives up depth entirely.
Axial and lateral resolution in OCT are decoupled: one is a bandwidth property, the other a focusing property. This is unusual among imaging modalities and is what allows OCT to deliver micrometer axial resolution through a low-NA ophthalmic scan.
dlam <- seq(10, 250, length.out = 300)
axr <- do.call(rbind, lapply(c(800, 1060, 1300), function(l0)
data.frame(bw = dlam, dz = (2*log(2)/pi)*l0^2/dlam/1000,
lam0 = sprintf("lambda_0 = %d nm", l0))))
pts <- data.frame(bw = c(50, 100, 100),
dz = (2*log(2)/pi)*c(800,1300,1060)^2/c(50,100,100)/1000,
lam0 = sprintf("lambda_0 = %d nm", c(800,1300,1060)))
p1 <- ggplot(axr, aes(bw, dz, colour = lam0)) +
geom_line(linewidth = 0.9) +
geom_point(data = pts, size = 2.2) +
scale_colour_manual(values = bpad_pal[1:3]) +
labs(title = "axial resolution (in air)",
x = expression(Delta*lambda~"(nm)"), y = expression(Delta*z~"(um)"))
NA_v <- seq(0.02, 0.6, length.out = 300)
lam0 <- 1300e-9; n_t <- 1.38
lat <- data.frame(NA_v,
dx = 0.61*lam0/NA_v*1e6,
dof = 2*lam0*n_t/NA_v^2*1e6)
p2 <- ggplot(lat, aes(NA_v)) +
geom_line(aes(y = dx, colour = "lateral resolution (um)"), linewidth = 0.9) +
geom_line(aes(y = dof, colour = "depth of focus (um)"), linewidth = 0.9) +
scale_y_log10() +
scale_colour_manual(values = bpad_pal[1:2]) +
labs(title = "lateral resolution versus depth of focus",
x = "numerical aperture", y = "micrometers (log)")
bpad_grid(p1, p2, ncol = 2)Figure 12: OCT resolution trade-offs. Left: axial resolution from Eq. (26) improves with source bandwidth and degrades as the square of the centre wavelength; points mark typical clinical systems. Right: lateral resolution, Eq. (27), and depth of focus, Eq. (28), move in opposite directions as numerical aperture increases.
knitr::kable(data.frame(
system = c("ophthalmic SD-OCT", "endoscopic SS-OCT", "optical coherence microscopy"),
lambda0_nm = c(840, 1300, 800),
bandwidth_nm = c(50, 100, 150),
axial_res_air_um = round((2*log(2)/pi)*c(840,1300,800)^2/c(50,100,150)/1000, 2),
axial_res_tissue_um= round((2*log(2)/pi)*c(840,1300,800)^2/c(50,100,150)/1000/1.38, 2),
NA_typ = c(0.05, 0.05, 0.4),
lateral_res_um = round(0.61*c(840,1300,800)/1000/c(0.05,0.05,0.4), 1)),
caption = "Representative OCT configurations. Axial resolution is a bandwidth property; lateral resolution is a focusing property; the two are set independently.")| system | lambda0_nm | bandwidth_nm | axial_res_air_um | axial_res_tissue_um | NA_typ | lateral_res_um |
|---|---|---|---|---|---|---|
| ophthalmic SD-OCT | 840 | 50 | 6.23 | 4.51 | 0.05 | 10.2 |
| endoscopic SS-OCT | 1300 | 100 | 7.46 | 5.40 | 0.05 | 15.9 |
| optical coherence microscopy | 800 | 150 | 1.88 | 1.36 | 0.40 | 1.2 |
Early time-domain OCT scanned the reference mirror mechanically, acquiring one depth point at a time. Essentially all modern clinical instruments use Fourier-domain OCT, either spectral-domain (a broadband source with a spectrometer) or swept-source (a wavelength-swept laser with a single detector). These record the interference signal as a function of optical wavenumber \(k = 2\pi/\lambda\) and recover the entire depth profile at once.
A reflector at optical depth \(z\) imprints a cosine fringe \(\cos(2kz)\) on the recorded spectrum: depth maps to fringe frequency. Several reflectors superpose several fringe frequencies, so the depth profile (the A-scan) is the Fourier transform of the spectral interferogram:
\[\begin{equation} A(z) = \left| \mathcal{F}\big\{ I(k) - \langle I(k)\rangle \big\} \right| . \tag{29} \end{equation}\]
The gain is large: acquiring all depths simultaneously rather than sequentially improves sensitivity by 20–30 dB and speed by two to three orders of magnitude, which is exactly what made dense retinal volume scanning and OCT angiography practical.
Connection to Chapter 1, and to FTIR. Fourier-domain OCT is the depth-imaging twin of FTIR. In FTIR, a spatial interferogram transforms into a chemical spectrum. In FD-OCT, a spectral interferogram transforms into a spatial depth profile. Both are Fourier-transform pairs computed with the FFT; in both, resolution is set by the extent of the acquired conjugate variable, mirror travel in FTIR and optical bandwidth in OCT. Recognizing that these two very different instruments are the same mathematics is exactly the kind of transfer this textbook is built to produce.
Nk <- 2048
lam0 <- 1300e-9; fwhm <- 100e-9
lam_lo <- lam0 - 1.5*fwhm; lam_hi <- lam0 + 1.5*fwhm
kk <- seq(2*pi/lam_hi, 2*pi/lam_lo, length.out = Nk)
sig_k<- (2*pi/lam0^2)*fwhm/(2*sqrt(2*log(2)))
Sk <- exp(-((kk - 2*pi/lam0)^2)/(2*sig_k^2)) # source spectrum
depths <- c(60e-6, 200e-6, 420e-6) # optical depths
amps <- c(1.00, 0.60, 0.35) # reflectivities
Ik <- Sk*(1 + Reduce(`+`, Map(function(z, a) 2*a*cos(2*kk*z), depths, amps)))
Az <- Mod(fft(Ik - mean(Ik)))[1:(Nk/2)]
dk <- diff(kk)[1]
zz <- (0:(Nk/2 - 1))*pi/(Nk*dk)
lo <- which(zz > 15e-6)[1] # exclude the DC peak
pk <- which(diff(sign(diff(Az))) == -2) + 1
pk <- pk[pk >= lo]; pk <- sort(pk[order(Az[pk], decreasing = TRUE)][1:3])
knitr::kable(data.frame(
reflector = 1:3,
true_depth_um = depths*1e6,
recovered_depth_um = round(zz[pk]*1e6, 1),
true_amplitude = amps,
recovered_amplitude= round(Az[pk]/max(Az[pk]), 3)),
caption = "Depths and reflectivities recovered from a single spectral interferogram by one Fourier transform.")| reflector | true_depth_um | recovered_depth_um | true_amplitude | recovered_amplitude |
|---|---|---|---|---|
| 1 | 60 | 61.1 | 1.00 | 1.000 |
| 2 | 200 | 200.0 | 0.60 | 0.638 |
| 3 | 420 | 419.4 | 0.35 | 0.367 |
cat(sprintf("imaging range z_max = %.2f mm; axial resolution (air) = %.2f um\n",
max(zz)*1e3, (2*log(2)/pi)*lam0^2/fwhm*1e6))## imaging range z_max = 2.84 mm; axial resolution (air) = 7.46 um
q1 <- ggplot(data.frame(k = kk*1e-6, I = Ik), aes(k, I)) +
geom_line(colour = bpad_pal[1], linewidth = 0.35) +
labs(title = "(a) spectral interferogram I(k)",
x = expression("wavenumber k (rad/"*mu*"m)"), y = "detected intensity")
q2 <- ggplot(data.frame(z = zz*1e6, A = Az/max(Az[pk])), aes(z, A)) +
geom_line(colour = bpad_pal[2], linewidth = 0.6) +
coord_cartesian(xlim = c(0, 600)) +
geom_vline(xintercept = depths*1e6, linetype = "dotted", colour = "grey55") +
labs(title = "(b) A-scan: magnitude of the Fourier transform",
x = expression("optical depth ("*mu*"m)"), y = "relative reflectivity")
bpad_grid(q1, q2, ncol = 1)Figure 13: Fourier-domain OCT, Eq. (29). Top: the recorded spectral interferogram, a broad source spectrum modulated by fringes whose frequencies encode reflector depths. Bottom: its Fourier transform is the A-scan, with peaks at the correct depths and amplitudes. Three reflectors at 60, 200, and 420 micrometers are recovered from a single spectral measurement, with no moving parts.
OCT angiography (OCTA) obtains vascular contrast without any injected dye. The scanner acquires repeated B-scans at the same location a few milliseconds apart. Static tissue produces an identical speckle pattern each time; moving red blood cells change the speckle between acquisitions. Computing a decorrelation or variance between repeated scans therefore highlights flow and suppresses everything static.
This is motion used as contrast rather than motion as artefact, and it has two direct consequences. There is a minimum detectable flow velocity, set by the inter-scan interval, below which capillary flow is indistinguishable from static tissue. And there is a saturation velocity, above which decorrelation is complete and the signal no longer encodes speed, so standard OCTA is qualitative about flow rate while being excellent about vascular geometry.
Clinically, OCTA resolves the superficial and deep retinal capillary plexuses separately, and it is used in diabetic retinopathy (capillary dropout, enlargement of the foveal avascular zone), age-related macular degeneration (choroidal neovascular membranes), retinal vein occlusion, and macular telangiectasia. It has largely displaced fluorescein angiography for many of these questions because it needs no intravenous dye and can be repeated at every visit.
Section 2.3 summary.
Checkpoint 2.8. An OCT system is redesigned from \(\lambda_0 = 800\) nm to \(\lambda_0 = 1300\) nm to gain penetration in scattering tissue. Using Eq. (26), state what happens to the axial resolution at fixed bandwidth, and what bandwidth would be needed at 1300 nm to preserve the original resolution.
Fluorescence is a sequence of events, and the sequence explains every one of its useful properties.
Because energy is lost to vibration before emission, the emitted photon is always lower in energy than the absorbed one. This is the Stokes shift:
\[\begin{equation} \Delta E_{\text{Stokes}} = \frac{hc}{\lambda_{\text{ex}}} - \frac{hc}{\lambda_{\text{em}}} > 0 . \tag{30} \end{equation}\]
The Stokes shift is what makes fluorescence practical: it lets a dichroic mirror and an emission filter reject the excitation light, which is typically \(10^{4}\)–\(10^{6}\) times brighter than the fluorescence, while passing the signal. Without a Stokes shift there would be no way to see the emission at all.
A competing pathway, intersystem crossing to the triplet state \(T_1\), produces phosphorescence on microsecond-to-second timescales and is also the route to the reactive oxygen species responsible for photobleaching and phototoxicity, and, deliberately exploited, for photodynamic therapy.
op <- par(mar = c(1, 4, 2.5, 1))
plot(NA, xlim = c(0, 10), ylim = c(-0.4, 4.4), axes = FALSE,
xlab = "", ylab = "energy", main = "Jablonski diagram")
axis(2, at = c(0, 3), labels = c("S0", "S1"), las = 1, tick = FALSE)
## vibrational manifolds
for (v in 0:3) {
segments(0.6, 0 + v*0.22, 4.0, 0 + v*0.22, lwd = ifelse(v == 0, 2.2, 0.9),
col = ifelse(v == 0, "black", "grey60"))
segments(0.6, 3 + v*0.22, 4.0, 3 + v*0.22, lwd = ifelse(v == 0, 2.2, 0.9),
col = ifelse(v == 0, "black", "grey60"))
}
segments(6.2, 2.30, 8.6, 2.30, lwd = 2.2, col = "grey35")
text(8.75, 2.30, expression(T[1]), adj = 0, cex = 0.9)
arrows(1.3, 0, 1.3, 3.44, length = 0.09, lwd = 2.4, col = bpad_pal[1])
text(1.15, 1.7, "absorption\n(fs)", adj = 1, cex = 0.78, col = bpad_pal[1])
arrows(2.0, 3.66, 2.0, 3.02, length = 0.07, lwd = 1.6, col = bpad_pal[7], lty = 2)
text(2.15, 3.42, "vibrational relaxation (ps)", adj = 0, cex = 0.75, col = "grey30")
arrows(3.1, 3, 3.1, 0.24, length = 0.09, lwd = 2.4, col = bpad_pal[3])
text(3.28, 1.7, "fluorescence\n(ns)", adj = 0, cex = 0.78, col = bpad_pal[3])
arrows(4.0, 3.0, 6.2, 2.32, length = 0.08, lwd = 1.6, col = bpad_pal[4], lty = 3)
text(5.1, 2.92, "intersystem\ncrossing", adj = 0.5, cex = 0.72, col = bpad_pal[4])
arrows(7.4, 2.30, 7.4, 0.10, length = 0.08, lwd = 1.8, col = bpad_pal[4])
text(7.55, 1.2, "phosphorescence\n(us - s)", adj = 0, cex = 0.72, col = bpad_pal[4])Figure 14: Jablonski diagram. Absorption is fast and vertical; vibrational relaxation within the excited state dissipates energy as heat; emission then occurs from the lowest vibrational level of S1. Because energy is lost before emission, the emitted photon is red-shifted, which is the Stokes shift and the reason excitation light can be filtered out.
Two numbers characterize any fluorophore. The quantum yield
\[\begin{equation} \Phi = \frac{k_r}{k_r + k_{nr}} \tag{31} \end{equation}\]
is the fraction of absorbed photons re-emitted as fluorescence rather than lost to non-radiative pathways; bright probes approach \(\Phi = 1\). The fluorescence lifetime
\[\begin{equation} \tau = \frac{1}{k_r + k_{nr}} \tag{32} \end{equation}\]
is the mean residence time in the excited state, typically 1–10 ns, and the excited-state population decays as \(N(t) = N_0 e^{-t/\tau}\), the first-order exponential decay of Chapter 1.
Connection to Chapter 1. Equations (31) and (32) share the same denominator \(k_r + k_{nr}\), so a fluorophore that is dim is also short-lived. Measuring \(\tau\) is a curve-fitting problem of exactly the type treated in the Chapter 1 sections on maximum likelihood and error propagation, and because the decay is exponential, the fitted rate constant and amplitude are correlated in exactly the way that Chapter 1 warns about when propagating uncertainty.
Because \(\tau\) is a rate, not an amplitude, it is largely independent of fluorophore concentration, excitation intensity, and photobleaching, all of which change brightness but not decay rate. This makes fluorescence lifetime imaging microscopy (FLIM) a quantitative alternative to intensity imaging.
FLIM does two things intensity imaging cannot. It separates fluorophores that overlap in colour but differ in lifetime, which is common for autofluorescent tissue components. And because \(k_{nr}\) depends on the local environment, \(\tau\) reports on the microenvironment: pH, ion concentration, oxygen tension, and binding state. The best-known clinical example is the shift in the NAD(P)H lifetime between free and protein-bound forms, which tracks cellular metabolic state and is used as a label-free readout of metabolism in tumors.
t_ns <- seq(0, 20, by = 0.02)
lifedf <- do.call(rbind, lapply(c(1.0, 2.5, 6.0), function(tau)
data.frame(t = t_ns, N = exp(-t_ns/tau), tau = sprintf("tau = %.1f ns", tau))))
p1 <- ggplot(lifedf, aes(t, N, colour = tau)) +
geom_line(linewidth = 0.9) +
geom_hline(yintercept = exp(-1), linetype = "dotted", colour = "grey50") +
scale_colour_manual(values = bpad_pal[1:3]) +
labs(title = "excited-state decay", x = "time (ns)", y = "relative population")
set.seed(4)
tA <- 0.9; tB <- 3.6 # e.g. free vs protein-bound NAD(P)H
tg <- seq(0.05, 12, by = 0.05)
dA <- 1.0*exp(-tg/tA); dB <- 0.35*exp(-tg/tB) # scaled to equal photon counts
dA <- dA/sum(dA); dB <- dB/sum(dB)
mix <- rbind(data.frame(t = tg, y = dA, sp = "fluorophore A (tau = 0.9 ns)"),
data.frame(t = tg, y = dB, sp = "fluorophore B (tau = 3.6 ns)"))
p2 <- ggplot(mix, aes(t, y, colour = sp)) +
geom_line(linewidth = 0.9) + scale_y_log10() +
scale_colour_manual(values = bpad_pal[c(2,1)]) +
labs(title = "same colour, same total intensity, different lifetime",
x = "time (ns)", y = "normalized photon rate (log)")
bpad_grid(p1, p2, ncol = 2)Figure 15: Fluorescence lifetime. Left: excited-state populations of three fluorophores decaying exponentially, Eq. (32); the dotted line marks the 1/e level. Right: two fluorophores with identical emission spectra but different lifetimes are indistinguishable in a steady-state intensity image yet clearly separated by their decay curves, which is the basis of FLIM.
kr <- 2e8; knr <- 3e8
cat(sprintf("k_r = %.0e /s, k_nr = %.0e /s -> quantum yield %.2f, lifetime %.1f ns\n",
kr, knr, kr/(kr + knr), 1e9/(kr + knr)))## k_r = 2e+08 /s, k_nr = 3e+08 /s -> quantum yield 0.40, lifetime 2.0 ns
wlf <- seq(400, 680, length.out = 500)
exc <- exp(-((wlf - 488)/22)^2)
emi <- exp(-((wlf - 520)/26)^2)
fl <- rbind(data.frame(wl = wlf, I = exc, band = "excitation"),
data.frame(wl = wlf, I = emi, band = "emission"))
ggplot(fl, aes(wl, I, colour = band)) +
geom_area(aes(fill = band), alpha = 0.14, position = "identity",
show.legend = FALSE) +
geom_line(linewidth = 0.95) +
annotate("segment", x = 488, xend = 520, y = 1.08, yend = 1.08,
arrow = arrow(length = unit(0.14, "cm"), ends = "both"),
colour = "grey35") +
annotate("text", x = 504, y = 1.14, label = "Stokes shift = 32 nm",
size = 3, colour = "grey25") +
geom_vline(xintercept = 505, linetype = "dashed", colour = "grey45") +
annotate("text", x = 507, y = 0.55, hjust = 0, size = 2.8, colour = "grey30",
label = "dichroic edge") +
scale_colour_manual(values = c(excitation = bpad_pal[1], emission = bpad_pal[3])) +
scale_fill_manual(values = c(excitation = bpad_pal[1], emission = bpad_pal[3])) +
ylim(0, 1.2) +
labs(title = "Fluorophore excitation and emission spectra",
x = "wavelength (nm)", y = "normalized intensity")Figure 16: Excitation and emission spectra of a representative fluorophore. The emission band is shifted to longer wavelength by the Stokes shift, Eq. (30). The shaded region shows the spectral overlap that a dichroic mirror and emission filter must reject; the larger the Stokes shift, the easier this becomes.
## Stokes shift: 32 nm = 0.156 eV
Two-photon and multiphoton excitation use intense pulsed near-infrared light so that two long-wavelength photons are absorbed essentially simultaneously to drive a transition that would normally require one shorter-wavelength photon. Because the process depends on the square of the instantaneous intensity, it occurs appreciably only within the tightly focused beam waist. Three advantages follow directly:
A confocal microscope illuminates one point at a time and places a pinhole in a plane optically conjugate to the focal point. Light originating from the focal plane passes through the pinhole; light from above or below it is defocused at the pinhole and largely blocked. Scanning the point across the specimen builds an image of a thin optical section.
The lateral resolution follows the Abbe limit, and the axial (sectioning) resolution is
\[\begin{equation} \Delta x \approx \frac{0.4\,\lambda_{\text{em}}}{\mathrm{NA}}, \qquad \Delta z \approx \frac{1.4\,\lambda_{\text{em}}\,n}{\mathrm{NA}^{2}}, \tag{33} \end{equation}\]
so a 1.2 NA water-immersion objective at 520 nm gives roughly 170 nm laterally and 700 nm axially. Note again the \(\mathrm{NA}^{2}\) in the axial term: sectioning strength depends far more steeply on numerical aperture than lateral resolution does.
The costs are real. Point scanning is slow compared with wide-field imaging, and the pinhole discards most of the emitted light, so more excitation power is needed, which accelerates photobleaching.
Three routes to optical sectioning. The confocal pinhole rejects out-of-focus light after it has been generated (simple, but wasteful and photobleaching). Two-photon excitation prevents out-of-focus light from being generated at all (efficient and deeper, but requires an expensive pulsed laser). OCT rejects out-of-focus light by coherence gating rather than by geometry (fast and deep, but structural rather than molecular). All three deliver depth-resolved images; they differ in what they waste and what they cost.
A fibre-optic confocal probe advanced through the working channel of a bronchoscope, endoscope, or needle delivers in vivo, in situ microscopy, with a field of view around 600 µm and lateral resolution near 1 µm. Sometimes called “optical biopsy”, it visualizes cellular and architectural detail in real time and is used to target conventional biopsies rather than replace them.
Placing the optical methods on a common ladder makes the trade-off explicit:
| Method | Lateral resolution | Penetration depth | What it shows |
|---|---|---|---|
| Confocal laser endomicroscopy | \(\sim 1\) µm | \(\sim 100\) µm | cellular morphology |
| Two-photon microscopy | \(\sim 0.5\) µm | \(\sim 500\) µm | cellular morphology, deeper |
| OCT | 10–20 µm | \(\sim 2\) mm | tissue layers and microstructure |
| NIRS / diffuse optics | \(\sim 10\) mm | \(\sim 30\) mm | regional haemoglobin |
| CT (Ch. 5) | \(\sim 0.5\) mm | whole body | attenuation-based anatomy |
Reading down the table, resolution degrades by four orders of magnitude while depth improves by four. That inverse relationship is not an engineering limitation to be overcome but a consequence of scattering: the deeper a photon goes, the more times it is scattered, and the less it remembers about where it came from.
Section 2.4 summary.
Checkpoint 2.9. A fluorophore has \(\Phi = 0.9\) and \(\tau = 4\) ns. Compute \(k_r\) and \(k_{nr}\). If a change in the local environment doubles \(k_{nr}\), what happens to the brightness and to the lifetime, and which change would FLIM detect more reliably?
The conceptual sequence for this section is
\[\text{thermal excitation} \rightarrow \text{blackbody radiation} \rightarrow \text{infrared emission from the body} \rightarrow \text{thermographic imaging}.\]
Every object above absolute zero radiates electromagnetic energy. The human body, at about 310 K, radiates almost entirely in the mid-infrared. What looks like a passive physical fact becomes a diagnostic window: surface temperature patterns reveal inflammation, vascular disease, and metabolic activity beneath the skin, and the measurement requires no contact and delivers no energy to the patient.
A heated atomic gas emits a line spectrum, each line an electronic transition. Sodium vapour in a flame emits its characteristic yellow doublet at \(\lambda = 589.2\) nm (the 3p \(\rightarrow\) 3s transition), a photon of energy
\[E = \frac{hc}{\lambda} = \frac{1240}{589.2} = 2.10\ \text{eV} = 3.37\times10^{-19}\ \text{J}.\]
Whether an atom occupies the excited state at all is a statistical question, answered by the Boltzmann factor:
\[\begin{equation} \frac{P_{\text{excited}}}{P_{\text{ground}}} = e^{-E/k_B T}, \tag{34} \end{equation}\]
so that \(N_{\text{excited}} \approx N_{\text{total}}\, e^{-E/k_BT}\) when \(E \gg k_BT\).
The useful benchmark is that \(k_BT = 0.0257\) eV at 298 K and \(0.0267\) eV at 310 K. A 2.1 eV transition therefore sits about 80 times \(k_BT\) above the ground state at room temperature, and the exponential is brutal.
Tg <- seq(200, 3000, by = 5)
kBeV<- k_B/1.602176634e-19 # Boltzmann constant in eV/K
bz <- do.call(rbind, lapply(
list(c(E = 2.10, lab = "2.10 eV (589 nm, visible)"),
c(E = 1.32, lab = "1.32 eV (940 nm, near-IR)"),
c(E = 0.13, lab = "0.13 eV (9.3 um, mid-IR)")),
function(z) data.frame(T = Tg, p = exp(-as.numeric(z["E"])/(kBeV*Tg)),
lab = unname(z["lab"]), row.names = NULL)))
ggplot(bz, aes(T, p, colour = lab)) +
geom_line(linewidth = 0.9) +
geom_vline(xintercept = 310, linetype = "dashed", colour = "grey45") +
annotate("text", x = 340, y = 1e-25, hjust = 0, size = 3, colour = "grey30",
label = "body temperature\n310 K") +
scale_y_log10() +
coord_cartesian(ylim = c(1e-40, 1)) +
scale_colour_manual(values = bpad_pal[1:3]) +
labs(title = "Thermal population of an excited state",
x = "temperature (K)", y = "relative population (log)")Figure 17: The Boltzmann factor, Eq. (34), as a function of temperature for three transition energies. At body temperature a visible transition (2.1 eV) is populated at the level of 10 to the minus 35, so the body cannot glow in the visible. A mid-infrared transition (0.13 eV, corresponding to 9.3 micrometers) is populated at the percent level, which is why the body radiates in the infrared.
knitr::kable(data.frame(
temperature_K = c(298, 310, 1500, 1770, 3200),
kBT_eV = signif(kBeV*c(298,310,1500,1770,3200), 3),
population_2p10_eV = signif(exp(-2.10/(kBeV*c(298,310,1500,1770,3200))), 3)),
caption = "Fraction of sodium atoms thermally excited to the 3p state. Visible emission becomes perceptible only above roughly 1500 K.")| temperature_K | kBT_eV | population_2p10_eV |
|---|---|---|
| 298 | 0.0257 | 0.00e+00 |
| 310 | 0.0267 | 0.00e+00 |
| 1500 | 0.1290 | 1.00e-07 |
| 1770 | 0.1530 | 1.00e-06 |
| 3200 | 0.2760 | 4.93e-04 |
Worked Example 2.3 (why a flame glows yellow but you do not). For the sodium 3p \(\rightarrow\) 3s transition, \(E = 2.10\) eV.
At \(T = 298\) K, \(k_BT = 0.0257\) eV, so \(E/k_BT = 81.7\) and \(e^{-81.7} \approx 3\times10^{-36}\). In a mole of sodium (\(6\times10^{23}\) atoms) fewer than \(10^{-12}\) atoms are excited: effectively none.
At \(T = 1500\) K, \(k_BT = 0.129\) eV, so \(E/k_BT = 16.2\) and \(e^{-16.2} \approx 9\times10^{-8}\). Now roughly \(5\times10^{16}\) atoms per mole are excited at any instant, and the yellow glow is easily visible.
The body at 310 K is even colder than room temperature in these terms. It can only populate transitions of order \(k_BT \approx 0.027\) eV, corresponding to wavelengths of tens of micrometers. The Boltzmann factor is the reason thermography is an infrared technique and could not be anything else.
An isolated atom has discrete, well-separated levels. Bring two atoms together and their levels split; assemble \(10^{23}\) of them into a solid or liquid and the levels broaden into bands containing a near-continuum of closely spaced states. Transitions between bands can then involve a continuous range of photon energies, which is why a heated solid emits a continuous spectrum rather than lines.
The familiar sequence of incandescent colours follows directly, as the peak of the emission moves through the visible with rising temperature:
| Appearance | Approximate temperature (K) |
|---|---|
| first visible red glow in a dark room | 750–800 |
| cherry red | 1000–1200 |
| orange | 1400–1600 |
| yellow-white | 2500–3200 |
| white | 5000–6000 |
| bluish white | \(>10{,}000\) |
(Iron melts at 1811 K, so only the first three rows are observable in a piece of iron; the higher rows describe filaments, arcs, and stars.) Transparent solids such as glass or NaCl look transparent precisely because they lack accessible transitions in the visible, so visible photons pass without absorption, an observation that will matter again when we consider the emissivity of window glass.
Compare. An isolated atom gives a line spectrum; a heated solid gives a continuous spectrum. The difference is energy-band structure. This is the same distinction that separates the sharp vibrational bands of a gas-phase capnograph spectrum from the broad featureless emission of skin.
A blackbody absorbs every photon that strikes it at every wavelength. When heated, it emits a continuous spectrum whose shape depends only on temperature, not on composition. The practical realization is a cavity with a small aperture: light entering the hole bounces internally until it is absorbed, and the radiation emerging from the hole follows the ideal spectrum closely.
The spectral radiant exitance, the power per unit area emitted between \(\lambda\) and \(\lambda + d\lambda\), is the Planck function
\[\begin{equation} W_\lambda(\lambda, T) = \frac{2\pi h c^{2}}{\lambda^{5}\left(e^{hc/\lambda k_B T} - 1\right)}, \tag{35} \end{equation}\]
with units W m\(^{-3}\) (equivalently W cm\(^{-2}\) µm\(^{-1}\)). In frequency form,
\[\begin{equation} W_\nu(\nu, T) = \frac{2\pi h \nu^{3}}{c^{2}\left(e^{h\nu/k_B T} - 1\right)} . \tag{36} \end{equation}\]
The two forms describe the same physics but are not obtained by substituting \(\nu = c/\lambda\) alone; the Jacobian \(|d\nu/d\lambda| = c/\lambda^{2}\) must be included. A consequence, often surprising, is that the peak of \(W_\lambda\) and the peak of \(W_\nu\) occur at different physical wavelengths.
Where does the spectrum peak? Setting \(dW_\lambda/d\lambda = 0\) in Eq. (35), the critical-point method of Chapter 1, leads to the transcendental equation \(x = 5(1 - e^{-x})\) with \(x = hc/\lambda k_BT\). Its non-trivial root is \(x = 4.965114\), giving Wien’s displacement law
\[\begin{equation} \lambda_{\max} T = b = \frac{hc}{4.965114\, k_B} = 2.8978\times10^{-3}\ \text{m K}. \tag{37} \end{equation}\]
Hotter bodies peak at shorter wavelengths. The Sun at 5800 K peaks at 500 nm, in the middle of the visible; a tungsten filament at 3200 K peaks at 906 nm, in the near-infrared, which is why incandescent bulbs are so inefficient; the human body at 310 K peaks at 9.35 µm.
Integrating Eq. (35) over all wavelengths, the definite-integration technique of Chapter 1, with the substitution \(u = hc/\lambda k_BT\) reduces the problem to the standard integral \(\int_0^\infty u^3/(e^u - 1)\,du = \pi^4/15\), giving the Stefan–Boltzmann law
\[\begin{equation} W_{\text{tot}}(T) = \int_0^{\infty} W_\lambda(\lambda,T)\, d\lambda = \frac{2\pi^{5}k_B^{4}}{15\,c^{2}h^{3}}\,T^{4} = \sigma_{SB}\,T^{4}, \tag{38} \end{equation}\]
with \(\sigma_{SB} = 5.670\times10^{-8}\) W m\(^{-2}\) K\(^{-4}\).
The \(T^4\) dependence is what makes thermography sensitive. Differentiating Eq. (38) logarithmically,
\[\begin{equation} \frac{dW}{W} = 4\,\frac{dT}{T}, \tag{39} \end{equation}\]
so a 1 K change at 306 K produces a \(4/306 = 1.31\%\) change in emitted power, easily measurable. Modern thermal cameras resolve temperature differences of 20–50 mK.
The demonstration below verifies both laws numerically from Eq. (35) alone, obtaining \(b\) and \(\sigma_{SB}\) to seven significant figures without assuming either result.
lam_m <- 10^seq(-7.3, -3.7, length.out = 800)
bb <- do.call(rbind, lapply(c(5800, 3200, 1000, 306), function(Tk)
data.frame(lam = lam_m*1e6, W = planck_lambda(lam_m, Tk),
Temp = sprintf("%d K", Tk))))
bb <- subset(bb, is.finite(W) & W > 0) # drop underflow before log axis
wien_locus <- data.frame(Tk = seq(250, 6500, by = 25))
wien_locus$lam <- b_Wien/wien_locus$Tk*1e6
wien_locus$W <- planck_lambda(b_Wien/wien_locus$Tk, wien_locus$Tk)
p1 <- ggplot(bb, aes(lam, W, colour = Temp)) +
annotate("rect", xmin = 0.4, xmax = 0.75, ymin = 1e2, ymax = 1e15,
fill = "gold", alpha = 0.18) +
geom_line(linewidth = 0.9) +
geom_line(data = wien_locus, aes(lam, W), inherit.aes = FALSE,
linetype = "dashed", colour = "grey35") +
scale_x_log10() + scale_y_log10() +
coord_cartesian(ylim = c(1e2, 1e15)) +
scale_colour_manual(values = bpad_pal[c(2,5,3,1)]) +
labs(title = "Planck spectra and the Wien locus",
x = expression(lambda~"(um, log)"),
y = expression(W[lambda]~"(W m"^-3*", log)"))
body <- data.frame(lam = seq(2, 40, by = 0.05))
body$W <- planck_lambda(body$lam*1e-6, 306)
p2 <- ggplot(body, aes(lam, W/1e6)) +
geom_area(fill = bpad_pal[1], alpha = 0.25) +
geom_line(colour = bpad_pal[1], linewidth = 0.9) +
geom_vline(xintercept = b_Wien/306*1e6, linetype = "dashed", colour = "grey40") +
annotate("text", x = b_Wien/306*1e6 + 1, y = 3.2e1, hjust = 0, size = 3,
label = sprintf("peak %.2f um", b_Wien/306*1e6), colour = "grey30") +
annotate("rect", xmin = 7, xmax = 15, ymin = 0, ymax = 4.2e1,
fill = bpad_pal[3], alpha = 0.12) +
annotate("text", x = 11, y = 4.0e1, label = "7-15 um camera band",
size = 2.8, colour = bpad_pal[3]) +
labs(title = "Emission from skin at 306 K",
x = expression(lambda~"(um)"), y = expression(W[lambda]~"(W m"^-2*" um"^-1*")"))
bpad_grid(p1, p2, ncol = 2)Figure 18: Blackbody radiation. Left: Planck spectra, Eq. (35), at four temperatures on logarithmic axes, with the dashed line tracing the Wien locus of spectral peaks and the shaded band marking the visible range. Right: the same physics for the body: at 306 K the emission lies entirely in the mid-infrared and peaks near 9.5 micrometers, far from the visible.
## Wien's constant, obtained numerically from the Planck function alone
wien_numeric <- function(Temp) {
lam <- 10^seq(-8, -3, length.out = 4000)
i <- which.max(planck_lambda(lam, Temp))
optimize(function(l) -planck_lambda(l, Temp),
c(lam[i-1], lam[i+1]), tol = 1e-15)$minimum
}
## Stefan-Boltzmann constant, by numerically integrating the Planck function
sigma_numeric <- function(Temp)
integrate(function(l) planck_lambda(l, Temp), 1e-9, 1e-2, rel.tol = 1e-10)$value/Temp^4
knitr::kable(data.frame(
temperature_K = c(5800, 3200, 1000, 306),
lambda_max_um = round(sapply(c(5800,3200,1000,306), wien_numeric)*1e6, 4),
lambda_max_times_T = signif(sapply(c(5800,3200,1000,306), wien_numeric)*
c(5800,3200,1000,306), 7),
exitance_W_per_m2 = signif(sigma_SB*c(5800,3200,1000,306)^4, 4)),
caption = "Wien's law verified numerically: the product of peak wavelength and temperature is constant to seven figures.")| temperature_K | lambda_max_um | lambda_max_times_T | exitance_W_per_m2 |
|---|---|---|---|
| 5800 | 0.4996 | 0.0028978 | 6.417e+07 |
| 3200 | 0.9056 | 0.0028978 | 5.946e+06 |
| 1000 | 2.8978 | 0.0028978 | 5.670e+04 |
| 306 | 9.4698 | 0.0028978 | 4.972e+02 |
## Wien constant : numerical 2.8977719e-03 CODATA 2.8977720e-03 m K
cat(sprintf("Stefan-Boltzmann: numerical %.7e CODATA %.7e W m^-2 K^-4\n",
sigma_numeric(306), sigma_SB))## Stefan-Boltzmann: numerical 5.6703744e-08 CODATA 5.6703744e-08 W m^-2 K^-4
## analytic 2*pi^5*kB^4/(15 c^2 h^3) = 5.6703744e-08
Real surfaces are not perfect blackbodies. The emissivity \(\epsilon(\lambda)\) is the fraction of blackbody emission a surface actually produces at wavelength \(\lambda\):
For a grey body the total exitance becomes \(\epsilon\,\sigma_{SB}T^4\). Kirchhoff’s law of thermal radiation states that at thermal equilibrium, absorptivity equals emissivity at every wavelength: a good absorber is a good emitter. This is why a blackened surface both heats fastest in sunlight and cools fastest at night.
Common misconception. People with darker skin radiate less infrared energy than people with lighter skin. Correction. In the 4–30 µm band that carries essentially all body emission, human skin of every type has \(\epsilon = 0.98 \pm 0.01\). Melanin absorbs strongly in the visible and ultraviolet, where it protects against photochemical damage, and negligibly in the mid-infrared, where thermal emission occurs. Skin colour is a visible-wavelength phenomenon; thermography is a mid-infrared measurement, and the two do not overlap.
This is worth stating alongside the pulse-oximetry caution in Section 2.2.6, because the two cases are physically opposite. Pulse oximetry is biased by pigmentation because it operates at wavelengths where melanin absorbs. Thermography is not, because it operates where melanin does not. Whether a device is equitable across skin tones is a question about its operating wavelength, answerable from the physics.
With skin emissivity \(\epsilon = 0.98\), body surface area \(S = 1.73\) m\(^2\), and skin surface temperature \(T = 306\) K (33 °C), the total radiated power into a hypothetical 0 K surrounding would be
\[W_{\text{tot}} = \epsilon\, S\,\sigma_{SB}\,T^4 \approx 843\ \text{W},\]
roughly nine times the basal metabolic rate of about 100 W. The body obviously does not lose energy at this rate, because surrounding surfaces radiate back. The physically meaningful quantity is the net radiative exchange with surroundings at temperature \(T_s\):
\[\begin{equation} W_{\text{net}} = \epsilon\, S\, \sigma_{SB}\left(T^{4} - T_s^{4}\right). \tag{40} \end{equation}\]
S_body <- 1.73; eps_skin <- 0.98; T_skin <- 306
Ts <- seq(273, 306, by = 0.25)
Wnet <- eps_skin*S_body*sigma_SB*(T_skin^4 - Ts^4)
ggplot(data.frame(Tc = Ts - 273.15, W = Wnet), aes(Tc, W)) +
geom_line(linewidth = 1.0, colour = bpad_pal[1]) +
geom_hline(yintercept = 100, linetype = "dashed", colour = bpad_pal[2]) +
annotate("text", x = 2, y = 112, hjust = 0, size = 3, colour = bpad_pal[2],
label = "basal metabolic rate ~100 W") +
geom_vline(xintercept = 20, linetype = "dotted", colour = "grey55") +
labs(title = "Net radiative heat loss versus surrounding temperature",
x = "temperature of surrounding surfaces (deg C)",
y = "net radiative loss (W)")Figure 19: Net radiative heat loss from the human body, Eq. (40), as a function of the temperature of surrounding surfaces. At typical indoor wall temperatures the net loss is comparable to or exceeds the basal metabolic rate, which is why radiative exchange, not air temperature alone, determines thermal comfort.
knitr::kable(data.frame(
surroundings_C = c(10, 15, 20, 25, 30),
net_loss_W = round(eps_skin*S_body*sigma_SB*(T_skin^4 - (273.15 + c(10,15,20,25,30))^4), 1)),
caption = "Net radiative loss for an adult with 1.73 square meters of skin at 306 K and emissivity 0.98.")| surroundings_C | net_loss_W |
|---|---|
| 10 | 224.9 |
| 15 | 180.1 |
| 20 | 132.9 |
| 25 | 83.2 |
| 30 | 31.0 |
Why you feel cold beside a window. Glass is nearly opaque and highly emissive in the mid-infrared, so it behaves as a blackbody at its own surface temperature. On a winter night the inner glass surface may be at 10 °C while the walls are at 20 °C. Your body then loses substantially more radiant energy toward the window than toward the walls, and you feel a localized chill even though the air temperature is unchanged and there is no draught. The same physics explains why radiant floor heating feels warmer than forced-air heating at equal air temperature, and why a premature infant in an incubator loses heat to cold walls despite warm circulating air.
Because skin is a near-perfect infrared emitter, the radiance from each point on the surface depends almost entirely on its local temperature. An infrared camera measures this radiance across a detector array and converts it to a two-dimensional temperature map, a thermogram.
Instrumentation. Skin emission spans roughly 4–30 µm and peaks near 9.5 µm. Cameras operate in one of two atmospheric transmission windows, mid-wave (3–5 µm) or long-wave (7–14 µm); the long-wave band contains the body’s peak and is preferred for medical use. Early detectors required cryogenic cooling; modern uncooled microbolometer arrays measure the small resistance change produced by absorbed radiation and have made thermal cameras small, inexpensive, and clinically practical. The key performance figure is the noise-equivalent temperature difference (NETD), typically 20–50 mK for clinical instruments.
| Era | Array size | Detector |
|---|---|---|
| 1990s | \(320\times240\) | cooled photon detector |
| 2010s | \(640\times480\) | uncooled microbolometer |
| current | up to \(1280\times1024\) | uncooled microbolometer, NETD \(\sim 20\) mK |
Thermography is entirely passive. No energy is delivered to the patient; the camera detects radiation the body is already emitting. This is the sharpest possible contrast with the X-ray and nuclear methods of Chapters 5 and 6, and it is why serial thermograms carry no cumulative dose penalty.
set.seed(11)
nx <- 120; ny <- 90
gx <- outer(1:nx, 1:ny, function(i, j) i)
gy <- outer(1:nx, 1:ny, function(i, j) j)
## baseline limb temperature field with a smooth proximal-distal gradient
Tfield <- 32.0 + 1.2*exp(-((gy - 45)^2)/(2*28^2)) - 0.010*abs(gx - 60)
## two "knees": left (inflamed, +1.5 K) and right (normal)
Tfield <- Tfield + 1.5*exp(-(((gx - 35)^2 + (gy - 45)^2))/(2*11^2))
Tfield <- Tfield + 0.15*exp(-(((gx - 85)^2 + (gy - 45)^2))/(2*11^2))
NETD <- 0.05 # kelvin
Tmeas <- Tfield + rnorm(nx*ny, 0, NETD)
## left-right difference (mirror about the midline)
Tdiff <- Tmeas - Tmeas[nx:1, ]
op <- par(mfrow = c(2, 2), mar = c(4, 4, 2.4, 1))
image(1:nx, 1:ny, Tfield, col = hcl.colors(256, "Inferno"),
main = "true skin temperature (deg C)", xlab = "", ylab = "", asp = 1)
image(1:nx, 1:ny, Tmeas, col = hcl.colors(256, "Inferno"),
main = sprintf("measured, NETD = %.0f mK", 1000*NETD),
xlab = "", ylab = "", asp = 1)
image(1:nx, 1:ny, Tdiff, col = hcl.colors(256, "Blue-Red 3"),
zlim = c(-2, 2), main = "left - right difference (K)",
xlab = "", ylab = "", asp = 1)
plot(1:nx, Tmeas[, 45], type = "l", col = bpad_pal[1], lwd = 1.6,
xlab = "position across both joints (pixels)",
ylab = "temperature (deg C)", main = "horizontal profile at the joint line")
lines(1:nx, Tfield[, 45], col = bpad_pal[2], lwd = 2)
abline(v = c(35, 85), lty = 3, col = "grey50")
legend("topright", c("measured", "true"), col = bpad_pal[1:2],
lwd = c(1.6, 2), bty = "n", cex = 0.8)Figure 20: Simulated thermography of an inflamed joint. Top left: the underlying skin-temperature field, with a 1.5 K elevation over the inflamed left knee. Top right: what a camera with 50 mK noise-equivalent temperature difference records. Bottom left: the left-right difference map, which is how thermograms are read clinically, since each patient serves as their own control. Bottom right: the horizontal temperature profile through both joints.
par(op)
dT_true <- Tfield[35, 45] - Tfield[85, 45] # inflamed minus contralateral
cat(sprintf("true left-right asymmetry at the joint line: %.2f K\n", dT_true))## true left-right asymmetry at the joint line: 1.35 K
cat(sprintf("NETD %.0f mK -> single-pixel contrast-to-noise ratio %.0f\n",
1000*NETD, dT_true/NETD))## NETD 50 mK -> single-pixel contrast-to-noise ratio 27
cat(sprintf("fractional change in emitted power for a 1.5 K rise at 306 K: %.2f%%\n",
100*((307.5/306)^4 - 1)))## fractional change in emitted power for a 1.5 K rise at 306 K: 1.98%
Decision guide for thermography. Thermography measures surface temperature, nothing else. It is most useful when the clinical question concerns temperature asymmetry (left versus right, with the patient as their own control), temperature change over time (before and after treatment), or abnormal perfusion (a hot or cold region). It does not provide anatomical localization, cannot see below the surface, and does not replace CT, MRI, or histopathology.
Inflammation. Inflammation increases local blood flow and metabolic rate, raising skin temperature over the affected area. In rheumatoid arthritis the inflamed joint appears warmer than its contralateral counterpart, and because the comparison is internal, it is robust against variation in room temperature and skin properties. Serial thermograms quantify response to anti-inflammatory therapy objectively.
Vascular disease and Raynaud’s phenomenon. Vasospasm reduces perfusion to the digits, lowering skin temperature. The standard protocol is a cold-stress test: the hands are immersed in cool water (about 20 °C for one minute) and rewarming is monitored for 10 minutes. Healthy digits rewarm rapidly and symmetrically; affected digits show delayed, incomplete, and asymmetric recovery. The dynamic test is far more informative than a single resting image, because a resting thermogram may be normal between attacks.
Melanoma and superficial lesions. Metabolically active lesions with increased local blood supply can produce a small temperature elevation. Thermography has been more successful for superficial melanoma, where the lesion directly affects surface temperature, than for breast cancer screening, where early enthusiasm in the 1960s and 1970s was not sustained: deep tumors are thermally diluted by intervening tissue, normal vascular patterns vary enormously between individuals, and the curved breast surface complicates radiometry. Thermography is an adjunct to clinical evaluation, never a substitute for biopsy.
Longitudinal monitoring. This is where thermography is strongest. Because it is non-contact, painless, dose-free, and quick, it can be repeated as often as desired, letting each patient serve as their own control. Applications include anti-inflammatory drug trials, sports-injury rehabilitation, burn-depth assessment, flap viability after reconstructive surgery, and diabetic foot monitoring, where a persistent temperature asymmetry between corresponding sites is an early warning of impending ulceration.
What controls thermogram quality. A thermogram is a measurement, not a photograph, and it is only as good as its conditions. The patient must equilibrate to a controlled room (typically 15–20 minutes at 20–22 °C) with the region uncovered. Room temperature, draughts, humidity, recent exercise, smoking, caffeine, topical creams, and even recent palpation all shift skin temperature by amounts comparable to the pathological signal. Curved surfaces reduce apparent emissivity through the angular dependence of emission, and reflections from nearby warm objects contaminate the reading. These are not minor caveats: they are the reason poorly standardized thermography has repeatedly produced disappointing results in clinical trials, and the reason quantitative protocols matter.
Section 2.5 summary.
Checkpoint 2.10. Two people stand in rooms with identical air temperature, one with cold concrete walls and one with warm wooden walls. Who feels colder, and by roughly how many watts? Use Eq. (40) with wall temperatures of 14 °C and 22 °C.
Thermal infrared is radiation the body emits; ultraviolet is radiation the body absorbs. The shift is not merely spectral, it is a shift from passive observation to active dose management, because UV photons carry enough energy to break chemical bonds.
The Sun is a thermal radiator at about 5800 K. Its spectrum peaks in the visible (Eq. (37)), but a significant tail extends into the ultraviolet. The solar constant at the top of the atmosphere is about 1361 W m\(^{-2}\); at the Earth’s surface, after atmospheric absorption and scattering, clear-sky irradiance is roughly 1000 W m\(^{-2}\).
| Band | Wavelength | Photon energy | Key properties |
|---|---|---|---|
| UVA | 315–400 nm | 3.10–3.94 eV | penetrates to the dermis; generates reactive oxygen species; photoaging; passes through window glass |
| UVB | 280–315 nm | 3.94–4.43 eV | absorbed mainly in the epidermis; direct DNA damage; sunburn; vitamin D synthesis |
| UVC | 200–280 nm | 4.43–6.20 eV | strongly germicidal; blocked almost entirely by stratospheric ozone |
| Vacuum UV | 10–200 nm | 6.20–124 eV | absorbed by air; relevant only in vacuum and space |
Stratospheric ozone absorbs strongly between 200 and 320 nm, removing essentially all UVC and much of UVB, while UVA passes almost unimpeded. The consequence is a very steep spectral edge at ground level near 300 nm, and it is the position of this edge that makes ozone depletion a public-health issue rather than an atmospheric curiosity.
From equation to patient. At 300 nm the photon energy is \(E = 1240/300 = 4.13\) eV, comfortably above the \(\sim3.6\) eV needed to break a C–C single bond, so a UVB photon can directly disrupt covalent bonds in DNA and create cyclobutane pyrimidine dimers. At 365 nm, \(E = 3.40\) eV falls below that threshold, so UVA cannot break the bond directly and instead acts indirectly, generating reactive oxygen species that damage DNA, collagen, and elastin. One equation, Eq. (3), and one threshold explain the entire qualitative difference between UVA and UVB biology.
The epidermis is layered: from the surface inward, the stratum corneum, granular layer, prickle layer (containing melanocytes), and the dividing basal cells; beneath lies the vascularized dermis.
The eye has its own hierarchy of susceptibility: photokeratitis and conjunctivitis (acute UVB, the mechanism of “snow blindness” and welder’s flash), cataract (cumulative UVB, through lens protein damage), pterygium (chronic exposure), and retinal injury from UVA and short-wavelength visible light that reaches the retina, especially in the aphakic or pseudophakic eye.
Clinical example: the asymmetric driver. Automobile side-window glass blocks nearly all UVB but transmits most UVA. Drivers in left-hand-drive countries accumulate chronic UVA exposure on the left face, left arm, and left neck, and dermatologists observe correspondingly asymmetric photoaging and a higher incidence of skin cancer on that side. The physics is entirely in the transmission spectrum of soda-lime glass, and it also explains why “I was inside the car” is not sun protection.
Erythema is UV-induced skin reddening from inflammatory vasodilation in the dermis. Its efficiency depends steeply on wavelength, described by the erythemal action spectrum \(\epsilon(\lambda)\), normalized to unity at its most effective wavelengths (250–298 nm). The erythemally effective dose is the weighted integral
\[\begin{equation} H_{\text{eff}} = \int H(\lambda)\,\epsilon(\lambda)\, d\lambda , \tag{41} \end{equation}\]
reducing for a monochromatic source to \(H_{\text{eff}} = H(\lambda)\epsilon(\lambda)\). The CIE reference action spectrum is
\[\epsilon(\lambda) = \begin{cases} 1, & 250 \le \lambda \le 298\ \text{nm},\\ 10^{\,0.094(298-\lambda)}, & 298 < \lambda \le 328\ \text{nm},\\ 10^{\,0.015(139-\lambda)}, & 328 < \lambda \le 400\ \text{nm}, \end{cases}\]
which falls by roughly three orders of magnitude from UVB to UVA.
The minimal erythema dose (MED) is the smallest radiant exposure producing just-perceptible reddening at 24 hours; it is inversely proportional to erythemal effectiveness, \(\epsilon(\lambda) \propto 1/\mathrm{MED}(\lambda)\), and varies with skin phototype (roughly 200 J m\(^{-2}\) for Fitzpatrick type I to over 1000 J m\(^{-2}\) for type VI), body site, and prior exposure. The UV index is simply \(H_{\text{eff}}\) in W m\(^{-2}\) multiplied by 40.
Equation (41) resolves a question that confuses many students: UVC is the most erythemally effective radiation per photon, yet it causes no sunburn at ground level because ozone removes it; UVA reaches the ground in far greater quantity than UVB, yet contributes little to sunburn because \(\epsilon\) is a thousand times smaller. Sunburn is set by the product, and the product peaks in the UVB.
lam_uv <- seq(280, 400, by = 0.25)
## ground-level solar spectral irradiance: 5800 K Planck shape with an
## ozone cut-off modelled as a smooth transmission edge near 303 nm
E_top <- planck_lambda(lam_uv*1e-9, 5800)
T_ozone<- 1/(1 + exp(-(lam_uv - 303)/3.0))
E_gnd <- E_top*T_ozone
E_gnd <- E_gnd/max(E_gnd)
eps_ery <- ifelse(lam_uv <= 298, 1,
ifelse(lam_uv <= 328, 10^(0.094*(298 - lam_uv)),
10^(0.015*(139 - lam_uv))))
weighted <- E_gnd*eps_ery
sp <- rbind(data.frame(lam = lam_uv, v = E_gnd, q = "ground-level solar irradiance"),
data.frame(lam = lam_uv, v = eps_ery, q = "erythemal action spectrum"))
p1 <- ggplot(sp, aes(lam, v, colour = q)) +
geom_line(linewidth = 0.95) +
geom_vline(xintercept = 315, linetype = "dashed", colour = "grey50") +
annotate("text", x = 296, y = 3e-4, label = "UVB", size = 3, colour = "grey35") +
annotate("text", x = 355, y = 3e-4, label = "UVA", size = 3, colour = "grey35") +
scale_y_log10(limits = c(1e-5, 3)) +
scale_colour_manual(values = bpad_pal[c(5,1)]) +
labs(title = "the two competing factors",
x = "wavelength (nm)", y = "normalized value (log)")
p2 <- ggplot(data.frame(lam = lam_uv, w = weighted/max(weighted)), aes(lam, w)) +
geom_area(fill = bpad_pal[4], alpha = 0.30) +
geom_line(colour = bpad_pal[4], linewidth = 0.95) +
geom_vline(xintercept = 315, linetype = "dashed", colour = "grey50") +
labs(title = "their product: the erythemally weighted spectrum",
x = "wavelength (nm)", y = "relative contribution to sunburn")
bpad_grid(p1, p2, ncol = 2)Figure 21: Why UVB dominates sunburn. Left: the ground-level solar spectrum rises steeply through the UVB into the UVA, while the erythemal action spectrum falls by three orders of magnitude across the same range; both are shown on a logarithmic axis. Right: their product, the erythemally weighted spectrum of Eq. (41), is sharply peaked in the UVB near 305 nm. UVA supplies most of the photons but only a few percent of the sunburn.
share <- function(a, b) sum(weighted[lam_uv >= a & lam_uv < b])/sum(weighted)
cat(sprintf("erythemally weighted peak at %.1f nm\n", lam_uv[which.max(weighted)]))## erythemally weighted peak at 301.5 nm
cat(sprintf("share of erythemal dose: UVB (280-315 nm) %.1f%%, UVA (315-400 nm) %.1f%%\n",
100*share(280, 315), 100*share(315, 400)))## share of erythemal dose: UVB (280-315 nm) 92.8%, UVA (315-400 nm) 7.2%
knitr::kable(data.frame(
wavelength_nm = c(250, 298, 305, 315, 350, 400),
action_spectrum = signif(ifelse(c(250,298,305,315,350,400) <= 298, 1,
ifelse(c(250,298,305,315,350,400) <= 328,
10^(0.094*(298 - c(250,298,305,315,350,400))),
10^(0.015*(139 - c(250,298,305,315,350,400))))), 3),
relative_MED = signif(1/ifelse(c(250,298,305,315,350,400) <= 298, 1,
ifelse(c(250,298,305,315,350,400) <= 328,
10^(0.094*(298 - c(250,298,305,315,350,400))),
10^(0.015*(139 - c(250,298,305,315,350,400))))), 3)),
caption = "CIE erythemal action spectrum and the corresponding relative minimal erythema dose. About 1000 times more UVA than UVB energy is needed to produce the same erythema.")| wavelength_nm | action_spectrum | relative_MED |
|---|---|---|
| 250 | 1.000000 | 1.00 |
| 298 | 1.000000 | 1.00 |
| 305 | 0.220000 | 4.55 |
| 315 | 0.025200 | 39.60 |
| 350 | 0.000684 | 1460.00 |
| 400 | 0.000122 | 8220.00 |
Prevention. Acute overexposure gives erythema; chronic exposure gives photoaging, immunosuppression, and increased risk of basal cell carcinoma, squamous cell carcinoma, and melanoma. Protection combines broad-spectrum sunscreen (which must cover UVA as well as UVB, since SPF measures only erythema and therefore mostly UVB), protective clothing and UV-blocking eyewear, shade, and avoidance of peak solar hours. Because \(\epsilon(\lambda)\) is so steep, small shifts in the ground-level spectral edge have large biological consequences.
Diagnosis. Wood’s lamp examination uses filtered UVA near 365 nm to elicit characteristic fluorescence: coral-red in erythrasma, green-yellow in some dermatophyte infections, and enhanced contrast of pigmentary disorders such as vitiligo, where depigmented patches appear sharply demarcated.
Phototherapy. Controlled UV exposure is genuinely therapeutic:
Two faces of ultraviolet. UV causes sunburn, photoaging, cataract, immunosuppression, and skin cancer; UV also treats psoriasis, eczema, and vitiligo, synthesizes vitamin D, and sterilizes. The difference is entirely wavelength and dose, both of which the erythemal action spectrum lets us quantify. Narrowband 311 nm phototherapy is the clearest example of using the physics to shift the benefit-to-harm ratio deliberately.
| Feature | Thermal infrared (thermography) | Ultraviolet (photobiology) |
|---|---|---|
| Wavelength | 2–30 µm | 100–400 nm |
| Photon energy | 0.04–0.6 eV | 3.1–12 eV |
| Source in medicine | the body’s own thermal emission | Sun, arc and LED lamps, lasers |
| Physical basis | Planck, Wien, Stefan–Boltzmann | photochemistry, action spectra |
| Direction of energy flow | out of the patient | into the patient |
| Measurement | passive radiometry | dosimetry and spectroradiometry |
| Primary clinical use | temperature and perfusion mapping | phototherapy, safety, diagnosis |
| Dependence on skin pigmentation | negligible (\(\epsilon = 0.98\) for all types) | strong (melanin is a UV absorber) |
| Risk | none | erythema, DNA damage, cataract, carcinogenesis |
Section 2.6 summary.
Checkpoint 2.11. If stratospheric ozone thins and the ground-level spectral edge shifts from 303 nm to 300 nm, use the erythemal action spectrum to estimate the fractional change in erythemally weighted dose. Why is the biological consequence far larger than the change in total UV energy reaching the ground?
All of the methods in this chapter use light, and it is easy to conclude that they are interchangeable. They are not. Each measures a different photon outcome, and that outcome determines its contrast, resolution, depth, and failure mode. Table 14 consolidates the comparison.
| Method | Photon process | Contrast source | Lateral resolution | Depth | Principal limitation | Representative use |
|---|---|---|---|---|---|---|
| IR absorption / FTIR | absorption | vibrational modes (dipole change) | gas cell or ~10 µm | gas path, or thin sample | water absorbs strongly; poor tissue penetration | capnography, kidney-stone analysis |
| Pulse oximetry | absorption | HbO\(_2\) versus Hb, pulsatile | whole digit | transmission through a digit | empirical calibration; pigmentation bias; CO interference | arterial \(\mathrm{SpO_2}\) |
| NIRS / fNIRS | absorption | HbO\(_2\) versus Hb, regional | ~10 mm | ~30 mm | unknown pathlength; relative values only | cerebral oximetry, functional brain imaging |
| Raman / SRS / CARS | inelastic scattering | vibrational modes (polarizability change) | ~1 µm | ~1 mm | very weak signal; fluorescence background | tumor margins, label-free chemistry |
| Fluorescence / confocal | emission | fluorophore identity and location | 0.2–1 µm | 0.1–0.5 mm | usually needs a label; photobleaching | microscopy, endomicroscopy |
| OCT / OCTA | elastic backscattering + interference | refractive-index discontinuities; flow decorrelation | 10–20 µm (1–15 µm axial) | ~2 mm | limited penetration; structural not molecular | retinal layers, retinal capillary perfusion |
| Thermography | spontaneous thermal emission | surface temperature | ~1 mm | surface only | surface only; sensitive to environment | inflammation, Raynaud’s, perfusion |
| UV photobiology | absorption (photochemistry) | DNA and chromophore absorption | n/a | 0.1 mm (UVB) to 1 mm (UVA) | delivers energy, carries risk | phototherapy, diagnosis, safety |
Decision guide: start from the clinical question, not the instrument.
| Question | Method | Why |
|---|---|---|
| Is the patient ventilating? | capnography | CO\(_2\) absorbs at 4.26 µm; one-breath latency |
| What is arterial oxygen saturation? | pulse oximetry | pulsatile red/NIR absorption isolates arterial blood |
| Is cerebral or muscle oxygenation changing? | NIRS / fNIRS | regional HbO\(_2\) and Hb changes within the optical window |
| What is this solid sample made of? | FTIR | vibrational fingerprint by Fourier transform |
| What is the molecular composition of living tissue? | Raman | polarizability-based fingerprint, label-free, works in water |
| Where is this specific molecular marker? | fluorescence | highest sensitivity, but usually requires a label |
| What is the layered microstructure here? | OCT | coherence-gated depth resolution at micrometer scale |
| Are these capillaries perfused? | OCTA | inter-scan decorrelation from moving red cells |
| Can we see cells in vivo without a biopsy? | confocal endomicroscopy | pinhole optical sectioning through a fibre probe |
| Is one side warmer than the other? | thermography | passive detection of the body’s own IR emission |
| How much UV is therapeutic rather than harmful? | erythemal dosimetry | action-spectrum weighting sets the therapeutic ratio |
Final synthesis. The best optical method is not the one with the most sophisticated physics. It is the one whose photon interaction matches the clinical question. Absorption quantifies a known absorber; emission localizes a labelled target; elastic scattering maps structure; inelastic scattering identifies molecules; thermal emission reports surface temperature. Choose the interaction first, and the instrument follows.
This chapter has surveyed how light, from the ultraviolet through the thermal infrared, becomes a diagnostic and therapeutic tool. Three themes are worth restating.
One organizing principle. Every method here is defined by the fate of the photon. Absorption underlies capnography, anaesthetic-gas monitoring, FTIR, pulse oximetry, and NIRS. Emission underlies fluorescence, confocal microscopy, and FLIM. Elastic scattering combined with interferometry underlies OCT and OCTA. Inelastic scattering underlies Raman and its coherent variants. Spontaneous thermal emission underlies infrared thermography. Ultraviolet photobiology closes the loop, where absorption becomes photochemistry and observation becomes dose management.
A recurring trade-off space. Resolution against penetration depth; molecular specificity against sensitivity; signal strength against acquisition speed. No method wins on all axes. Confocal endomicroscopy resolves single cells but only at the surface; NIRS reaches centimeters into the brain but localizes only to centimeters; Raman is exquisitely specific but weaker by \(10^{7}\); fluorescence is extraordinarily sensitive but usually requires a label and bleaches as it works. The resolution–depth ladder of Section 2.4.5 spans four orders of magnitude in each direction, and the inverse relationship between them is imposed by scattering, not by engineering.
A small mathematical core. This is a physics chapter rather than a device catalogue because a handful of Chapter 1 results generate nearly all of its quantitative content. Exponential decay gives Beer–Lambert attenuation and fluorescence lifetime. The Fourier transform turns an interferogram into an FTIR spectrum and a spectral fringe pattern into an OCT depth profile, and the same reciprocal-width property sets FTIR resolution from mirror travel and OCT axial resolution from optical bandwidth. Linear algebra inverts the two-wavelength NIRS system and unmixes overlapping anaesthetic-gas bands. The Boltzmann factor explains both why the body glows in the infrared and why Stokes Raman dominates anti-Stokes. Differentiating the Planck function gives Wien’s law; integrating it gives Stefan–Boltzmann. Recognizing these shared roots is what lets a student move confidently between modalities.
Frontiers. Optical methods are becoming increasingly quantitative and computational. Pulse-oximetry accuracy across skin tones is an active calibration and equity problem with a specific physical cause. OCT angiography and fundus imaging are now routinely analyzed with deep learning (Chapter 8). Diffuse optical tomography and, especially, photoacoustic imaging (Chapter 3) push optical absorption contrast far deeper than the few millimeters that purely optical detection allows, by reading the optical signal out acoustically. Wearable and smartphone-based optical sensors are moving spectroscopy out of the clinic entirely, where calibration, motion, and population generalization become the dominant problems, all of which are treated in Chapter 8.
| Term | Meaning |
|---|---|
| Absorbance | \(A = -\log_{10}(I/I_0)\); base-10 measure of attenuation |
| Absorption coefficient \(\mu_a\) | Probability of absorption per unit path length (cm\(^{-1}\)) |
| Action spectrum | Relative biological effectiveness of radiation as a function of wavelength |
| Anisotropy factor \(g\) | Mean cosine of the scattering angle; \(\approx 0.9\) in soft tissue |
| Anti-Stokes scattering | Raman scattering in which the photon gains vibrational energy |
| Beer–Lambert law | Exponential attenuation with path length in a non-scattering medium |
| Blackbody | Ideal absorber and emitter; \(\epsilon(\lambda) = 1\) at all wavelengths |
| Boltzmann factor | \(e^{-E/k_BT}\); relative thermal population of an excited state |
| CARS | Coherent anti-Stokes Raman scattering |
| Coherence length | Path difference over which light still interferes; sets OCT axial resolution |
| Confocal | Pinhole-based rejection of out-of-focus light |
| Depth of focus | Axial range over which the lateral resolution is maintained; \(\propto \mathrm{NA}^{-2}\) |
| DPF | Differential pathlength factor; corrects geometric separation to true optical path |
| Emissivity \(\epsilon\) | Fraction of blackbody emission actually produced by a real surface |
| Erythema | UV-induced skin reddening from dermal vasodilation |
| Fellgett advantage | Multiplex signal-to-noise gain from measuring all wavelengths at once |
| FLIM | Fluorescence lifetime imaging microscopy |
| Fourier-domain OCT | Depth profile recovered by Fourier transform of a spectral interferogram |
| FTIR | Fourier-transform infrared spectroscopy |
| Interferogram | Interference signal as a function of optical path difference |
| IR active | Vibration that changes the molecular dipole moment |
| Isosbestic point | Wavelength (about 805 nm) where HbO\(_2\) and Hb absorb equally |
| Jablonski diagram | Energy-level scheme showing absorption, relaxation, and emission |
| Kirchhoff’s law | At equilibrium, absorptivity equals emissivity at every wavelength |
| MED | Minimal erythema dose; smallest exposure producing detectable reddening |
| Mie scattering | Scattering by particles comparable to the wavelength; forward-directed |
| Modified Beer–Lambert law | Beer–Lambert corrected for pathlength and scattering loss in tissue |
| NDIR | Non-dispersive infrared gas analysis using a bandpass filter |
| NETD | Noise-equivalent temperature difference; thermal camera sensitivity |
| Numerical aperture | \(\mathrm{NA} = n\sin\theta\); sets lateral resolution and depth of focus |
| OCTA | OCT angiography; flow contrast from inter-scan decorrelation |
| Optical window | 650–1100 nm band of relatively deep tissue penetration |
| Penetration depth \(\delta\) | \(1/\sqrt{3\mu_a(\mu_a+\mu_s')}\); \(1/e\) depth of diffuse fluence |
| Photobleaching | Irreversible destruction of a fluorophore during excitation |
| Planck function | Spectral radiant exitance of a blackbody |
| Polarizability | Ease of distorting the electron cloud; governs Raman activity |
| Pulsatile (AC/DC) | Time-varying and steady components of the oximeter signal |
| Quantum yield \(\Phi\) | Fraction of absorbed photons re-emitted as fluorescence |
| Raman shift | \(\Delta\tilde\nu\) between incident and scattered photons; excitation-independent |
| Ratio of ratios \(R\) | Pulse-oximetry index formed from \(AC/DC\) at two wavelengths |
| Rayleigh scattering | Scattering by particles much smaller than \(\lambda\); \(\propto \lambda^{-4}\) |
| Reduced scattering \(\mu_s'\) | \(\mu_s(1-g)\); equivalent isotropic scattering coefficient |
| Stefan–Boltzmann law | Total exitance \(\propto T^4\) |
| Stokes shift | Red shift of fluorescence emission relative to excitation |
| Thermogram | Two-dimensional map of surface temperature from IR radiance |
| Two-photon excitation | Simultaneous absorption of two NIR photons; intrinsic sectioning |
| UVA, UVB, UVC | 315–400, 280–315, 200–280 nm ultraviolet bands |
| Wien’s displacement law | \(\lambda_{\max}T = 2.898\times10^{-3}\) m K |
Compute the photon energy in eV and in joules at 660, 940, 300, and 365 nm. Given a representative covalent bond dissociation energy of 3.6 eV, state which of these photons can break a bond directly, and explain why increasing the intensity of a 940 nm source does not change that answer.
A sample transmits 25% of the incident light through a 2 cm path. Compute (a) the absorbance \(A\), (b) the absorption coefficient \(\mu_a\), (c) the mean free path, and (d) the concentration if \(\varepsilon = 500\) L mol\(^{-1}\) cm\(^{-1}\). (e) Verify explicitly that \(\mu_a = 2.303\,\varepsilon c\).
A tissue has \(\mu_a = 0.1\) cm\(^{-1}\), \(\mu_s = 100\) cm\(^{-1}\), and \(g = 0.9\) at 800 nm. (a) Compute \(\mu_s'\). (b) Compute the diffuse penetration depth \(\delta\). (c) By what factor does \(\delta\) change if \(\mu_a\) rises tenfold, as it would at 550 nm because of haemoglobin? (d) Explain why increasing \(\mu_a\) reduces \(\delta\) less than proportionally.
Using the figure in Section 2.1.7, explain quantitatively why 800 nm rather than 550 nm or 1450 nm is chosen for NIRS. Identify the chromophore that sets each boundary of the window, and state which molecular transition each corresponds to.
Compute the wavelength of the photon emitted in the hydrogen \(n = 3 \to 2\) transition. In which spectral region does it fall, and what is this line called? Repeat for \(n = 2 \to 1\) and state why that line is invisible to the eye.
Estimate the photon wavelength associated with (a) a typical electronic transition of 3 eV, (b) a vibrational transition of 0.2 eV, and (c) a rotational transition of \(2\times10^{-3}\) eV. Assign each to a spectral band and name a diagnostic method that exploits it.
CO\(_2\) has an IR-active asymmetric stretch at 2349 cm\(^{-1}\). (a) Convert this to a wavelength and a photon energy. (b) Explain why the symmetric stretch is not usable for capnography. (c) A capnograph gas cell is 5 cm long and end-tidal CO\(_2\) is 5% by volume. If \(\mu_a = 20\) cm\(^{-1}\) for pure CO\(_2\) at this band, estimate the transmitted fraction.
An FTIR spectrometer records an interferogram versus optical path difference \(\delta\). (a) What operation converts it into a spectrum? (b) If the maximum path difference is 1 cm, estimate the spectral resolution. (c) What mirror travel is needed to resolve two bands separated by 0.25 cm\(^{-1}\)? (d) State the Fellgett advantage and explain why it improves signal-to-noise by roughly \(\sqrt{N}\).
Using \(\varepsilon_{\mathrm{HbO_2}}(660) = 320\), \(\varepsilon_{\mathrm{Hb}}(660) = 3227\), \(\varepsilon_{\mathrm{HbO_2}}(940) = 1214\), and \(\varepsilon_{\mathrm{Hb}}(940) = 693\) (all cm\(^{-1}\) M\(^{-1}\)): (a) compute the theoretical \(R\) at \(\mathrm{SpO_2} = 100\%\) and at 70%; (b) compare with the empirical relation \(\mathrm{SpO_2} \approx 110 - 25R\); (c) explain the discrepancy physically; (d) explain why carbon monoxide poisoning produces a falsely high \(\mathrm{SpO_2}\).
Using the extinction values in the fNIRS demonstration (\(\varepsilon_{\mathrm{HbO_2}} = 1.55\), \(\varepsilon_{\mathrm{Hb}} = 3.85\) at 760 nm; \(1.55 \to 2.20\), \(3.85 \to 1.80\) at 850 nm), with \(d = 3\) cm and \(\mathrm{DPF} = 6.0\) and \(5.8\): (a) write the \(2\times2\) system; (b) compute its determinant and condition number; (c) explain what would happen if both wavelengths were chosen below 805 nm.
A 785 nm laser produces a Stokes line at 850 nm. (a) Compute the Raman shift in cm\(^{-1}\). (b) At what wavelength would the corresponding anti-Stokes line appear? (c) Estimate the anti-Stokes/Stokes intensity ratio at 310 K, ignoring the frequency prefactor, using \(k_BT = 215\) cm\(^{-1}\). (d) Comment on why the Stokes line is measured in practice.
An OCT system uses \(\lambda_0 = 1300\) nm with \(\Delta\lambda = 100\) nm. (a) Compute the axial resolution in air and in tissue (\(n = 1.38\)). (b) By how much does it improve if \(\Delta\lambda\) is doubled? (c) The system is redesigned at \(\lambda_0 = 800\) nm with the same 100 nm bandwidth; compute the new axial resolution and state the penetration penalty. (d) With \(\mathrm{NA} = 0.05\), compute the lateral resolution and depth of focus at 1300 nm.
A spectral-domain OCT system samples the spectrum from 1225 to 1375 nm with 2048 points. (a) Explain why a reflector at optical depth \(z\) produces a fringe pattern of frequency proportional to \(z\). (b) Qualitatively, what determines the maximum imaging depth? (c) What determines the axial resolution? (d) Why does Fourier-domain detection give a large sensitivity advantage over time-domain scanning?
A fluorophore is excited at 488 nm and emits at 520 nm, with \(k_r = 2\times10^{8}\) s\(^{-1}\) and \(k_{nr} = 3\times10^{8}\) s\(^{-1}\). (a) Compute the Stokes shift in nm and in eV. (b) Compute \(\Phi\) and \(\tau\). (c) A change in the microenvironment doubles \(k_{nr}\); recompute \(\Phi\) and \(\tau\) and state the percentage change in each. (d) Which change would FLIM detect more reliably, and why?
A confocal microscope uses a 1.2 NA objective at \(\lambda_{\text{em}} = 520\) nm in water (\(n = 1.33\)). (a) Estimate the lateral and axial resolution from Eq. (33). (b) The same objective is used for two-photon imaging at 960 nm excitation. Explain why optical sectioning is achieved without a pinhole. (c) Give one advantage and one disadvantage of two-photon relative to confocal.
At what temperature would 1 in \(10^{6}\) sodium atoms be thermally excited to the 3p state (\(E = 2.10\) eV)? Repeat for a mid-infrared transition of 0.13 eV and comment on the contrast.
Compute the peak emission wavelength for (a) the Sun at 5800 K, (b) a tungsten filament at 3200 K, (c) skin at 306 K, and (d) liquid nitrogen at 77 K. For each, state the spectral band and one practical consequence.
An adult (\(S = 1.73\) m\(^2\), \(\epsilon = 0.98\), \(T_{\text{skin}} = 306\) K) stands in a room whose walls are at 15 °C. (a) Compute the total emission into empty space. (b) Compute the net radiative loss. (c) Compare with a basal metabolic rate of 100 W. (d) Recompute for walls at 25 °C and comment on thermal comfort.
Two large parallel surfaces of area \(S\) with unit emissivity are held at \(T_1 > T_2\), close enough that all radiation from one strikes the other. Let \(P_0\) be the net power lost by surface 1. A thin perfectly absorbing sheet is inserted between them and reaches equilibrium temperature \(T\). Find \(T\) and the new net loss \(P\), and evaluate \(P/P_0\). Generalize to \(N\) shields.
A camera has NETD = 30 mK. (a) Using \(dW/W = 4\,dT/T\), compute the fractional change in emitted power corresponding to one NETD at 306 K. (b) An inflamed joint is 1.4 K warmer than its contralateral counterpart. What contrast-to-noise ratio does a single pixel give? (c) If pixels are averaged over a \(10\times10\) region, how does the CNR change, and what Chapter 1 result did you use?
Compute photon energies at 254, 300, 311, and 365 nm. (a) Which exceed the 3.6 eV bond threshold? (b) Why is 254 nm used for germicidal lamps but not for phototherapy? (c) Why is 311 nm chosen for narrowband phototherapy rather than 300 nm?
Using the CIE action spectrum in Section 2.6.3: (a) compute \(\epsilon\) at 300, 315, and 350 nm; (b) compute the relative MED at each; (c) if ground-level irradiance at 350 nm is 100 times that at 300 nm, which contributes more erythema, and by what factor?
For each clinical task, name the most appropriate optical method and the underlying photon process: (a) confirm an endotracheal tube is ventilating the lungs; (b) track cortical oxygenation in a premature neonate; (c) obtain a label-free chemical readout of a tumor margin intraoperatively; (d) map capillary dropout in diabetic retinopathy; (e) compare temperature over two joints without contact; (f) determine the crystalline composition of a kidney stone; (g) visualize individual cells in an airway during bronchoscopy; (h) measure tissue temperature during laser therapy without a contact probe.
Using \(E[\text{eV}] = 1240/\lambda[\text{nm}]\) and \(1\ \text{eV} = 1.602\times10^{-19}\) J:
| \(\lambda\) (nm) | \(E\) (eV) | \(E\) (J) | Breaks a 3.6 eV bond? |
|---|---|---|---|
| 660 | 1.88 | \(3.01\times10^{-19}\) | no |
| 940 | 1.32 | \(2.11\times10^{-19}\) | no |
| 300 | 4.13 | \(6.62\times10^{-19}\) | yes |
| 365 | 3.40 | \(5.44\times10^{-19}\) | no |
Only the 300 nm (UVB) photon exceeds the threshold. Raising the intensity of a 940 nm source increases the number of photons per second but not the energy of each one; bond breaking is a single-photon, quantized process, so a million weak photons cannot substitute for one energetic one. (The exception is multiphoton absorption, Section 2.4.3, which requires enormous instantaneous intensity from a pulsed laser.)
At 550 nm, haemoglobin Q-band absorption raises \(\mu_a\) to several cm\(^{-1}\) and \(\delta\) falls below 1 mm; at 1450 nm, the water combination band gives \(\mu_a \approx 29\) cm\(^{-1}\) and \(\delta\) falls to a fraction of a millimeter. At 800 nm both chromophores are near their minima (\(\mu_a \approx 0.1\) cm\(^{-1}\)) while \(\mu_s'\) has fallen to about 11 cm\(^{-1}\), giving \(\delta \approx 5.5\) mm. The short-wavelength boundary is set by haemoglobin electronic transitions (the Soret band near 420 nm and Q bands near 540–580 nm); the long-wavelength boundary is set by water vibrational overtone and combination bands (970, 1200, 1450 nm).
\(\Delta E_{3\to2} = 13.6(1/4 - 1/9) = 13.6\times5/36 = 1.889\) eV, so \(\lambda = 1240/1.889 = 656\) nm: visible red, the Balmer H\(\alpha\) line. \(\Delta E_{2\to1} = 13.6(1 - 1/4) = 10.2\) eV, so \(\lambda = 1240/10.2 = 122\) nm: Lyman \(\alpha\), in the vacuum ultraviolet. It is invisible because the eye’s response ends near 400 nm, and in any case 122 nm radiation is absorbed by air within millimeters.
Setting \(e^{-E/k_BT} = 10^{-6}\) gives \(T = E/(k_B\ln 10^{6}) = E/(13.8155\,k_B)\). For \(E = 2.10\) eV \(= 3.365\times10^{-19}\) J: \(T = 3.365\times10^{-19}/(1.381\times10^{-23}\times13.8155) = 1764\) K. For \(E = 0.13\) eV \(= 2.083\times10^{-20}\) J: \(T = 109\) K. The contrast is the whole point: a visible transition needs a temperature typical of a flame or furnace, while a mid-infrared transition is populated at the one-in-a-million level even far below room temperature. At 310 K the mid-IR transition is populated at the percent level, which is why the body is a bright infrared emitter and a completely dark visible one.
Using \(\lambda_{\max} = b/T\) with \(b = 2.898\times10^{-3}\) m K:
| Object | \(T\) (K) | \(\lambda_{\max}\) | Band | Consequence |
|---|---|---|---|---|
| Sun | 5800 | 500 nm | visible (green) | human vision evolved to match the solar peak |
| tungsten filament | 3200 | 906 nm | near-IR | most of the emitted power is invisible heat, hence low efficacy |
| skin | 306 | 9.5 µm | mid-IR | thermal cameras use the 7–14 µm band |
| liquid nitrogen | 77 | 37.6 µm | far-IR | cryogenic detector cooling suppresses self-emission background |
Without the shield, \(P_0 = S\sigma_{SB}(T_1^4 - T_2^4)\). With the shield at equilibrium, it must radiate away exactly what it absorbs. It absorbs \(S\sigma_{SB}T_1^4\) from surface 1 and \(S\sigma_{SB}T_2^4\) from surface 2, and emits \(S\sigma_{SB}T^4\) from each of its two faces, so \[2T^4 = T_1^4 + T_2^4 \quad\Longrightarrow\quad T^4 = \frac{T_1^4 + T_2^4}{2}.\] The net loss from surface 1 becomes \[P = S\sigma_{SB}(T_1^4 - T^4) = S\sigma_{SB}\left(T_1^4 - \frac{T_1^4+T_2^4}{2}\right) = \frac{1}{2}S\sigma_{SB}(T_1^4 - T_2^4),\] so \(P/P_0 = 1/2\): one shield halves the radiative loss. With \(N\) identical shields the same argument iterates to \(P/P_0 = 1/(N+1)\), which is the principle of multilayer insulation in cryostats, spacecraft, and emergency blankets.
\(E = 1240/\lambda\): 254 nm \(\to\) 4.88 eV; 300 nm \(\to\) 4.13 eV; 311 nm \(\to\) 3.99 eV; 365 nm \(\to\) 3.40 eV. (a) The first three exceed 3.6 eV; 365 nm (UVA) does not. (b) At 254 nm the erythemal action spectrum is at its maximum (\(\epsilon = 1\)) and DNA absorption peaks near 260 nm, so the radiation is maximally damaging to cells. That is exactly what is wanted for sterilizing a surface and exactly what is not wanted on a patient. (c) At 311 nm, \(\epsilon = 10^{0.094(298-311)} = 10^{-1.22} = 0.060\), compared with \(\epsilon = 0.65\) at 300 nm, so 311 nm is roughly eleven times less erythemogenic per unit energy while retaining most of the therapeutic immunomodulatory effect. Narrowband UVB therefore permits a much higher therapeutic dose before the skin burns: the therapeutic-to-erythemal ratio, not the absolute effect, is what is being optimized.