Plot MIMO channel capacity and capacity average

33 views (last 30 days)
matlabuser1 on 24 Nov 2021
Answered: Arthi Sathyamurthi on 28 Dec 2021
I would like to know how to plot the average channel capacity of a MIMO channel capacity.
I know MIMO channel capacity is :
C = log det (INR * ((gamma)/(Nt)* H*H(Hermitian))
and Channel capacity average is :
Cav = 1/P * Sigma (C) , where P = 10^3 and teh limits of sigma is p=1 to P.
I need to plot the average channel Capacity, Cav, for uncorrelated channel, H, take sigma in db from 0 to 30 in increments of 2. Nr and Nt equal 5.
The code I have so far is :
clear all;
Nt = 2;
Nr = 2;
gammaBar = -10:5:30; %average SNR in dB
SNR = 10 .^(gammaBar/10); % absoulte value of SNR
noSim = 10e5; %Numnber of Independent channel relaizations
H = sqrt(1/2) * (randn+1j*randn); %Complex Gaussian random variables

Answers (1)

Arthi Sathyamurthi
Arthi Sathyamurthi on 28 Dec 2021
The MIMO Channel Capacity formula mentioned seems to have few minor mistakes and has basic assumptions. The formula considering the same assumptions should be
which is where γ is the SNR.
Further modifying the code based on the input data mentioned in the description and taking gamma in dB from –10 to 30 in increments of 2, the code for plotting channel capacity is
Nt = 5;
Nr = 5;
gammaBar = -10:2:30;
SNR = 10 .^(gammaBar/10);
H = sqrt(1/2) * (randn+1j*randn);
for idx = 1:1:length(SNR)
c(idx) = log2(det((eye(Nr))+((SNR(idx)/Nt)*abs(H)*(abs(H')))));
xlabel('SNR in dB');
ylabel('Ergodic Channel Capacity');
Further, the average channel capacity can be calculated by modifying the formula of channel capacity with either or information and having the power factor in the formula.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by