How calculate Energy efficiency in massive MIMO with antenna selection ?

23 次查看(过去 30 天)
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;

回答(1 个)

Mrutyunjaya Hiremath
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;

类别

Help CenterFile Exchange 中查找有关 Phased Array Design and Analysis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by