🔭 Build 06 · Polarimetry Simulator

🔭 Polarimetry Simulator

Interactive learning tool for optical polarimetry. Visualize any polarization state, simulate the rotating-QWP measurement (Schaefer et al. 2007), extract Stokes parameters via Fourier analysis, and understand why S₃ (circular) requires a QWP, not just an HWP.

Every beam in an AMO experiment has a polarization that must be carefully controlled. σ⁺/σ⁻ selection rules determine optical pumping efficiency into stretched states; π beams drive Δm=0 transitions for spectroscopy; the Rydberg excitation polarization selects which magnetic sublevel of the Rydberg manifold is excited. The Stokes parameters (S₀, S₁, S₂, S₃) and the Poincaré sphere provide a complete coordinate system for any polarization state, and understanding how waveplates (λ/4, λ/2) and polarizing beam splitters transform a Stokes vector is an everyday skill for building and aligning AMO optical setups.
Convention and calibration note: RCP/LCP and σ⁺/σ⁻ labels depend on whether you define handedness looking into the beam or along the propagation direction. This page uses an optics/Stokes convention for visualization. Before mapping to atomic Δm = ±1 selection rules, fix the beam propagation direction, quantization axis, and lab convention. Real polarimetry also needs calibration of QWP retardance, PBS extinction, detector offsets, and angle zero.

Light is an electromagnetic wave. Polarization describes how the electric field vector E oscillates as the wave propagates. Click below to see the E-field for each type.

Linear 0° (Horizontal): E-field oscillates along x-axis. Stokes: S=[1,1,0,0].
Types of Polarization
Linear Polarization

E-field oscillates in a fixed plane at angle α. Created by a linear polarizer or PBS.

$$\mathbf{S} = \bigl[1,\;\textcolor{#047c90}{\cos 2\alpha},\;\textcolor{#804df5}{\sin 2\alpha},\;0\bigr]$$
Circular Polarization

E-field rotates in a circle. RCP: clockwise looking into beam. Created by linear + QWP at 45°.

$$\mathbf{S} = \bigl[1,\;0,\;0,\;\textcolor{#0b815a}{\pm 1}\bigr]$$
Elliptical Polarization

Most general case. Described by orientation ψ and ellipticity χ. Linear/circular are special cases.

$$\mathbf{S} = \bigl[1,\;\textcolor{#047c90}{\cos 2\chi\cos 2\psi},\;\textcolor{#804df5}{\cos 2\chi\sin 2\psi},\;\textcolor{#0b815a}{\sin 2\chi}\bigr]$$

Key Optical Components
PBS, Polarizing Beam Splitter

Splits light into orthogonal linear polarizations. Extinction ratio: ~1:1,000 (cube) or ~1:100,000 (GT PBS).

Transmit Horizontal   Reflect Vertical

HWP, Half-Wave Plate

Phase retardance π. Rotates linear polarization by 2θ (fast axis at θ). Flips circular handedness.

Used in Scenario 1 & 2 (rotating HWP + PBS). Cannot detect S₃!

QWP, Quarter-Wave Plate

Phase retardance π/2. Converts linear ↔ circular. QWP at 45° converts RCP/LCP to linear.

Central element in the rotating QWP method, detects all four Stokes parameters.


Lab Scenarios (from your notes)

Scenario 1, Linear polarization input:

SOURCE
Unknown linear
HWP
Half-wave plate
θ: 0→180°
PBS
Fixed horizontal
DETECTOR

Sinusoidal I(θ) curve. Formula: I(θ) = ½[1 + cos(4θ − 2α)]. Maximum at θ = α/2 reveals polarization angle.

Scenario 2, Circular polarization input:

SOURCE
Circular pol.
QWP
at 45° (fixed)
HWP
rotating
θ: 0→180°
PBS
DETECTOR

Without QWP: circular gives a flat line. QWP at 45° converts RCP/LCP → linear, then HWP+PBS sees a sinusoidal curve.

The Stokes formulation represents polarization using four intensity measurements, no complex math needed. All values are directly measurable with a power meter.

The Four Parameters
S₀, Total Intensity

Total beam power. For normalized states, S₀ = 1.

$$S_0 = I_H + I_V$$
S₁ (Q), Horizontal vs Vertical

+1 = fully horizontal, −1 = fully vertical, 0 = equal.

$$S_1 = I(0°) - I(90°)$$
S₂ (U), Diagonal Preference

+1 = fully +45°, −1 = fully −45°, 0 = symmetric.

$$S_2 = I(45°) - I(135°)$$
S₃ (V), Circular Handedness

+1 = fully RCP, −1 = fully LCP. Cannot be measured with HWP+PBS alone!

$$S_3 = I_{\rm RCP} - I_{\rm LCP}$$
Poincaré Sphere

Every fully polarized state maps to a point on the unit sphere. Drag to rotate.

+S₁ equator
Linear 0°
+S₂ equator
Linear +45°
+S₃ north
Right Circular
−S₁ equator
Linear 90°
−S₂ equator
Linear −45°
−S₃ south
Left Circular

Common States Table
StateS₀S₁S₂S₃Location
Horizontal (0°)1+100+S₁ equator
Vertical (90°)1−100−S₁ equator
Linear +45°10+10+S₂ equator
Linear −45°10−10−S₂ equator
Right Circular (RCP)100+1North pole
Left Circular (LCP)100−1South pole
Linear at angle α1cos 2αsin 2α0Equator at 2α
Unpolarized1000Center (inside)

Fully Polarized Light
$$S_0^2 = S_1^2 + S_2^2 + S_3^2$$
$$\mathrm{DOP} = \frac{\sqrt{S_1^2+S_2^2+S_3^2}}{S_0}$$

DOP = 1.0 for fully polarized; DOP = 0.0 for unpolarized light.

Ellipse Parameters
$$\begin{aligned}\psi &= \tfrac{1}{2}\,\mathrm{atan2}(S_2,\,S_1) & &\text{[orientation, }0{-}180°]\\ \chi &= \tfrac{1}{2}\arcsin(S_3/S_0) & &\text{[ellipticity, }\pm 45°]\end{aligned}$$

χ = 0 → Linear  |  χ = ±45° → Circular

Three approaches with increasing sophistication. The rotating QWP method (Schaefer 2007) recovers all four Stokes parameters from a single continuous rotation.

Method A: Classical (6 Separate Measurements)

Directly measure I with a linear polarizer at 0°, 45°, 90°, 135°, and with a QWP for circular.

$$\begin{aligned}S_0 &= I(0°)+I(90°) \\ S_1 &= I(0°)-I(90°) \\ S_2 &= I(45°)-I(135°) \\ S_3 &= I_{\rm RCP}-I_{\rm LCP}\end{aligned}$$

S₃ requires a QWP at 45° before the detector.

Limitation: Six separate alignments. Drift between shots introduces error. Tedious for S₃.
Method B: Rotating HWP + PBS
SOURCE
HWP
θ: 0→360°
PBS
Fixed horizontal
DETECTOR
$$I(\theta) = \tfrac{1}{2}\bigl[S_0 + \textcolor{#047c90}{S_1}\cos(4\theta) + \textcolor{#804df5}{S_2}\sin(4\theta)\bigr]$$

No S₃ term — circular component is invisible. For circular input [S₁=S₂=0]: I(θ) = S₀/2 = flat line.

Key limitation: HWP flips S₃ but PBS transmits only linear, so S₃ cancels out. To detect circular, you need a fixed QWP at 45° first (Scenario 2), or use Method C below.
Method C: Rotating QWP + LP (Schaefer 2007) ★
SOURCE
QWP
Fast axis at θ
θ: 0→360°
LP
Linear polarizer
Fixed (horiz.)
DETECTOR
$$I(\theta) = \tfrac{1}{2}\bigl[S_0 + S_1\cos^2(2\theta) + S_2\sin(2\theta)\cos(2\theta) - S_3\sin(2\theta)\bigr]$$

Using trig identities (Schaefer 2007 expansion):

$$I(\theta) = \textcolor{#896e03}{a_0} + \textcolor{#0b815a}{b_2}\sin(2\theta) + \textcolor{#047c90}{a_4}\cos(4\theta) + \textcolor{#804df5}{b_4}\sin(4\theta)$$

where:

$$\begin{aligned}\textcolor{#896e03}{a_0} &= S_0/2 + S_1/4 &\quad&\text{(DC offset)}\\\textcolor{#0b815a}{b_2} &= -S_3/2 &\quad&\text{(2nd harmonic encodes }S_3\text{!)}\\\textcolor{#047c90}{a_4} &= S_1/4 &\quad&\text{(4th harmonic cosine)}\\\textcolor{#804df5}{b_4} &= S_2/4 &\quad&\text{(4th harmonic sine)}\end{aligned}$$

Recovery:

$$\textcolor{#047c90}{S_1 = 4a_4}\qquad \textcolor{#804df5}{S_2 = 4b_4}\qquad \textcolor{#0b815a}{S_3 = -2b_2}\qquad S_0 = 2a_0 - 2a_4$$
Why this wins: S₃ appears in the 2nd harmonic, unique to the QWP method. A single continuous rotation gives all four parameters via Fourier analysis. Noise averages out across the full sweep.
Comparison
MethodS₁S₂S₃Notes
Classical (6 shots)✓✓✓6 separate alignments, drift-prone
Rotating HWP + PBS✓✓✗Cannot detect S₃ (circular)
Rotating QWP + LP ★✓✓✓Single rotation, Fourier fit, all 4 params

Set any input polarization state, choose the measurement method, and see the exact I(θ) curve live. Fourier analysis extracts all Stokes parameters automatically.

Input Polarization State

Or use sliders (ψ=orientation, χ=ellipticity):

ψ (orient) 0°
χ (ellip.) 0°
DOP 100%
S₀
1.000
S₁
1.000
S₂
0.000
S₃
0.000
Orientation ψ
0.0°
Ellipticity χ
0.0°
DOP
100%
Type
Linear
Measurement Setup
Add measurement noise
Show Fourier fit overlay
E-Field (xy-plane view)
I(θ), Intensity vs. Waveplate Angle

Raw measurement signal. The Plotly toolbar (top-right) lets you download as PNG or SVG.

Extracted Stokes Parameters

Recovered via Fourier analysis. Compare with input.

Poincaré Sphere

Current state (cyan dot). Drag to rotate.

Fourier Decomposition of I(θ)

The I(θ) curve broken into its harmonic components. Each encodes a Stokes parameter.

Mueller matrices operate on Stokes vectors [S₀,S₁,S₂,S₃]. Jones matrices operate on the complex E-field vector [Ex, Ey·e^iδ].

Mueller Matrices
Horizontal Linear Polarizer
$$M_{\rm LP} = \frac{1}{2}\begin{pmatrix}1&1&0&0\\1&1&0&0\\0&0&0&0\\0&0&0&0\end{pmatrix}$$
HWP (fast axis at θ)
$$M_{\rm HWP}(\theta) = \begin{pmatrix}1&0&0&0\\0&\cos4\theta&\sin4\theta&0\\0&\sin4\theta&-\cos4\theta&0\\0&0&0&-1\end{pmatrix}$$

Note: S₃ → −S₃ (flips circular handedness, but PBS still loses it).

QWP (fast axis at θ)
$$M_{\rm QWP}(\theta) = \begin{pmatrix}1&0&0&0\\0&\cos^2 2\theta&\sin 2\theta\cos 2\theta&-\sin 2\theta\\0&\sin 2\theta\cos 2\theta&\sin^2 2\theta&\cos 2\theta\\0&\sin 2\theta&-\cos 2\theta&0\end{pmatrix}$$

This matrix generates the S₃ → sin(2θ) term in I(θ).

Jones Vectors & Matrices
$$\begin{aligned}\text{H linear:}\;&[1,\,0]^\top \\ \text{V linear:}\;&[0,\,1]^\top \\ {+45°:}\;&\tfrac{1}{\sqrt{2}}[1,\,1]^\top \\ {-45°:}\;&\tfrac{1}{\sqrt{2}}[1,\,-1]^\top \\ \text{RCP:}\;&\tfrac{1}{\sqrt{2}}[1,\,-i]^\top \\ \text{LCP:}\;&\tfrac{1}{\sqrt{2}}[1,\,+i]^\top\end{aligned}$$
Jones → Stokes

For $[E_x,\,E_y e^{i\delta}]$ normalized to $S_0=1$:

$$\begin{aligned}S_0 &= |E_x|^2+|E_y|^2\\S_1 &= |E_x|^2-|E_y|^2\\S_2 &= 2|E_x||E_y|\cos\delta\\S_3 &= 2|E_x||E_y|\sin\delta\end{aligned}$$

Inverse (S₀=1):

$$\begin{aligned}|E_x| &= \sqrt{(1+S_1)/2}\\|E_y| &= \sqrt{(1-S_1)/2}\\\delta &= \mathrm{atan2}(S_3,\,S_2)\end{aligned}$$

Key Formulas Cheatsheet
FormulaWhat it gives
I_QWP(θ) = ½[S₀+S₁cos²2θ+S₂sin2θcos2θ−S₃sin2θ]Rotating QWP + LP intensity
I_HWP(θ) = ½[S₀+S₁cos4θ+S₂sin4θ]Rotating HWP + PBS (no S₃ term!)
I(θ) = a₀ + b₂sin2θ + a₄cos4θ + b₄sin4θQWP Fourier expansion
S₁=4a₄, S₂=4b₄, S₃=−2b₂, S₀=2a₀−2a₄Stokes from Fourier coefficients
DOP = √(S₁²+S₂²+S₃²)/S₀Degree of polarization
ψ = ½·atan2(S₂,S₁)Polarization orientation (0–180°)
χ = ½·arcsin(S₃/S₀·DOP)Ellipticity angle (±45°)
I_linear(θ)|_HWP = ½[1+cos(4θ−2α)]HWP scan for linear pol. at angle α

Step-by-Step: Rotating QWP Method
Step 1, Setup

Place rotating QWP (motorized or manual) followed by a fixed horizontal linear polarizer. Connect output to a power meter or photodiode.

Step 2, Measure I(θ)

Rotate QWP 0°→360°, recording intensity at each angle. Need ≥50 points for good SNR. More points = better Fourier resolution.

Step 3, Fourier Extract

Fit I(θ) = a₀ + b₂sin2θ + a₄cos4θ + b₄sin4θ. Apply: S₁=4a₄, S₂=4b₄, S₃=−2b₂, S₀=2a₀−2a₄.

📖 New: everything on this page for measuring a classical polarization state is, unchanged, the recipe for measuring a single-photon polarization qubit. Based on James, Kwiat, Munro & White, Phys. Rev. A 64, 052312 (2001).
A Stokes vector is a Bloch vector

Write a single photon's polarization state as a qubit, $|\psi\rangle = \alpha|H\rangle+\beta|V\rangle$. Its density matrix $\hat\rho = |\psi\rangle\langle\psi|$ (or a mixed state for partially polarized light) is a $2\times2$ Hermitian, unit-trace matrix, exactly the object the Poincaré sphere in the Stokes Parameters tab already visualizes. Expand it in the Pauli basis $\hat\sigma_0=\hat I,\hat\sigma_1, \hat\sigma_2,\hat\sigma_3$ and the Stokes parameters fall out as the expansion coefficients:

$$\hat\rho = \frac{1}{2}\sum_{i=0}^{3}\frac{S_i}{S_0}\,\hat\sigma_i$$

The normalized Stokes vector $(S_1/S_0,S_2/S_0,S_3/S_0)$ is the Bloch vector. Degree of polarization is Bloch-vector length; a fully mixed (unpolarized) beam sits at the Poincaré sphere's center, exactly like the maximally mixed qubit state $\hat\rho = \hat I/2$.


The minimal measurement set for one qubit

The continuous rotating-QWP method above is built for a classical beam with a power meter, plenty of photons to average over every angle. A single photon gives one click per shot, so photonic qubit tomography instead uses four fixed projective measurements:

$$\hat\mu_0=|H\rangle\langle H|+|V\rangle\langle V|,\quad \hat\mu_1=|H\rangle\langle H|,\quad \hat\mu_2=|D\rangle\langle D|,\quad \hat\mu_3=|R\rangle\langle R|$$

$\mu_0$ (both PBS outputs summed) fixes the total count for normalization; $\mu_1,\mu_2,\mu_3$ are projections onto H, +45° diagonal, and right-circular, the same three axes this page already calls the H/V, D/A, and R/L bases. Count $n_i$ photons in each setting, then:

$$S_0=2n_0,\quad S_1=2(n_1-n_0),\quad S_2=2(n_2-n_0),\quad S_3=2(n_3-n_0)$$

Feed these into $\hat\rho = \tfrac{1}{2}\sum_i (S_i/S_0)\hat\sigma_i$ above and you have a full single-qubit tomographic reconstruction, four measurement settings, no rotation stage required.


Why the raw estimate can be unphysical

With finite photon counts, statistical noise on $n_0..n_3$ can push the linear-inversion $\hat\rho$ above to a matrix with a negative eigenvalue, not a valid quantum state. James et al.'s fix, now the field standard, is maximum-likelihood estimation: parametrize $\hat\rho = \hat T^\dagger\hat T/\mathrm{Tr}(\hat T^\dagger\hat T)$ for a lower-triangular $\hat T$ (this form is positive semidefinite by construction for any $\hat T$) and numerically maximize the likelihood of the observed counts over $\hat T$'s free parameters. The result is always a physical density matrix.

The same recipe, on an atomic qubit

If you've built the rotating-QWP polarimeter above, you already understand atomic-qubit state tomography. Swap $\mu_1$ (H projection) for a bare population measurement in $\{|0\rangle,|1\rangle\}$; swap $\mu_2,\mu_3$ (D and R projections) for a population measurement preceded by a resonant $\pi/2$ pulse at phase $0$ and phase $\pi/2$, rotating the X- or Y-axis of the atomic Bloch sphere onto the measurement axis. Same four measurement settings, same $\hat\rho = \tfrac12\sum_i (S_i/S_0)\hat\sigma_i$ reconstruction, same maximum-likelihood fix for shot-noise-induced unphysical estimates.

Worked check

The +45° preset in the Interactive Simulator tab has Stokes vector $(S_1,S_2,S_3)/S_0=(0,1,0)$. Its density matrix is $\hat\rho=\tfrac12\!\begin{pmatrix}1&1\\1&1\end{pmatrix}$, a pure state, $\mathrm{Tr}(\hat\rho^2)=1$, eigenvalues $\{1,0\}$. Try the Elliptical preset, $(S_1,S_2,S_3)/S_0=(0.5,0.5,0.707)$: since $S_1^2+S_2^2+S_3^2 \approx S_0^2$, it is still (to rounding) a pure state sitting on the Poincaré sphere's surface, not a partially mixed one inside it.

Sources

See Also