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.

Large-scale multiple-input multiple-output (MIMO) wireless technology (also known as massive MIMO or very-large MIMO) is a promising means to meet the ever growing demands for higher throughput and improved quality-of-service in future multi-user (MU) wireless communication systems. In particular, equipping the base station (BS) with a large number of antennas, while serving a few users concurrently and in the same frequency band, has the potential to increase the spectral efficiency of existing wireless systems. In addition, large-scale MIMO is able to reduce the operational power consumption at the transmitter (i.e., the BS).

Practical realization of large-scale MIMO however, need novel means to reduce the costs of the (potentially) hundreds of antennas (and RF chains) at the BS. In particular, the use of orthogonal frequency division multiplexing (OFDM) requires linear (and hence, costly and power inefficient) RF chains or sophisticated PAR reduction schemes. This simulator provides an environment to assess the performance of the large-scale MU-MIMO-OFDM downlink and provides novel algorithms to reduce the PAR using sophisticated precoding methods. In particular, the simulator contains the PMP algorithm (short for MU precoding, OFDM modulation, and PAR reduction) which relies on convex l_infty-norm minimization via the fast iterative truncation algorithm (FITRA) to substantially reduce the PAR while perfectly avoiding MU interference.

More information on the large-scale MIMO downlink, PAR reduction, and on l_infty-norm minimization can be found in the following publications:

C. Studer, T. Goldstein, W. Yin, and R. G. Baraniuk, "Democratic Representations," submitted to IEEE Transactions on Information Theory
C. Studer and Erik G. Larsson, "PAR-Aware Large-Scale Multi-User MIMO-OFDM Downlink," IEEE Journal on Selected Areas in Communications, Vol. 31, No. 2, pp. 303–313, Feb. 2013
C. Studer and E. G. Larsson, "PAR-Aware Multi-user Precoder for the Large-Scale MIMO-OFDM Downlink," Proc. IEEE 9th International Symposium on Wireless Communication Systems (ISWCS), Aug. 2012, (invited paper)
C. Studer, W. Yin, and R. G. Baraniuk, "Signal Representations with Minimum l_inf-Norm," Proc. 50th Annual Allerton Conference on Communication, Control, and Computing, Oct. 2012

Package details

The software package contains a simulation enviroment for the large-scale MIMO-OFDM downlink. The code is written in Matlab and consists of a flexible Monte-Carlo simulation environment that can easily be extended (e.g., with novel precoding schemes, decoding algorithms, channel models, etc.). The code is written by C. Studer, and is available for free trial, non-commercial research and 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 (e.g., for a research paper or a presentation), you must provide a reference to this website or at least one of the publications listed above.


The simulator package requires a fairly recent version of Matlab and Matlab's communications toolbox (only for poly2trellis.m).


If you agree with the conditions and regulations above, you may download the package here. The zip file (1.5MB) contains Matlab .m files as well as Matlab .mex files. The .mex files have been compiled into binaries for the most common architectures/OS. If, however, your architecture/OS is not supported, please use the .c files provided in the package to compile the code yourself. Have fun!