Important information

If you are thinking of contacting us, please do not e-mail the author to ask for download instructions, installation guidelines, or the toolbox itself. The code itself is well-documented and the package contains a README.txt file providing the essential information about the software. Note that we will NOT help to debug user-generated code that was not included in the provided software package. If, however, you notice a bug in our code, please be so kind to contact the author.

The software package is supplied "as is", without any accompanying support services, maintenance, or future updates. We make no warranties, explicit or implicit, that the software contained in this package is free of error or that it will meet your requirements for any particular application. It should not be relied on for any purpose where incorrect results could result in loss of property, personal injury, liability or whatsoever. If you do use our software for any such purpose, it is at your own risk. The authors disclaim all liability of any kind, either direct or consequential, resulting from your use of these programs.

Multiple-input multiple-output (MIMO) technology in combination with spatial multiplexing has established itself as a way of significantly increasing the spectral efficiency compared to single-antenna wireless communication systems. One of the main drawbacks of MIMO communication is the computational complexity of optimum data detection, which scales exponentially in the number of simultaneously transmitted data streams. Hence, most practical implementations for MIMO technology rely on low-complexity algorithms that provide sub-optimal performance. During the last decade, a plethora of algorithms and corresponding hardware designs have been proposed in the literature.

When I was recently looking for a simple MIMO simulator framework suitable for less experienced undergraduate and graduate students, I could not find a single one that is simple enough and can be extended to incorporate various detection algorithms. I therefore decided to develop a very simple MATLAB simulator that is able to simulate hard-output error-rate performance curves and contains the most basic optimal and sub-optimal detection algorithms (such as zero-forcing, minimum mean-square error detection, and a sphere decoder that achieves ML performance). I believe that this simulator provides a good and easy start for students and professionals that are interested in MIMO technology.

Package details

The software package contains a single-file Matlab simulator that performs Monte-Carlo simulations to extract error-rate vs. signal-to-noise ratio (SNR) curves. The simulator only supports hard-output MIMO detectors, but is set up such that you can add your own extensions (e.g., algorithms, channel models, codes, etc.). The code is written by C. Studer, and is available for free trial, non-commercial research or education purposes, and for non-profit organizations. If you plan on using the code or parts thereof for commercial purposes or if you intend to re-distribute the code or parts thereof, you must contact the author. If you are using the code or parts thereof for your scientific work, you must provide a reference to this website.


The simulator package only requires a fairly recent version of Matlab. No special toolbox is needed.


If you agree with the conditions and regulations above, you may download the package here. The zip file (4kB) contains one Matlab .m file and a README.txt file. The simulator should run out of the box. Have fun!