The goal of this project is to cover the basics of MIMO communication without delving into the details of analog or RF impairment. The design should be modular enough for anyone interested in designing and trying out different combinations of parameters. I think that the application of this project is very much limited to an introduction to MIMO communication. But it should be possible to run on any Linux machine with Python3.
Here is the Github repository of this project
https://github.com/r4tn3sh/MIMO_detection
Constellation plot example:
Following is an example with 64QAM signal being transmitted over 2×2 MIMO channel. In this toy example, the channel is a randomly generated time-invariant 2×2 matrix with a condition number of 2.97. Transmit signal constellation is normalized to have unit mean power. Thermal noise at the receiver is modeled as an AWGN channel with 10dB SNR for an input signal with unit power.
Design of Sphere decoder
Current Sphere decoder design is based on “Kailath, H. Vikalo, and B. Hassibi, “MIMO receive algorithms,” in Space-Time Wireless Systems, 1st ed.”. I did need to modify it to take care of some corner cases. It is currently not in its most efficient state.