Demo — Phased Array Simulator#
This is the interactive phased-array simulator we use in class, embedded here for self-study. It builds the array factor for a linear or planar array, steers the beam with element phasing, and visualizes the result five ways: a pattern plot, a 2D heatmap, the element phase fronts, a polar cut, and a 3D hemisphere. Use it to see the ideas from the reading — beam steering, beamwidth, side lobes, and grating lobes.
The idea#
Each element radiates the same signal with a programmed phase. Sloping the phase across the array tilts the wavefront and points the main lobe at the steering angle \(\theta_0\):
Keep the spacing \(d \le \lambda/2\) to avoid grating lobes at every scan angle; the general steered limit is \(d \le \lambda/(1+|\sin\theta_0|)\), which the demo’s status panel tracks live.
Interactive demo#
Walkthrough#
Work the Pattern tab first, then Polar Cut, then Planar, then 3D Hemisphere.
Baseline. Linear, \(M = 8\), \(d_x/\lambda = 0.50\), \(\theta_0 = 0\). Note the main lobe at boresight and the first side lobes near \(-13\) dB (uniform illumination).
Steer it. Push \(\theta_0\) to \(30^\circ\), then \(60^\circ\). The main lobe moves to the steering angle and broadens by about \(1/\cos\theta_0\).
Read the numbers. The Status panel reports HPBW and peak SLL live, measured off the θ-cut on screen. At \(M = 8\), \(d = \lambda/2\), boresight it reads \(12.8^\circ\) and \(-12.8\) dB — the in-class MATLAB anchor. Drag \(M\) up to \(16\), then \(64\): the beam narrows to \(6.4^\circ\) and \(1.6^\circ\) while the SLL settles toward the \(-13.2\) dB uniform-illumination constant. Switch to Polar Cut to see the same beam drawn round.
Break it. Raise \(d_x/\lambda\) from \(0.50\) to \(0.80\), then steer \(\theta_0\) to \(30^\circ\). The status panel flips to “⚠ grating lobes” (the steered limit is \(1/(1+\sin 30^\circ)\approx 0.67\)) and a grating lobe — a full-strength copy of the main lobe — rises near \(-49^\circ\). Watch the SLL readout jump to \(-0.0\) dB: a grating lobe is not a side lobe, it is a second main lobe. EW implication: a poorly spaced array leaks full-strength energy in unintended directions.
Prove it is the steering, not the spacing. Set \(d_x/\lambda = 0.90\) and park \(\theta_0\) at \(0\) — clean, one lobe, SLL \(-12.5\) dB, because the broadside bound is \(d \le \lambda\). Now walk \(\theta_0\) up. The limit readout falls as you scan, and the warning trips partway. Same array, same spacing; only the scan angle changed. (This is the reading’s type-along, run backwards.)
Go planar. Switch to Planar (\(M = 8\), \(N = 8\), \(d_x = d_y = \lambda/2\)) and steer \(\theta_0\) and \(\phi_0\). The 2D Heatmap shows the beam wandering across the hemisphere.
See the cone. Open the 3D Hemisphere tab. Drag to rotate and confirm the focused cone with its surrounding side-lobe rings.
Add the element factor. Toggle Element factor (cos θ). The distant side lobes pull back toward boresight — real elements have their own pattern that multiplies the array factor.
Key observations#
Uniform illumination → ≈ −13 dB side lobes. Tapering would lower them at the cost of a wider main beam.
HPBW broadens as \(1/\cos\theta_0\). Steering to \(60^\circ\) roughly doubles the beamwidth and costs about 3 dB of gain. The rule is asymptotic in element count: at \(M = 8\) the panel reads \(28.8^\circ\) against a predicted \(25.6^\circ\), but by \(M = 64\) the measurement and the rule agree to within a percent.
Grating lobes appear when \(d\) exceeds \(\lambda/(1+|\sin\theta_0|)\) — keeping \(d \le \lambda/2\) is the angular-domain Nyquist choice that stays safe at every scan angle. Note what the bound does not say: at broadside it allows a full \(d \le \lambda\).
A planar array’s beam is a 3D cone, steerable in both azimuth and elevation.
Source#
MATLAB bundle · L6_ArrayFactorAndSteering.m↓
The companion script builds the array factor for an \(N\)-element linear array, plots it in polar dB, steers the beam to \(0^\circ\), \(30^\circ\), and \(60^\circ\) to watch the HPBW broaden, and marks the first side-lobe level to confirm the \(-13.2\) dB rule.