# How calculate Energy efficiency in massive MIMO with antenna selection ?

23 views (last 30 days)
RT Student on 2 Jun 2021
What is the formula of Energy efficiency (Bits/joule) with this code (using matrix)? Basically, this code selects the optimal sub-matrix from a capacity point of view. I want it to be the same except with energy efficiency thank's.
%%%%%%%%%%%OPTIMAL ANTENNA SELECTION
Ns=4;
Nr=16;
SNR=6;%dB
SNR= 10^(SNR/10);
simulation=10;
capacityOfAver=[];
for Lr=1:8
capacityOfSum=0;
antennaSubset=nchoosek([1:Nr],Lr);
for sim=1:simulation
H=sqrt(1/2)*(randn(Nr,Ns)+1j*randn(Nr,Ns));
capacityOfSubsetMax=0;
for k=1:nchoosek(Nr,Lr);
indexOfChannel=antennaSubset(k,:);
H_sel=H(indexOfChannel,:);
capacityOfSubset=log2(det(eye(Ns)+SNR/Ns*(H_sel'*H_sel))) ;
if(capacityOfSubset>capacityOfSubsetMax)
capacityOfSubsetMax=capacityOfSubset;
end
end
capacityOfSum=capacityOfSum+capacityOfSubsetMax;
capacityOfAver=[capacityOfAver,capacityOfSum/simulation];
end
%plot
X=[0:8];
plot(X,[0,capacityOfAver]);
xlabel('Lr');
ylabel('capacity(bit/s/Hz)');
grid on;
hold on;

Mrutyunjaya Hiremath on 29 Sep 2023
The Energy Efficiency (EE) is usually measured in bits per joule (bits/J) and is calculated as follows:
Energy Efficiency (EE) = Capacity (C)/Energy Consumption (E)
Modifying the Code for Energy Efficiency
When considering energy efficiency, you need to model the energy consumption of the selected antennas. Let’s assume that each selected antenna consumes energy Ea (joules/bit), and there is a fixed energy consumption Ef (joules/bit) for the system.
The energy consumption E for a selection of Lr antennas can be modeled as:
E = Ef ​+ Lr ​⋅ Ea
Subsequently, the energy efficiency can be calculated as follows:
Energy Efficiency (EE) = Capacity (C)/ E
Here’s the modified MATLAB code to select the optimal sub-matrix from an energy efficiency point of view:
Ns=4;
Nr=16;
SNR=6; %dB
SNR= 10^(SNR/10);
simulation=10;
Ea = 0.1; % Energy consumption per antenna (joules/bit)
Ef = 1; % Fixed energy consumption (joules/bit)
energyEfficiencyAver=[];
for Lr=1:8
energyEfficiencySum=0;
antennaSubset=nchoosek([1:Nr],Lr);
for sim=1:simulation
H=sqrt(1/2)*(randn(Nr,Ns)+1j*randn(Nr,Ns));
energyEfficiencySubsetMax=0;
for k=1:nchoosek(Nr,Lr);
indexOfChannel=antennaSubset(k,:);
H_sel=H(indexOfChannel,:);
capacityOfSubset=log2(det(eye(Ns)+SNR/Ns*(H_sel'*H_sel)));
E = Ef + Lr * Ea; % Total Energy Consumption
energyEfficiency = capacityOfSubset / E; % Energy Efficiency Calculation
if(energyEfficiency > energyEfficiencySubsetMax)
energyEfficiencySubsetMax = energyEfficiency;
end
end
energyEfficiencySum = energyEfficiencySum + energyEfficiencySubsetMax;
end
energyEfficiencyAver=[energyEfficiencyAver, energyEfficiencySum/simulation];
end
% Plot
X=[0:8];
plot(X,[0,energyEfficiencyAver]);
Warning: Imaginary parts of complex X and/or Y arguments ignored.
xlabel('Lr');
ylabel('Energy Efficiency (bits/J)');
grid on;
hold on;