Web Simulation 

 

 

 

 

Radio Channel Simulator - SISO & MIMO Tutorial 

This interactive tutorial demonstrates how radio channel characteristics affect signal transmission in wireless communication systems. The simulator visualizes the effects of channel matrix coefficients on transmitted signals, showing both Single-Input Single-Output (SISO) and Multiple-Input Multiple-Output (MIMO) configurations.

The simulation uses QPSK (Quadrature Phase Shift Keying) modulation, which transmits symbols at four points in the complex plane: 1+j, -1+j, -1-j, and 1-j. The channel is modeled as a complex matrix that rotates and scales the transmitted symbols. In SISO mode, a single channel coefficient (h) affects the signal. In MIMO mode, a 2×2 channel matrix (H) with four coefficients (h₁₁, h₁₂, h₂₁, h₂₂) models the interaction between two transmit and two receive antennas.

The simulator features interactive circular knobs that allow you to adjust the channel matrix coefficients in real-time. Each knob represents a complex number, where the distance from center represents magnitude (0 to 1) and the angle represents phase (0 to 2π). As you drag the knobs, you can observe how channel characteristics distort the received constellation, demonstrating key concepts in wireless communication such as fading, phase rotation, and interference. The simulator includes an SNR (Signal-to-Noise Ratio) control that allows you to adjust the noise level, with a default of 50 dB. In 2×2 MIMO mode, the simulator displays two separate transmit constellations (one for each antenna) and two separate receive constellations (one for each receive antenna), clearly showing how signals from multiple antennas interact through the channel matrix.

NOTE : The simulation uses complex number arithmetic to model the channel effects. All signals are represented in the complex plane (I/Q plane), where the real axis represents the in-phase component and the imaginary axis represents the quadrature component. The channel matrix multiplies the transmitted symbols, and Gaussian noise is added to simulate realistic channel conditions. The visualization uses an oscilloscope-style display with dark background and bright signal points.

Mathematical Model

The channel model is based on linear system theory:

1×1 SISO System:

y = h × x + n

where y is the received signal, h is the channel coefficient (complex number), x is the transmitted symbol (QPSK), and n is additive Gaussian noise. The noise level is controlled by the SNR (Signal-to-Noise Ratio) parameter, with default value of 50 dB.

2×2 MIMO System:

y₁ = h₁₁ × x₁ + h₁₂ × x₂ + n₁
y₂ = h₂₁ × x₁ + h₂₂ × x₂ + n₂

where y₁, y₂ are received signals at two antennas, x₁, x₂ are transmitted symbols from two antennas, H = [h₁₁ h₁₂; h₂₁ h₂₂] is the 2×2 channel matrix, and n₁, n₂ are additive Gaussian noise terms at each receive antenna. The noise level is controlled by the SNR parameter, with default value of 50 dB.

The channel coefficients are complex numbers that can be represented in polar form: h = |h| × e, where |h| is the magnitude (0 to 1) and φ is the phase (0 to 2π). The magnitude represents signal attenuation, and the phase represents rotation in the complex plane. In MIMO systems, the off-diagonal elements (h₁₂, h₂₁) represent interference between the two data streams.

 

Usage Example

Follow these steps to explore the Radio Channel Simulator:

  1. Initial State: When you first load the simulation, you'll see three panels: Transmit (Tx) constellation on the left, Channel Matrix controls in the center, and Receive (Rx) constellation on the right. The default mode is 1×1 SISO with a single channel coefficient.
  2. Observe QPSK Symbols: The Tx constellation shows four QPSK symbols (1+j, -1+j, -1-j, 1-j) with slight Gaussian noise creating a cloud of points around each symbol. These represent the transmitted signal points in the complex plane (I/Q plane).
  3. Interact with Channel Knob: In SISO mode, drag the circular knob in the center panel to adjust the channel coefficient (h). The knob shows a unit circle with a vector from center to a handle. The distance from center represents magnitude (0 to 1), and the angle represents phase (0 to 2π). As you drag, observe how the Rx constellation changes in real-time.
  4. Understand Channel Effects:
    • Magnitude: Dragging the handle closer to center (lower magnitude) reduces signal strength, making the Rx constellation shrink
    • Phase: Rotating the handle changes the phase, causing the Rx constellation to rotate in the complex plane
    • Combined Effect: The channel multiplies each Tx symbol, rotating and scaling it according to the complex channel coefficient
  5. Switch to MIMO Mode: Use the Mode dropdown to switch to 2×2 MIMO. This shows four smaller knobs (resized to fit) representing the channel matrix elements (h₁₁, h₁₂, h₂₁, h₂₂). The Tx panel now displays two separate constellation plots: Tx Antenna 1 (Cyan) and Tx Antenna 2 (Magenta), each showing its own QPSK symbols. The Rx panel displays two separate constellation plots: Rx Antenna 1 and Rx Antenna 2, showing how each receive antenna sees the mixed/interfered signals.
  6. Explore MIMO Effects: In MIMO mode, adjust the four channel matrix elements:
    • Diagonal elements (h₁₁, h₂₂): Direct paths from each transmit antenna to corresponding receive antenna
    • Off-diagonal elements (h₁₂, h₂₁): Cross-coupling (interference) between streams
    • Observe how changing off-diagonal elements creates interference between the two streams in the Rx constellation
  7. Read Complex Values: Each knob displays the current complex number value below it in the format "a+bi" or "a-bi". This shows both the real and imaginary components of the channel coefficient.
  8. Adjust SNR: Use the SNR slider (default: 50 dB) to control the noise level. Lower SNR values (0-20 dB) show more noise (wider clouds around symbols), while higher SNR values (40-60 dB) show less noise (tighter clouds). This demonstrates how signal quality degrades with increasing noise. The SNR control updates both Tx and Rx constellations in real-time.
  9. Compare Tx and Rx: Notice how the Rx constellation differs from the Tx constellation due to channel effects. The received symbols are rotated, scaled, and shifted compared to the transmitted symbols, demonstrating how the channel distorts the signal. In MIMO mode, compare the two Tx constellations with the two Rx constellations to see how the channel matrix mixes the signals.

Tip: The key to understanding this simulation is recognizing how complex channel coefficients affect signals in the I/Q plane. In SISO mode, a single coefficient rotates and scales all symbols uniformly. In MIMO mode, the 2×2 matrix creates more complex interactions, with off-diagonal elements causing interference between streams. Try setting h₁₂ and h₂₁ to zero in MIMO mode to see how the streams become independent. Then increase these values to observe interference effects. The magnitude of channel coefficients represents signal attenuation (fading), while the phase represents rotation due to propagation delay and multipath effects.

Parameters

Followings are short descriptions on each parameter
  • Mode Selection: Choose between 1×1 SISO (Single-Input Single-Output) and 2×2 MIMO (Multiple-Input Multiple-Output) configurations. SISO mode uses a single channel coefficient (h), while MIMO mode uses a 2×2 channel matrix with four coefficients (h₁₁, h₁₂, h₂₁, h₂₂).
  • Channel Coefficient (h): In SISO mode, this is a single complex number representing the channel between transmitter and receiver. The coefficient is represented in polar form: h = |h| × e, where |h| is magnitude (0 to 1) and φ is phase (0 to 2π). Magnitude represents signal attenuation, and phase represents rotation in the complex plane.
  • Channel Matrix (H): In MIMO mode, this is a 2×2 matrix of complex numbers:
    • h₁₁: Channel from transmit antenna 1 to receive antenna 1 (direct path)
    • h₁₂: Channel from transmit antenna 2 to receive antenna 1 (cross-coupling)
    • h₂₁: Channel from transmit antenna 1 to receive antenna 2 (cross-coupling)
    • h₂₂: Channel from transmit antenna 2 to receive antenna 2 (direct path)
    Diagonal elements represent direct paths, while off-diagonal elements represent interference between streams.
  • QPSK Modulation: The simulator uses Quadrature Phase Shift Keying with four symbols: 1+j, -1+j, -1-j, and 1-j. These symbols are represented as points in the complex plane (I/Q plane), where the real axis is the in-phase (I) component and the imaginary axis is the quadrature (Q) component.
  • SNR (Signal-to-Noise Ratio): Adjustable parameter (range: 0 to 60 dB, default: 50 dB) that controls the noise level in the simulation. SNR is defined as the ratio of signal power to noise power. Higher SNR values (40-60 dB) represent high-quality channels with low noise, resulting in tight clusters around the ideal symbol positions. Lower SNR values (0-20 dB) represent noisy channels with high noise, resulting in wide clouds of points. The noise is modeled as Additive White Gaussian Noise (AWGN), which is standard for wireless communication channels. The noise level is calculated from SNR using: noise_variance = signal_power / 10^(SNR_dB/10), where signal power is approximately 2 for QPSK symbols.
  • Noise Generation: The simulator uses Gaussian noise generation (Box-Muller transform) to create realistic noise distributions. Noise is added to both transmitted symbols (to show realistic Tx constellation with noise) and received symbols (to show channel noise effects). Each QPSK symbol is represented by 50 noisy points, creating a cloud effect that makes it easy to visualize signal quality and noise impact.

Controls and Visualizations

Followings are short descriptions on each control
  • Mode Dropdown: Selects between 1×1 SISO and 2×2 MIMO modes. Changing the mode updates the channel matrix controls (single knob for SISO, four smaller knobs for MIMO), shows/hides second constellation plots, and regenerates all constellation plots.
  • SNR Slider: Adjustable slider (range: 0 to 60 dB, default: 50 dB) that controls the Signal-to-Noise Ratio. The current SNR value is displayed next to the slider label. Moving the slider updates the noise level in real-time, regenerating both Tx and Rx constellations to show the effect of noise on signal quality. Lower SNR values produce more noise (wider point clouds), while higher SNR values produce less noise (tighter point clouds).
  • Circular Knobs: Interactive controls for adjusting channel coefficients. Each knob displays a unit circle with a vector from center to a draggable handle. The distance from center represents magnitude (0 to 1), and the angle represents phase (0 to 2π). Drag the handle to adjust the coefficient in real-time. The current complex value is displayed below each knob. In SISO mode, a single large knob (150×150 pixels) is displayed. In MIMO mode, four smaller knobs (100×100 pixels each) are arranged in a 2×2 grid to fit within the channel matrix panel.
  • Transmit (Tx) Constellation: The left panel shows the transmitted QPSK symbols with noise. In SISO mode, a single constellation plot displays all four QPSK symbols (1+j, -1+j, -1-j, 1-j) in cyan, with 50 noisy points per symbol creating a cloud effect. In MIMO mode, two separate constellation plots are displayed: Tx Antenna 1 (Cyan) showing stream 1 symbols, and Tx Antenna 2 (Magenta) showing stream 2 symbols. Each plot uses an oscilloscope-style display with dark background, grid lines, and bright signal points. QPSK reference points are shown as small gray circles.
  • Receive (Rx) Constellation: The right panel shows the received symbols after passing through the channel. The Rx constellation is calculated as y = H × x + n, where H is the channel matrix, x is the transmitted symbol, and n is additive Gaussian noise. The received symbols show how the channel rotates, scales, and distorts the transmitted symbols. In SISO mode, a single constellation plot shows the received symbols in yellow. In MIMO mode, two separate constellation plots are displayed: Rx Antenna 1 showing y₁ = h₁₁×x₁ + h₁₂×x₂ + n₁, and Rx Antenna 2 showing y₂ = h₂₁×x₁ + h₂₂×x₂ + n₂. Both plots show the mixed/interfered signals in yellow, demonstrating how each receive antenna sees a combination of both transmitted streams.
  • Channel Model Display: The info panel at the bottom shows the current channel model equation with noise terms included. For SISO: "y = h × x + n", and for MIMO: "y₁ = h₁₁×x₁ + h₁₂×x₂ + n₁, y₂ = h₂₁×x₁ + h₂₂×x₂ + n₂". The equations update automatically when switching between SISO and MIMO modes.

Key Concepts

  • Complex Number Representation: All signals and channel coefficients are complex numbers, represented in the I/Q plane. The real part (I) is the in-phase component, and the imaginary part (Q) is the quadrature component. Complex multiplication rotates and scales vectors in the complex plane.
  • Channel Fading: The magnitude of channel coefficients represents signal attenuation (fading). When magnitude is less than 1, the signal is attenuated. When magnitude approaches 0, the signal is severely faded.
  • Phase Rotation: The phase of channel coefficients represents rotation in the complex plane, caused by propagation delay and multipath effects. Phase rotation shifts all symbols by the same angle.
  • MIMO Interference: In MIMO systems, off-diagonal matrix elements (h₁₂, h₂₁) represent interference between data streams. When these values are non-zero, signals from one transmit antenna interfere with reception at the other receive antenna, creating cross-talk.
  • Real-Time Updates: The simulation updates in real-time as you drag the knobs or adjust the SNR slider. The Rx constellation immediately reflects changes to the channel matrix and noise level, allowing you to observe how different channel conditions and SNR values affect signal reception. In MIMO mode, both Rx constellation plots update simultaneously to show how channel changes affect both receive antennas.