Beamforming Algorithms
From Data-Independent to Adaptive Beamforming
Data-independent beamformers (Bartlett) use fixed weights; adaptive beamformers (Capon, MUSIC) exploit the received data statistics to improve resolution and suppress interference.
Definition: Bartlett (Conventional) Beamformer
Bartlett (Conventional) Beamformer
The Bartlett beamformer scans the steering vector across angles:
where is the array covariance.
def bartlett(Rxx, N, d_lambda, theta_scan):
P = np.zeros(len(theta_scan))
for i, th in enumerate(theta_scan):
a = steering_vector(N, d_lambda, th)
P[i] = np.real(a.conj() @ Rxx @ a) / (np.abs(a @ a.conj())**2)
return P
Definition: Capon (MVDR) Beamformer
Capon (MVDR) Beamformer
The Capon (Minimum Variance Distortionless Response) beamformer minimizes output power while maintaining unit gain at the look direction:
This provides much better resolution than Bartlett by placing nulls toward interferers.
def capon(Rxx, N, d_lambda, theta_scan):
Rinv = np.linalg.inv(Rxx)
P = np.zeros(len(theta_scan))
for i, th in enumerate(theta_scan):
a = steering_vector(N, d_lambda, th)
P[i] = 1 / np.real(a.conj() @ Rinv @ a)
return P
Definition: MUSIC Algorithm
MUSIC Algorithm
MUSIC (MUltiple SIgnal Classification) achieves super-resolution by exploiting the noise subspace:
- Estimate and compute its eigendecomposition
- Partition eigenvectors into signal () and noise ()
- Compute the pseudospectrum:
def music(Rxx, N, d_lambda, theta_scan, n_sources):
eigvals, eigvecs = np.linalg.eigh(Rxx)
Un = eigvecs[:, :N-n_sources] # noise subspace
P = np.zeros(len(theta_scan))
for i, th in enumerate(theta_scan):
a = steering_vector(N, d_lambda, th)
P[i] = 1 / np.real(a.conj() @ Un @ Un.conj().T @ a + 1e-10)
return P
MUSIC can resolve sources closer than the Rayleigh limit () but requires knowing the number of sources .
Definition: ESPRIT Algorithm
ESPRIT Algorithm
ESPRIT (Estimation of Signal Parameters via Rotational Invariance) estimates DOAs without spectral scanning by exploiting the shift invariance of ULAs. It computes angles directly from the eigenvalues of a rotation matrix derived from two subarrays.
Definition: Array Covariance Matrix Estimation
Array Covariance Matrix Estimation
The sample covariance from snapshots:
More snapshots improve the estimate. Diagonal loading () improves robustness for Capon.
Theorem: Capon Resolution Limit
Capon can resolve two sources separated by more than approximately radians, which is better than the Bartlett resolution of by roughly a factor of 2. MUSIC can resolve sources separated by much less than the Rayleigh limit, limited mainly by SNR.
Capon places adaptive nulls toward interferers; MUSIC exploits the full eigenstructure of the covariance matrix for super-resolution.
Theorem: Signal and Noise Subspace Orthogonality
The true steering vectors lie in the signal subspace:
The MUSIC pseudospectrum peaks where is orthogonal to the noise subspace, i.e., at the true DOAs.
The noise eigenvectors span the subspace orthogonal to the signals. Scanning for where aligns with the signal subspace (or equivalently, is orthogonal to the noise subspace) reveals the DOAs.
Theorem: Cramer-Rao Bound for DOA Estimation
The CRB on DOA estimation variance for a single source at angle with SNR and snapshots is:
MUSIC approaches the CRB at moderate-to-high SNR.
More elements, more snapshots, and higher SNR all reduce the DOA estimation error. The factor means accuracy degrades for angles far from broadside.
Example: Direction of Arrival Estimation
Estimate the DOAs of two sources at and using Bartlett, Capon, and MUSIC with an 8-element ULA.
Generate data
N, d_lambda = 8, 0.5
thetas = np.radians([20, 35])
A = np.column_stack([steering_vector(N, d_lambda, t) for t in thetas])
L = 100 # snapshots
S = (np.random.randn(2, L) + 1j*np.random.randn(2, L)) / np.sqrt(2)
noise = 0.1 * (np.random.randn(N, L) + 1j*np.random.randn(N, L)) / np.sqrt(2)
X = A @ S + noise
Rxx = X @ X.conj().T / L
Apply algorithms
theta_scan = np.linspace(-np.pi/2, np.pi/2, 1000)
P_bart = bartlett(Rxx, N, d_lambda, theta_scan)
P_capon = capon(Rxx, N, d_lambda, theta_scan)
P_music = music(Rxx, N, d_lambda, theta_scan, 2)
DOA Estimation: Bartlett vs Capon vs MUSIC
Compare beamforming algorithms for direction-of-arrival estimation.
Parameters
MUSIC Resolution vs Source Separation
Watch MUSIC resolve two sources as their angular separation increases.
Parameters
Beamforming Algorithm Comparison
Quick Check
What does the MUSIC algorithm require that Bartlett does not?
More antenna elements
Knowledge of the number of sources
Higher SNR
A planar array
MUSIC needs to partition the eigenvalues into signal and noise subspaces.
Quick Check
Why does Capon have better resolution than Bartlett?
It uses more antennas
It adapts weights to minimize interference
It uses higher sampling rate
It applies windowing
Capon places nulls toward interferers, sharpening the spatial response.
Common Mistake: Too Few Snapshots for Covariance Estimation
Mistake:
Using fewer snapshots () than array elements () for covariance estimation, making rank-deficient and Capon unstable.
Correction:
Use snapshots. For Capon, add diagonal loading:
Rxx_loaded = Rxx + delta * np.eye(N) with .
Key Takeaway
Bartlett is simple but resolution-limited. Capon adapts to data and improves resolution by 2x. MUSIC achieves super-resolution by exploiting the noise subspace, but requires knowing the number of sources.
Beamforming Algorithm Comparison
| Property | Bartlett | Capon (MVDR) | MUSIC |
|---|---|---|---|
| Type | Data-independent | Adaptive | Subspace |
| Resolution | ~ | ~ | Super-resolution |
| Requires known? | No | No | Yes |
| Complexity | (inversion) | (eigendecomp) | |
| Robustness | High | Moderate | Low SNR sensitive |
| Null placement | Fixed | Adaptive | N/A (DOA only) |
Capon Beamformer
An adaptive beamformer that minimizes output power subject to unity gain at the look direction, achieving better resolution than Bartlett.
Related: MUSIC
MUSIC
MUltiple SIgnal Classification: a subspace-based DOA estimation algorithm that achieves super-resolution by exploiting the noise subspace orthogonality.
Related: Capon Beamformer
Direction of Arrival (DOA)
The angle from which a signal arrives at an antenna array.