This page contains downloadable MATLAB examples with relevance to the following
book:

"A Practical Guide to the MIMO Radio Channel"
by T. Brown, E. DeCarvalho and P. Kyritsi

Sample available at Google Books

The book is designed for introducing MIMO for beginners from the perspective of the propagation channel. The complementary MATLAB codes supplied here are for the purpose of being used as MIMO tutorials to assist in learning about MIMO systems and propagation channel modelling. More information about the book and purchase is available at the following link.

An errata list has been created as follows for identified errors to equations in the book by clicking here.

The relevant MATLAB codes are available for download at the following links chapter by chapter.

- Fig215_ErgodicCapacityVsNumberOfAntennas.m - Code to generate figure 2.15
- Fig216_ErgodicCapacityVsSNR.m - Code to generate figure 2.16
- Fig217_ErgodicCapacityFor4TxorRxantennas.m - Code to generate figure 2.17
- Fig219_CDF.m - Code to generate figure 2.19
- Fig220_CapacityWithOutage.m - Code to generate figure 2.20
- Fig221_OutageProbability.m - Code to generate figure 2.21

- Fig309_AchievableRateMIMOReceivers.m - Code to generate figure 3.9
- Fig310_OutageProbability_ZF_MMSE.m - Code to generate figure 3.10
- Fig311_OutageProbabilityNonOrderedSIC.m - Code to generate figure 3.12
- Fig319_320_CapacityBeamforming.m - Code to generate figure 3.19 and 3.20
- Fig321_BerBeamforming.m - Code to generate figure 3.21
- Fig326_OutProbabilityAlamouti.m - Code to generate figure 3.26 -
*Errata: in book the curves are for a 2x4 MIMO system and not a 2x2 MIMO system* - Fig327_BERofOSTBCandQOSTBC.m - Code to generate figure 3.27 -
*Errata: caption in book should be "BER of OSTBC and QOSTBC"* - Fig328_OutProbabilityofOSTBCandQOSTBC.m - Code to generate figure 3.28
- Fig330_OutProbabilityBLAST.m - Code to generate figure 3.30

- TimeFilter_Channel_Example.m - Example of how to create a channel with memory using the time filter based method described in section 4.1.2.
- FrequencyFilter_Channel_Example.m - Example of how to create a channel with memory using the frequency filter based method described in section 4.1.2.
- Kronecker_Example.m - An example of using the Kronecker model with a Kronecker product as explained in section 4.2.2
- Kronecker_Example_II.m - An alternative example of using the Kronecker model as explained in section 4.2.2.

- Spatial_Correlation.m - Files used to generate the correlation curves shown in section 5.3.1, which will require also downloading the following files into the same directory:

*Tim Brown
January 2012
Updated April 2012, June 2012 and January 2016*