# Plot MIMO channel capacity and capacity average

63 views (last 30 days)
matlabuser1 on 24 Nov 2021
Answered: Arthi Sathyamurthi on 28 Dec 2021
Hello,
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 :
clc;
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

Arthi Sathyamurthi on 28 Dec 2021
Hello,
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')))));
end
plot(gammaBar,c)
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.