Explore phased array beam steering and simple radar/receive DOA estimation directly in the browser. This interactive RF engineering tool visualizes antenna array geometry, element spacing, steering direction, 3D radiation lobes, simplified mutual coupling and prescribed-current Huygens-style/Fraunhofer behavior.
The simulator is designed for learning and experimentation: instead of relying only on fixed 2D antenna pattern pictures, it uses vector-based field calculations to show how antenna elements combine in 3D space.
A phased array simulator is an interactive tool for visualizing how multiple antenna elements combine their electromagnetic fields. By changing phase shifts, steering angle, element spacing and amplitude taper, you can see how the main beam, sidelobes, nulls and radiation pattern change in 3D.
This browser-based antenna array simulator is useful for students, RF engineers and makers who want to understand beamforming without starting with a full electromagnetic solver. The visualization connects the array factor, Fraunhofer far-field approximation and simplified prescribed-current Huygens-style field model in one place.
The same antenna position vectors can also be used for receive and radar direction-of-arrival experiments. The simulator can generate noisy complex antenna samples, compare them with many possible reference responses, and show the estimated target direction as a DOA correlation map.
Steering, target direction, radar scene and receive/DOA test are linked here. Unlock target direction or range only when you want a separate test.
gₙ(d)=E(d)·exp(j·α·k·rₙ·d)y=g(d_true)·s+nP(d₀)=|g(d₀)ᴴy|²α=1 one-way, α=2 radar round-tripDefault: the radar target follows the steering azimuth, elevation and distance. Unlock it only for an independent receive/DOA test.
Define a simple reflecting object. The shape is visual; the radar calculation uses a point target with configurable RCS.
This sets the physical wavelength λ = c / f_c. Array distances stay in λ; meter and mm values are derived from this frequency.
Choose a geometry preset or edit the coordinates directly. Presets only generate vectors in this editor.
Write positions as [x, y, z]. Multiple vectors can sit on one line.
Richtung: θ=75°, φ=10°
Displayed field value: 1.0
Re(A) Huygens model: 0.0
$$A(\vec{R}) = \sum_{n=1}^N \frac{e^{ik(\vec{r}_n\cdot\hat{s})}}{N_P} \sum_{p=1}^{N_P} F_p(\hat{r}_{n,p})\,\frac{e^{ik|\vec{R}-\vec{r}_{n,p}|}}{|\vec{R}-\vec{r}_{n,p}|}$$
$$A_{\text{Fraunhofer}}(\hat{d}-\hat{s}) = \frac{e^{ikR}}{R} F(\hat{d}) \sum_{n=1}^N e^{-ik\left((\hat{d}-\hat{s})\cdot\vec{r}_n\right)}$$
$$E_{\text{phys}}(t)=\operatorname{Re}\left\{\tilde E(\vec R)e^{i\omega t}\right\}=|\tilde E(\vec R)|\cos(\omega t+\angle\tilde E)$$
$$\left\langle E_{\text{phys}}^2(t)\right\rangle_t=\frac{1}{2}|\tilde E(\vec R)|^2$$
$$AF_{dB}=20\log_{10}\left(\frac{|AF|}{|AF|_{max}}\right)=10\log_{10}\left(\frac{|AF|^2}{|AF|^2_{max}}\right)$$
$$\phi_n(\text{steer}) = k(\vec{r}_n \cdot \hat{s})$$
$$A_n(\hat{d}) = A_n \cdot e^{-ik(\hat{d}\cdot\vec{r}_n)} e^{ik(\vec{r}_n\cdot\hat{s})} = A_n \cdot e^{-ik\left((\hat{d}-\hat{s})\cdot\vec{r}_n\right)}$$
$$\text{This page uses } e^{i\omega t}\text{ and outgoing }G(R)\propto e^{ikR}/R.$$
$$AF(\hat{d}) = \sum_{n=1}^{N} a_n e^{-i k (\hat{d} \cdot \vec{r}_n)}$$
This section describes exactly what the radar/receive test does. The DSP does not know the true target direction. It generates noisy antenna samples for a chosen target and then tests many possible directions until the expected phase pattern matches the measurement best.
Each antenna element has a known position vector.
A possible target direction is represented by a unit vector.
For each test direction the simulator computes the complex reference response of every antenna.
One-way receive uses alpha = 1. Monostatic radar round-trip uses alpha = 2 because the wave travels to the target and back.
The measured vector is the true array response multiplied by a complex echo amplitude plus complex receiver noise.
Noise is added independently to the real and imaginary part of each antenna sample.
For unit signal amplitude the SNR slider controls the complex noise amplitude.
For every candidate direction the simulator correlates the measured vector with the stored reference response.
The DOA heatmap shows the squared magnitude of this matched-filter output.
The direction with the largest correlation peak is reported as the estimated target direction.
Correct hypotheses align the antenna phases and add constructively. Wrong hypotheses leave residual phase errors, so the sum partly cancels. With low SNR the peak becomes wider or can jump to a wrong sidelobe.
This section explains the new radar scene options step by step. The object geometry is intentionally simple: sphere, box, plate or cylinder. It is used for visualization and a reflectivity/RCS setting; the first radar model treats the object as one point reflector.
The user selects a simple visual geometry. This keeps the UI understandable and avoids pretending to do full EM ray tracing.
The target is placed inside the 3D radar scene using the target range plus the azimuth/elevation from the DOA controls.
The radar cross section or reflectivity controls how strong the returned echo is. For this simplified scene it is a scalar amplitude factor.
A chirp sweeps over bandwidth B during chirp time T. Its slope determines the beat frequency caused by range.
A target at range R returns later. After mixing transmit and receive signals, the delay appears as a beat frequency.
Samples inside one chirp are called fast-time samples. An FFT over those samples produces range bins.
From chirp to chirp, a moving target adds a phase progression. Its frequency is the Doppler frequency.
The chirp index is slow time. An FFT over chirps converts the Doppler phase progression into velocity bins.
A real radar scene therefore needs antenna index, fast-time sample index and chirp index.
At a selected range-Doppler bin, the remaining vector over antennas is used for the DOA angle estimate.
If the transmit beam is steered, the target echo is stronger when the target direction equals the steering direction. In this first model the TX side changes amplitude, not the receive DOA phase.
The range-Doppler map is formed by summing power over antennas. Peaks indicate possible targets.
For the chosen peak, take the antenna vector and run the same matched-filter DOA search as above.
This is the correct first step for the website: simple visible objects, real radar concepts, no overcomplicated mesh reflection. Later the point target can be replaced by several scatterers for extended objects.
| Symbol | Definition |
|---|---|
| $A$ | |
| $\vec{r}_n$ | |
| $\hat{d}$ | |
| $\hat{s}$ | |
| $k = \frac{2\pi}{\lambda}$ | |
| $\phi_n$ | |
| $\phi_n(\text{steer})$ | |
| $F_p(\hat u_{n,p})$ | |
| $F(\hat r)$ | |
| $A_n$ | |
| $N$ | |
| $N_P$ | |
| $\lambda$ | |
| $\vec{r}_{n,p}$ | |
| $G(\vec r,\vec r')$ | |
| $\vec r$ | |
| $\vec r'$ | |
| $\vec R$ | |
| $S,\ dS'$ | |
| $J(\vec r')$ | |
| $\rho(\vec r')$ | |
| $\hat u$ | |
| $c$ | |
| $f_c$ | |
| $B$ | |
| $T$ | |
| $S=B/T$ | |
| $R$ | |
| $v$ | |
| $\sigma_{\mathrm{RCS}}$ | |
| $f_b$ | |
| $f_D$ | |
| $N_q$ | |
| $N_c$ | |
| $q$ | |
| $p$ | |
| $k_r$ | |
| $l$ | |
| $Y[n,q,p]$ | |
| $Y_R[n,k_r,p]$ | |
| $Y_{RD}[n,k_r,l]$ | |
| $\vec y$ | |
| $\vec g(\hat d)$ | |
| $z(\hat d_{cand})$ | |
| $P(\hat d_{cand})$ | |
| $\hat d_{est}$ | |
| $w_{tx}$ | |
| $a_{tx}(\hat d)$ | |