EIE4003/MCE6004 Wireless Communications — Assignment #4
Simulation of QPSK and 16QAM modulation over a SIMO Rayleigh fading channel using Maximal Ratio Combining (MRC).
SIMO_MRC/
├── main_project.m ← Entry point — run this file only
├── README.md
├── .gitignore
├── results/ ← Saved .fig files (auto-created on first run)
└── +WirelessSim/ ← MATLAB package: all utility functions
├── generateQPSKSymbols.m
├── generate16QAMSymbols.m
├── applyAWGN.m
├── applyRayleighFading.m
├── simoMRC.m
├── qpskDemodulate.m
├── qam16Demodulate.m
├── calculateBER.m
└── plotConstellations.m
+WirelessSim/is a MATLAB package (the+prefix is a MATLAB convention). All utility functions are namespaced underWirelessSim.*, preventing conflicts with MATLAB built-ins and making call sites explicitly traceable to this module.
- Open MATLAB
cdinto theSIMO_MRC/folder- Run
main_project.m
Transmitter ──► SIMO Rayleigh Channel ──► MRC Combiner ──► Demodulator
(1 TX) (Nr RX antennas) (equalize) (QPSK/16QAM)
Each receive antenna observes:
where
MRC combining:
| Parameter | Value |
|---|---|
| SNR range | −5 dB to 25 dB (25 points) |
| Bits per SNR point | 200,000 |
| Antenna configs | 1×1, 1×2, 1×4 |
| Modulations | QPSK (2 bits/symbol), 16QAM (4 bits/symbol) |
| Channel | i.i.d. Rayleigh fading |
Running main_project.m will automatically generate a results/ folder containing:
| File | Description |
|---|---|
BER_QPSK.fig |
QPSK BER curves for 1×1, 1×2, 1×4 MRC |
BER_16QAM.fig |
16QAM BER curves for 1×1, 1×2, 1×4 MRC |
BER_Comparison.fig |
QPSK vs 16QAM comparison (1×4 MRC) |
Constellation_QPSK.fig |
QPSK constellation diagrams at SNR = 5/20 dB |
Constellation_16QAM.fig |
16QAM constellation diagrams at SNR = 5/20 dB |
- MRC diversity gain: each doubling of receive antennas significantly reduces BER
- QPSK outperforms 16QAM at the same SNR (lower spectral efficiency, higher robustness)
- With 1×4 MRC, BER performance approaches the AWGN theoretical bound at high SNR