A comprehensive MATLAB simulation framework for analyzing Space-Division Multiple Access (SDMA) performance in Multi-User MIMO systems, with focus on Wi-Fi 6 (802.11ax) and 5G specifications.
This project simulates and analyzes the performance of multi-user MIMO systems using space-division multiple access techniques. The simulation framework examines how system capacity varies with the number of simultaneous users, different channel conditions (Rician fading with varying K-factors), and inter-cell interference scenarios.
- Multi-User MIMO Simulation: Models downlink transmission to multiple users simultaneously using spatial multiplexing
- SDMA Capacity Analysis: Evaluates spectral efficiency and throughput as a function of active users
- Rician Fading Channels: Implements realistic channel models with configurable K-factor (line-of-sight to multipath ratio)
- Inter-Cell Interference: Simulates co-channel interference from neighboring cells
- 802.11ax Validation: Parameters aligned with Wi-Fi 6 specifications for practical relevance
SDMA exploits the spatial dimension to serve multiple users simultaneously on the same frequency and time resources. By using multiple antennas at the base station (access point), the system creates directional beams toward each user, allowing parallel data streams without interference.
The Rician channel model captures environments where both line-of-sight (LOS) and multipath components exist. The K-factor represents the ratio of LOS power to scattered power:
- K = 0 dB: Equal LOS and scattered components
- K >> 0 dB: Strong LOS (typical indoors near AP)
- K → -∞ dB: Pure Rayleigh fading (no LOS)
The theoretical capacity in a multi-user MIMO system depends on channel conditions, number of antennas, and interference. The simulation computes both theoretical Shannon capacity and practical throughput accounting for overhead and modulation constraints.
- MATLAB R2020b or later
- Communications Toolbox
- Phased Array System Toolbox
- Signal Processing Toolbox (recommended)
- Minimum 8 GB RAM
- Multi-core processor recommended for parallel simulations
- Clone this repository:
git clone https://github.com/NipunAgarwal16/mimo-sdma-analysis.git
cd mimo-sdma-analysis-
Open MATLAB and navigate to the project directory
-
Verify toolbox availability:
run('check_dependencies.m')Run the main simulation with default parameters:
run_mimo_sdma_simulationThis will generate performance plots showing capacity vs. number of users for different channel conditions.
Configure parameters in config_simulation.m or pass them directly:
% Define simulation parameters
params = struct();
params.numBS_Antennas = 8; % Base station antennas
params.numUsers = [1, 2, 4, 8]; % User configurations to test
params.rician_K = [0, 3, 10]; % K-factors in dB
params.SNR_dB = 20; % Signal-to-noise ratio
params.interferingCells = 2; % Number of interfering cells
% Run simulation
results = run_mimo_sdma_simulation(params);The simulation outputs a structure containing:
- capacity_bps_hz: Spectral efficiency (bits/s/Hz)
- throughput_mbps: Practical throughput (Mbps)
- sinr_per_user: Signal-to-interference-plus-noise ratio
- beamforming_weights: Computed spatial filters
mimo-sdma-analysis/
├── README.md
├── run_mimo_sdma_simulation.m # Main simulation script
├── config_simulation.m # Configuration parameters
├── check_dependencies.m # Toolbox verification
├── src/
│ ├── generate_rician_channel.m # Channel model generation
│ ├── compute_beamforming.m # Zero-forcing beamforming
│ ├── calculate_capacity.m # Capacity computation
│ └── add_interference.m # Inter-cell interference model
├── utils/
│ ├── plot_results.m # Visualization functions
│ └── validate_802_11ax.m # Wi-Fi 6 compliance checks
├── results/ # Output plots and data
└── docs/ # Additional documentation
| Parameter | Value | Description |
|---|---|---|
| Number of BS Antennas | 8 | Transmit antennas at base station |
| Number of Users | 1-8 | Simultaneously served users |
| Carrier Frequency | 5 GHz | Wi-Fi 6 band |
| Bandwidth | 80 MHz | Channel bandwidth |
| Rician K-factor | 0, 3, 10 dB | Channel conditions |
| SNR Range | 0-30 dB | Signal quality |
| Interfering Cells | 0-3 | Co-channel interference |
The simulation validates against 802.11ax theoretical limits:
- Maximum capacity with 8×8 MU-MIMO configuration
- Spectral efficiency under different MCS (Modulation and Coding Scheme) levels
- Multi-user interference mitigation effectiveness
Example results show that system capacity increases nearly linearly with users when sufficient antennas are available, but saturates when interference becomes dominant.
The system model considers a downlink MU-MIMO system where the received signal at user k is:
y_k = H_k W x + n_k + i_k
Where:
- H_k: Channel matrix for user k (Rician fading)
- W: Beamforming weight matrix
- x: Transmitted symbol vector
- n_k: Additive white Gaussian noise
- i_k: Inter-cell interference
The achievable sum capacity is computed using the water-filling algorithm over spatial channels.
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
- Follow MATLAB style guidelines
- Add comprehensive comments to new functions
- Include test cases for new features
- Update documentation for parameter changes
- IEEE 802.11ax-2021 Standard for Wireless LAN
- Goldsmith, A. "Wireless Communications" (Cambridge University Press)
- Tse, D., Viswanath, P. "Fundamentals of Wireless Communication"
- 3GPP TS 38.211 - NR Physical channels and modulation
MIT License - See LICENSE file for details
Academic project for wireless communications research (2024-2025)
Built using MATLAB's Phased Array System Toolbox and Communications Toolbox. Inspired by research in massive MIMO and 5G/Wi-Fi 6 technologies.
For questions or collaboration opportunities, please open an issue on GitHub.