Antenna models — reading order
- Maxwell’s equations
- Retarded potentials (this article)
- Near-field / far-field boundary
- Far-field retarded potentials
- Array pattern multiplication
- Dipole power gain patterns
Introduction
Maxwell’s equations in free space support waves at speed \(c\). So for time-varying sources the potentials cannot be the instantaneous Coulomb or Biot–Savart integrals; they must be evaluated at a retarded time. We write those retarded potentials and then specialise to a single-frequency (phasor) source.
Motive
Radiation, interference, and array factors all assume that what leaves the antenna arrives later with a phase \(e^{-jkR}\). We want that phase to come from retardation of the potentials, not from inserting it by hand in the far field.
Technical development
In the Lorenz gauge the retarded scalar and vector potentials are
\[\Phi(\mathbf{r},t)=\frac{1}{4\pi\varepsilon}\int\frac{\rho(\mathbf{r}’,t-R/c)}{R}\,dV’, \quad \mathbf{A}(\mathbf{r},t)=\frac{\mu}{4\pi}\int\frac{\mathbf{J}(\mathbf{r}’,t-R/c)}{R}\,dV’,\]with \(R=|\mathbf{r}-\mathbf{r}’|\). For a phasor convention \(e^{j\omega t}\), retardation becomes multiplication by \(e^{-jkR}\) with \(k=\omega/c\), yielding the familiar Helmholtz integrals used in antenna texts.
How this achieves the motive
The Green’s functions we use later are special cases of these integrals. The spherical wave \(e^{-jkR}/R\) is just retardation sitting on top of the static \(1/R\) kernel.
Sample simulation
import numpy as np
c = 299_792_458.0
f = 1e9
k = 2 * np.pi * f / c
R = np.array([0.5, 1.0, 2.0, 10.0]) # metres
gre = np.exp(-1j * k * R) / R
print("k =", k, "1/m")
print("e^{-jkR}/R =", gre)
Sample results
The printed values shrink as \(1/R\) and rotate in phase as \(-kR\). That is the same amplitude and phase behaviour you will use in far-field array work.
Next topic
When is the observer “far” enough for pattern work? See the Fraunhofer boundary.
References
[1] Jackson. [2] Orfanidis, EWA.