No License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
MIMO Channel Capacity

4.3 | 17 ratings Rate this file 52 Downloads (last 30 days) File Size: 2.63 KB File ID: #19315 Version: 1.0

MIMO Channel Capacity


Omid (view profile)


24 Mar 2008 (Updated )

This function calculates ergodic and outage capacity of correlated MIMO channels

| Watch this File

File Information

This function calculates the ergodic and outage capacity of a MIMO Rayleigh
channel considering no CSIT (equal power allocation) and perfect CSIT
(waterfilling power allocation). In both cases perfect CSIR is assumed. The
channel is assumed to be spatially correlated according to a Kronecker
 model but temporally uncorrelated.

MATLAB release MATLAB 7.5 (R2007b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (29)
11 Nov 2016 ajay kmr

thanks it helped me alot..:)

07 Oct 2014 praveen

some error in this code

02 Oct 2014 ikaza

ikaza (view profile)

Got it Omid,

Thank You Once Again for excellent Code :D

02 Oct 2014 ikaza

ikaza (view profile)

Hello Omid ,

The code was excellent but am getting a small error

Error :

>> MIMOCapacity (1)
Error using MIMOCapacity (line 24)
Not enough input arguments.

Am a newbie In Matlab Could anyone plz Help in this aspect.

Suggestions would be highly Appreciated

Thank You :)

14 Jan 2014 Hao

Hao (view profile)

Good code!

15 Dec 2013 gagan kalita

can anyone write a code regarding the capacity of cooperative mimo having one relay node

05 Jun 2013 Charles

Omid, Good code! Kronecker model requires that you divide the H by the square-root of the trace of the matrix R_r! Where is the computation of the determinant of (.)? Comment

25 Dec 2012 fibrlink,com lu

sorry for 'statistical'

25 Dec 2012 fibrlink,com lu

Hello, Omid,
So funny to get the outage problity using statically method

29 Oct 2012 fahmy

fahmy (view profile)

very good

Comment only
31 May 2012 yan weijun

thank you for your help

Comment only
31 May 2012 yan weijun

thank you for your help

13 Feb 2012 dchris

dchris (view profile)

Many thanks for sharing this code.
Could you give us a short explanation for the outage capacity calculation?
Why is the outage capacity, the i = (Pout*nsamp) element of the ordered matrix?
I am trying to understand the physical interpretation of this.

Comment only
10 Feb 2012 oufouanas

the outage is to calculate the capacity.

Comment only
31 Dec 2011 Ying Liu

The idea to calculte the outage capacity is excellent, thanks a lot.

17 Oct 2011 xiaomeng peng

very good code thx a lot

Comment only
20 Apr 2010 Hakan

Hakan (view profile)

I have a MIMO system with 3 Tx antenna and 2 Rx antenna.
-The channel is Rayleigh
-the channel length is L
hij=[h(0) h(1) h(L)] channel responses between ith Tx antenna and jth Rx antenna.
How can I obtain theses channel responses which are Rayleigh distributed?

Comment only
12 Apr 2010 shree bade

when i run this code i many undefined variables. i tried to change and add even though it shown mistakes .can any one provide this correct code.

Comment only
03 Mar 2010 Jing

Jing (view profile)

Thanks! very helpful!

25 Feb 2010 Rajaa lakshmanan

I dont Know , there is error in first line SNR=10^(SNR/10) then SNR should be predermined ? Can any one help me in this... Jus now I m Working in Matlab .. i think the function MIMO capacity is missing is it,, i need to complete My work ... please help me....

Comment only
29 Dec 2009 wing ??

thank you for your share!

12 Nov 2009 Aydar Zimaliev

Yes, the code is nice!
I think there is one little bug in the line 40: instead of SNR/n_t it should be something like SNR/n_l where n_l = min([n_r, n_t]).
Thanks again!

15 Feb 2009 jia fen

why the code ie not running in MATLAB´╝čplease comment!!!!!thank you!!!

Comment only
25 Sep 2008 Reza Mohammadkhani

Dear Omid,
Your style of programming is excellent!
Thank you for your codes. It help me to complete my codes (water-filling func).

10 Apr 2008 Omid Darvishi

Thanks Yong, but I know very little about optimal transmission strategy with respect to outage capacity (power allocation over a subset of antennas) and also suboptimal subset selection techniques. I may add that in my code later when I know more about those schemes.
Thank you Tahir too, sorry for the mistake in writing your name in my reply to your answer.

Comment only
10 Apr 2008 Omid Darvishi

Thanks Yong. That gain over SISO channels in presence of fully-correlated antennas is due to array gain (beamforming). In other words, in fully correlated channels, though the correlation matrices become rank-1 and hence no multiplexing gain can be extracted, multiple antennas at the receiver can capture more power through optimal combining and multiple antennas at the transmit side can focus the transmitted power through beamforming (in case of perfect CSI at the transmitter).

Comment only
09 Apr 2008 Tahir Khan

The code is very good. However when I use it for a 4*4 MIMO with perfect correlation the capacity it gives is still higher then for and SISO system. Can you please explain to me why?

07 Apr 2008 Yong Chang

Thanks very much!
This code is very nice!
But, I want to ask do you have any code to caculate the channel capacity after MIMO antenna subset selection.
My email is
Best regards

04 Apr 2008 Omid Darvishi

Hi all,
If you are using my code, please kindly take your time to write a review and rate it.

Comment only

Contact us