Interactive simulator · open source · validated against theory

Wireless Channel Lab

This lab follows one Wi-Fi link, from an access point on an office ceiling to a laptop at a desk, and asks seven questions about it. The first module traces the radio paths through the building. Each later module picks up the channel those paths produce, so a change to the floor plan carries through to fading, error rates, beams, and capacity.

  • <10−9 dB error vs knife-edge theory
  • <10−9 dB vs analytic image sums
  • 1.6% from Telatar MIMO capacity
  • 34× fewer image nodes via beam tracing

Question 1 · Where does the power go?

Ray-traced coverage

The default scene is an office floor with a 20 dBm Wi-Fi access point (Tx) on the corridor ceiling, transmitting an 80 MHz channel at 5.8 GHz. The laptop (Rx) sits at a desk behind a metal whiteboard, so it has no line of sight. Drag either one, draw or erase walls, and the map, the rays, and every later module update.

\(P_r = P_t\,\Big|\sum_i \sqrt{G_t G_r}\;\frac{\lambda}{4\pi L_i}\,\Gamma_i\,e^{-jkL_i}\Big|^2\)
−90−20 dBm
Drag Tx or Rx, or click to move the receiver.computing…

Scene

Preset
Carrier
Tx antenna
Tx power20 dBm
Tx height2.7 m
Rx height1.2 m

Propagation mechanisms

Max reflections2
Max wall penetrations4
Map resolution

Receiver analysis Rx at —

Power-delay profileeach stem is one ray
Angle of arrival0 dB ring = strongest ray
Ray table, strongest firstclick a row to highlight the ray
#TypeInteractionsLength (m)Delay (ns)Power (dBm)Phase (°)
Scene as JSON (copy it to save your layout, paste one in to load it)

How the engine works

The scene is a plan view of vertical walls standing on a flat ground. For that geometry the 3D problem separates: rays are found in 2D with the image method [24], [25], and the antenna heights only change each ray's unfolded length and add one ground-reflected twin. The transmitter's image tree is pruned by beam tracing [26], [27], which keeps only the images whose beam can actually reach a wall. This cuts the third-order tree of the office scene from 45,080 to 1,340 nodes with no change in the result.

Each wall is a single dielectric slab. Its permittivity and conductivity come from ITU-R P.2040 [21], and its reflection and transmission coefficients include the multiple internal bounces inside the slab:

\[R=\frac{r\,(1-e^{-j2q})}{1-r^2e^{-j2q}},\qquad T=\frac{(1-r^2)\,e^{-j(q-q_0)}}{1-r^2e^{-j2q}},\qquad q=\frac{2\pi d}{\lambda}\sqrt{\eta-\sin^2\theta}\]

Wall ends and convex corners diffract. The engine treats each one as a knife edge [22]. Behind the edge it adds a diffracted ray scaled by \(F(\nu)\). In front of the edge, where the obstruction is close to the direct path, it multiplies the direct ray by \(F(\nu)\), so the field stays continuous across the shadow boundary.

\[F(\nu)=\frac{1+j}{2}\int_\nu^{\infty}e^{-j\pi t^2/2}\,dt,\qquad \nu = 2\sqrt{\Delta/\lambda}\]

The map shows either the coherent sum, with small-scale fading, or the incoherent sum \(\sum_i|a_i|^2\), which approximates the local mean that tools like Wireless InSite [29] and Sionna RT [28] also report. RMS delay spread is \(\sigma_\tau=\sqrt{\overline{\tau^2}-\bar\tau^2}\) over the power-weighted rays [1].

Question 2 · Why does the signal flicker when the laptop moves?

Small-scale fading

The ray tracer gave the laptop one received power. That number is a local average. The rays arriving at the desk add with different phases, and moving the laptop a few centimeters changes those phases, so the power swings by tens of decibels. This module takes your link's carrier and line-of-sight strength and shows what that looks like in time.

\(f_D = \dfrac{v f_c}{c},\quad R(\tau)=J_0(2\pi f_D\tau)\)

Received envelope power about the mean, with its histogram

|h(t)|² below −10 dB distribution of the window

Controls

Receiver speed5 km/h
Carrier frequency5.8 GHz
Rician K-factor0 (Rayleigh)
K is the line-of-sight power over the scattered power.
Doppler fD
—
Coherence time
—
Fades / s below −10 dB
—
Avg. fade duration
—

Model

Clarke's model [5] treats the received field as many plane waves arriving from uniformly random directions. The lab builds it as a sum of 32 sinusoids with random arrival angles and phases [7], which gives a complex Gaussian process whose envelope is Rayleigh distributed and whose autocorrelation approaches \(J_0(2\pi f_D\tau)\) [6]. A line-of-sight term turns this into Rician fading [8].

\[h(t)=\sqrt{\tfrac{K}{K+1}}\,e^{j(2\pi f_D\cos\alpha_0 t+\phi_0)}+\sqrt{\tfrac{1}{K+1}}\,\frac{1}{\sqrt N}\sum_{n=1}^{N}e^{j(2\pi f_D\cos\alpha_n t+\phi_n)}\]

The stat tiles compare the generator against theory over a 10,000-Doppler-period run. For Rayleigh fading the level-crossing rate and average fade duration at normalized level \(\rho\) are [1]:

\[N_R=\sqrt{2\pi}\,f_D\,\rho\,e^{-\rho^2},\qquad \bar t=\frac{e^{\rho^2}-1}{\rho f_D\sqrt{2\pi}}\]

The coherence time uses the common rule \(T_c\approx 0.423/f_D\) [1].

Question 3 · What do the echoes do to a wide channel?

Multipath and OFDM

The rays from question 1 arrive tens of nanoseconds apart. Across an 80 MHz channel that delay spread makes some frequencies add up and others cancel. This module plots the frequency response of your ray-traced channel itself, then shows how OFDM splits the band into narrow subcarriers that each see a nearly flat channel.

\(B_c \approx \dfrac{1}{5\,\sigma_\tau}\)

Channel frequency response

|H(f)|² relative to its meanusable subcarriermore than 10 dB down

Controls

Channel
RMS delay spread στ200 ns
Resolvable paths8
Subcarriers
Coherence bandwidth
—
Faded subcarriers
—
Max excess delay
—
Cyclic prefix needed
—

Power-delay profile average tap powers (bars) and this draw (dots)

Model

In your link mode the taps are the rays from question 1, each with its own delay and complex amplitude, so the response is deterministic for a fixed laptop position. In statistical mode the taps follow an exponential power-delay profile, scaled so that its RMS delay spread equals the slider value exactly. Each tap is an independent complex Gaussian (a wide-sense stationary, uncorrelated scattering channel [18]), and the frequency response is \(H(f)=\sum_\ell h_\ell e^{-j2\pi f\tau_\ell}\).

The coherence bandwidth uses the 50%-correlation rule of thumb [1]. For this truncated exponential profile the exact 50% bandwidth is \(0.20\)–\(0.22/\sigma_\tau\), very close to the rule.

OFDM [19], [20] uses an inverse FFT to place data on orthogonal subcarriers. A cyclic prefix longer than the maximum excess delay keeps the echoes from leaking into the next symbol, so each subcarrier only needs a one-tap equalizer. Subcarriers that land in a deep fade are protected by coding and bit loading.

Question 4 · How many bits can each symbol carry?

Modulation and noise

Wi-Fi puts bits on the phase and amplitude of each subcarrier. Packing more bits into a symbol pushes the constellation points closer together, so the link needs more SNR before noise stops pushing them across a decision boundary. The SNR starts at your link's average value.

\(P_s = 1-\Big(1-2\big(1-\tfrac{1}{\sqrt M}\big)Q\big(\sqrt{\tfrac{3E_s/N_0}{M-1}}\big)\Big)^2\)

Received constellation QPSK

decoded correctlysymbol errorideal point

Controls

Scheme
Es/N015 dB
Bits per symbol
—
Min. distance / σ
—
SER, measured
—
SER, theory
—
exact, ML detection

Model

Symbols are drawn uniformly from a unit-energy constellation, complex Gaussian noise of variance \(N_0\) is added, and the receiver picks the nearest point, which is the maximum-likelihood decision for equally likely symbols in AWGN [4]. The measured SER accumulates across frames until a parameter changes.

For square M-QAM the symbol error rate in the key equation is exact [4]; QPSK is the \(M=4\) case and BPSK is \(Q(\sqrt{2E_s/N_0})\). With Gray labelling, one symbol error usually flips a single bit, so \(P_b\approx P_s/\log_2 M\) at useful SNRs.

Question 5 · How do we survive the deep fades?

Diversity against fading

An average SNR that looks comfortable still fails when the signal drops into one of the fades from question 2. If the laptop listens on several antennas a few centimeters apart, all of them rarely fade at the same time. On a log-log plot the slope of the error curve is the diversity order.

\(P_b \propto \overline{\mathrm{SNR}}^{\,-L}\)

Bit error rate BPSK, i.i.d. Rayleigh branches

Controls

Read-out SNR12 dB
Curves

Reading it. Each extra branch tilts the curve steeper, so the same SNR buys orders of magnitude fewer errors. Alamouti coding reaches order 2 with two transmit antennas and one receive antenna, but it splits the transmit power, so it sits 3 dB to the right of two-branch MRC.

Model

With \(L\) independent Rayleigh branches combined by maximal-ratio combining [9], the BPSK bit error rate at average branch SNR \(\bar\gamma\) has the closed form [4], [11]:

\[P_b=\Big(\tfrac{1-\mu}{2}\Big)^{L}\sum_{k=0}^{L-1}\binom{L-1+k}{k}\Big(\tfrac{1+\mu}{2}\Big)^{k},\quad \mu=\sqrt{\tfrac{\bar\gamma}{1+\bar\gamma}}\]

The Alamouti scheme [10] sends two symbols over two antennas in two slots. Its decision statistic matches two-branch MRC at half the per-antenna SNR, so its curve is \(P_b^{\mathrm{MRC}}(\bar\gamma/2,2)\). The paper checks every curve here against Monte Carlo simulation; all points fall within 2.6 binomial standard deviations.

Question 6 · Can the access point aim its energy?

Phased-array beamforming

An access point with an antenna array can apply a progressive phase shift so the waves add up in one direction. The best direction is not always straight at the laptop. Here the beam is steered toward the strongest ray found in question 1, measured from the direct bearing to the laptop.

\(AF(\theta)=\sum_{n=0}^{N-1} w_n\, e^{\,jn\,2\pi \frac{d}{\lambda}(\sin\theta-\sin\theta_0)}\)

Array factor 8 elements

Controls

Elements N8
Steering angle θ₀0°
Element spacing d0.50 λ
Amplitude taper
Half-power beamwidth
—
Array gain
—
Peak sidelobe
—
Aperture
—

Inside the array: time delays or phase shifts

Steering has to be built into the feed network. The exact way is to delay each element's signal by the extra distance the wave travels to reach it, \(\tau_n = n\,d\sin\theta_0/c\), using switched delay lines, a Rotman lens, or optical delay. Most arrays use phase shifters instead, which apply \(2\pi f_0\tau_n\) wrapped to 360°. That is exact at the center frequency only. Watch the wavefronts below: with a continuous tone the two look identical, but a short wideband pulse stays on target only with true time delays.

Wavefronts leaving the array

positive fieldnegative fieldelementsdashed: steering direction θ₀

Feed network

Steering hardware
Phase-shifter resolution
Signal
Signal bandwidth30%
Fraction of the carrier frequency. Wi-Fi at 5.8 GHz uses about 1.4%; radar and 5G mmWave can use 10% or more.
Longest delay
—
Beam at band edges
—
Gain toward θ₀ at edges
—
relative to an ideal array
Quantization loss
—

What each element is given

Pattern across the band

Model

A uniform linear array with weights \(w_n\) and progressive phase \(\beta=2\pi d\sin\theta_0/\lambda\) has the array factor in the key equation [12], [13]. With uniform weights at broadside the half-power beamwidth is about \(0.886\,\lambda/(Nd)\) radians and the first sidelobe sits near \(-13.3\) dB. Grating lobes stay out of visible space only if

\[\frac{d}{\lambda}<\frac{1}{1+|\sin\theta_0|}.\]

Delay versus phase. A true time delay \(\tau_n\) multiplies element \(n\) by \(e^{-j2\pi f\tau_n}\), which scales with frequency, so the beam points at \(\theta_0\) across the whole band [33], [35]. A phase shifter applies a fixed \(\phi_n = 2\pi f_0\tau_n\), so at frequency \(f\) the beam moves to

\[\sin\theta(f)=\frac{f_0}{f}\,\sin\theta_0,\]

an effect called beam squint. A \(B\)-bit phase shifter also rounds each phase to a multiple of \(2\pi/2^B\), which costs about \(-20\log_{10}\!\big[\mathrm{sinc}(\pi/2^B)\big]\) dB of gain [36]. The paper checks both against the engine. Rotman's lens [34] is a classic way to build many true-time-delay beams at once.

Hamming and Blackman windows [14] lower the sidelobes at the cost of a wider beam and a small taper loss \(N\sum w_n^2/(\sum w_n)^2\). The Dolph-Chebyshev taper [15] gives the narrowest beam for a chosen sidelobe level, here \(-30\) dB, with all sidelobes equal.

Question 7 · Can the multipath carry extra data?

MIMO spatial multiplexing

The same multipath that causes fading also makes the channel between several transmit and several receive antennas a well-conditioned matrix. Its singular values are parallel streams, so capacity grows with the number of antennas. The SNR and the line-of-sight strength start at your link's values.

\(C=\log_2\det\!\Big(\mathbf I+\frac{\rho}{M}\mathbf H\mathbf H^{H}\Big)\)

Streams

Controls

Tx antennas M
Rx antennas N
SNR ρ15 dB
Scatteringrich
Less scattering means a stronger line-of-sight term, which makes H close to rank one.
SISO, this draw
—
MIMO, this draw
—
Gain over SISO
—
Useful streams
—

Channel matrix H 2×2

Cell shade is |hij|, the tick shows its phase. One fading draw from Tx j to Rx i.

Singular values SVD of H

Ergodic capacity mean over 300 channel draws

MIMO 2×2SISOmin(M,N)·log₂(ρ) slope guide

Capacity landscape 3D · drag to orbit, scroll to zoom

Ergodic capacity of the current 2×2 link over every combination of SNR and line-of-sight strength (Rician K). The colored surface is MIMO; the translucent gray sheet below it is a single-antenna link over the same channels. The white marker is your link.

Two things stand out. Along the SNR axis, MIMO climbs about min(M, N) times faster than one antenna. Along the K axis, the MIMO surface drops toward the SISO sheet as the line-of-sight path takes over and the channel matrix approaches rank one, while the single antenna barely changes.

Model

The channel is \(\mathbf H=\sqrt{\tfrac{K}{K+1}}\,\mathbf a_r\mathbf a_t^H+\sqrt{\tfrac{1}{K+1}}\,\mathbf H_w\), where \(\mathbf H_w\) has i.i.d. \(\mathcal{CN}(0,1)\) entries and \(\mathbf a\) are half-wavelength array steering vectors. With no channel knowledge at the transmitter, power is split equally and capacity is the log-det formula of Telatar [16] and Foschini and Gans [17], computed here from the eigenvalues of \(\mathbf H\mathbf H^H\):

\[C=\sum_{k=1}^{\min(M,N)}\log_2\!\Big(1+\frac{\rho}{M}\sigma_k^2\Big).\]

In the paper the Monte Carlo ergodic capacity matches Telatar's closed-form integral within 1.6% for 1×1 through 4×4. Turning scattering down shows the other side: at 20 dB a 4×4 link drops from 22.1 to 10.7 b/s/Hz as the K-factor goes from 0 to 100, because the line-of-sight term has rank one [3].

References

  1. T. S. Rappaport, Wireless Communications: Principles and Practice, 2nd ed. Prentice Hall, 2002.
  2. A. Goldsmith, Wireless Communications. Cambridge University Press, 2005.
  3. D. Tse and P. Viswanath, Fundamentals of Wireless Communication. Cambridge University Press, 2005.
  4. J. G. Proakis and M. Salehi, Digital Communications, 5th ed. McGraw-Hill, 2008.
  5. R. H. Clarke, "A statistical theory of mobile-radio reception," Bell Syst. Tech. J., vol. 47, no. 6, pp. 957–1000, 1968.
  6. W. C. Jakes, Ed., Microwave Mobile Communications. Wiley, 1974.
  7. M. Pätzold, Mobile Fading Channels. Wiley, 2002.
  8. S. O. Rice, "Mathematical analysis of random noise," Bell Syst. Tech. J., vol. 23, no. 3, pp. 282–332, 1944.
  9. D. G. Brennan, "Linear diversity combining techniques," Proc. IRE, vol. 47, no. 6, pp. 1075–1102, 1959.
  10. S. M. Alamouti, "A simple transmit diversity technique for wireless communications," IEEE J. Sel. Areas Commun., vol. 16, no. 8, pp. 1451–1458, 1998.
  11. M. K. Simon and M.-S. Alouini, Digital Communication over Fading Channels, 2nd ed. Wiley, 2005.
  12. C. A. Balanis, Antenna Theory: Analysis and Design, 4th ed. Wiley, 2016.
  13. H. L. Van Trees, Optimum Array Processing. Wiley, 2002.
  14. F. J. Harris, "On the use of windows for harmonic analysis with the discrete Fourier transform," Proc. IEEE, vol. 66, no. 1, pp. 51–83, 1978.
  15. C. L. Dolph, "A current distribution for broadside arrays which optimizes the relationship between beam width and side-lobe level," Proc. IRE, vol. 34, no. 6, pp. 335–348, 1946.
  16. E. Telatar, "Capacity of multi-antenna Gaussian channels," Eur. Trans. Telecommun., vol. 10, no. 6, pp. 585–595, 1999.
  17. G. J. Foschini and M. J. Gans, "On limits of wireless communications in a fading environment when using multiple antennas," Wireless Pers. Commun., vol. 6, no. 3, pp. 311–335, 1998.
  18. P. A. Bello, "Characterization of randomly time-variant linear channels," IEEE Trans. Commun. Syst., vol. 11, no. 4, pp. 360–393, 1963.
  19. S. B. Weinstein and P. M. Ebert, "Data transmission by frequency-division multiplexing using the discrete Fourier transform," IEEE Trans. Commun. Technol., vol. 19, no. 5, pp. 628–634, 1971.
  20. L. J. Cimini, "Analysis and simulation of a digital mobile channel using orthogonal frequency division multiplexing," IEEE Trans. Commun., vol. 33, no. 7, pp. 665–675, 1985.
  21. ITU-R, "Effects of building materials and structures on radiowave propagation above about 100 MHz," Recommendation P.2040-3, Aug. 2023.
  22. ITU-R, "Propagation by diffraction," Recommendation P.526-15, Oct. 2019.
  23. ITU-R, "Propagation data and prediction methods for the planning of indoor radiocommunication systems," Recommendation P.1238-7, 2012.
  24. J. W. McKown and R. L. Hamilton, "Ray tracing as a design tool for radio networks," IEEE Network, vol. 5, no. 6, pp. 27–30, 1991.
  25. Z. Yun and M. F. Iskander, "Ray tracing for radio propagation modeling: Principles and applications," IEEE Access, vol. 3, pp. 1089–1100, 2015.
  26. P. S. Heckbert and P. Hanrahan, "Beam tracing polygonal objects," Comput. Graph. (Proc. SIGGRAPH), vol. 18, no. 3, pp. 119–127, 1984.
  27. T. Funkhouser et al., "A beam tracing approach to acoustic modeling for interactive virtual environments," in Proc. SIGGRAPH, 1998, pp. 21–32.
  28. J. Hoydis et al., "Sionna RT: Differentiable ray tracing for radio propagation modeling," in Proc. IEEE Globecom Workshops, 2023. arXiv:2303.11103.
  29. Remcom, "Wireless InSite: 3D wireless prediction software." remcom.com.
  30. 3GPP, "Study on channel model for frequencies from 0.5 to 100 GHz," TR 38.901, v17.0.0, 2022.
  31. H. T. Friis, "A note on a simple transmission formula," Proc. IRE, vol. 34, no. 5, pp. 254–256, 1946.
  32. R. G. Kouyoumjian and P. H. Pathak, "A uniform geometrical theory of diffraction for an edge in a perfectly conducting surface," Proc. IEEE, vol. 62, no. 11, pp. 1448–1461, 1974.
  33. R. J. Mailloux, Phased Array Antenna Handbook, 3rd ed. Artech House, 2017.
  34. W. Rotman and R. F. Turner, "Wide-angle microwave lens for line source applications," IEEE Trans. Antennas Propag., vol. 11, no. 6, pp. 623–632, 1963.
  35. R. C. Hansen, Phased Array Antennas, 2nd ed. Wiley, 2009.
  36. T. C. Cheston and J. Frank, "Phased array radar antennas," in Radar Handbook, 2nd ed., M. I. Skolnik, Ed. McGraw-Hill, 1990, ch. 7.

Cite this work

The accompanying paper describes the engine, lists every modeling assumption, and reports the validation results quoted on this page. The validation suite reruns in about a minute with npm run validate.