This repository contains the MATLAB simulations and result figures for an MSc project at Imperial College London, Department of Electrical and Electronic Engineering, Communication and Signal Processing MSc 2023-2024.
The project studies Rate-Splitting Multiple Access (RSMA) for downlink multi-user MIMO systems. It compares conventional WMMSE-style optimization with a lower-complexity design based on block diagonalization (BD), adaptive common-stream selection, and closed-form / Newton-Raphson power allocation.
- Compare RSMA and SDMA sum-rate performance across SNR values.
- Reduce the computational burden of RSMA precoder design.
- Study how common-stream number
Qcaffects sum rate, approximation error, and scalability. - Benchmark the proposed low-complexity method against exhaustive search and WMMSE baselines.
- Visualize common/private precoder power allocation across channel realizations.
.
|-- README.md
|-- docs/
| `-- superpowers/plans/
|-- experiments/
| |-- figure-4.1-snr-initialisation/
| |-- figure-4.2-ao-convergence/
| |-- figures-4.3-4.4-4.6-low-complexity/
| |-- figure-4.7-adaptive-common-streams/
| |-- figures-4.8-4.9-power-distribution/
| `-- figure-4.10-large-scale-comparison/
`-- figures/
| Folder | Purpose | Main entry points |
|---|---|---|
experiments/figure-4.1-snr-initialisation |
RSMA/SDMA sum-rate comparison with MRT, BD, and SVD-based initialization. | main.m, figure4_1_main.m |
experiments/figure-4.2-ao-convergence |
Alternating-optimization convergence comparison for MRT and BD initialization. | main2.m, main_plot2.m |
experiments/figures-4.3-4.4-4.6-low-complexity |
Proposed low-complexity RSMA method, exhaustive-search comparison, relative error, and channel-index behavior. | main3.m, user2_2Nk_4Nt_main.m |
experiments/figure-4.7-adaptive-common-streams |
Adaptive common-stream selection for larger user/antenna settings. | main3.m, plot_main.m |
experiments/figures-4.8-4.9-power-distribution |
Common and private precoder power distribution analysis. | data_main.m |
experiments/figure-4.10-large-scale-comparison |
Large-scale comparison between adaptive RSMA, SDMA BD, and WMMSE baselines. | main_plot3_MRT.m |
figures |
Rendered result images used by this README and the project report. | PNG outputs |
RSMA splits each user's message into common and private parts. The common streams are decoded by multiple users, while private streams are decoded individually. This can improve robustness and sum rate compared with SDMA when users experience interference.
The low-complexity design in this project follows this flow:
- Generate Rayleigh fading MIMO channel realizations.
- Construct SDMA / RSMA private precoders using block diagonalization.
- Allocate common-stream power using Newton-Raphson optimization.
- Evaluate candidate common-stream counts
Qc. - Select the best
Qcadaptively or compare against exhaustive search. - Compare RSMA against SDMA and WMMSE-based optimization baselines.
Figure 4.1 compares RSMA and SDMA under different initialization strategies. The result highlights the benefit of RSMA and the importance of stronger initialization for high-SNR performance.
Figure 4.2 compares alternating-optimization convergence under MRT and BD initialization across different SNR levels.
Figures 4.3 and 4.4 compare the proposed low-complexity design with exhaustive search and report the relative error for different numbers of common streams.
The project studies how the number of common streams affects performance and uses adaptive selection to retain most of the exhaustive-search gain with lower complexity.
Figures 4.7-4.9 visualize how power is distributed across common and private streams under different SNR values and channel realizations.
Figure 4.10 compares adaptive RSMA, SDMA BD, and WMMSE baselines in a larger antenna setting.
The scripts are written for MATLAB. Some WMMSE optimization routines use CVX-style convex optimization syntax, so install CVX before running the optimization-heavy experiments.
Recommended workflow:
-
Open MATLAB.
-
Change directory into one experiment folder, for example:
cd experiments/figure-4.1-snr-initialisation
-
Run the main script for that experiment:
main -
For faster plotting from saved data, use the plot-only scripts where available:
figure4_1_main main_plot2 main_plot3_MRT
The .mat files store precomputed simulation results. Re-running full Monte Carlo simulations can take significant time for the larger experiments.
BD_design.m: block diagonalization precoder construction.adaptive_common_stream.m: evaluates RSMA common-stream allocation.netwon_raphson_method*.m: Newton-Raphson power-splitting routines.RSMA_BD_rate.mandRSMA_BD_MRC_rate.m: RSMA rate evaluation.SDMA_BD_ZF.m: SDMA baseline with BD/ZF-style design.RSMA_exhaust_search*.m: exhaustive-search references.RSMA_MIMO_*andSDMA_MIMO_*: WMMSE-style optimization utilities used in the comparison experiments.
This work builds on RSMA and WMMSE precoder optimization literature, especially downlink multi-user MIMO RSMA designs. Several MATLAB function headers refer to:
Rate-Splitting Multiple Access for Downlink Multiuser MIMO: Precoder Optimization and PHY-Layer Design, by Anup Mishra, Yijie Mao, Onur Dizdar, and Bruno Clerckx.
Claudio Dong
Imperial College London
Communication and Signal Processing MSc, 2023-2024










