How calculate Energy efficiency in massive MIMO with antenna selection ?

30 ビュー (過去 30 日間)
RT Student
RT Student 2021 年 6 月 2 日
回答済み: Mrutyunjaya Hiremath 2023 年 9 月 29 日
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
Mrutyunjaya Hiremath 2023 年 9 月 29 日
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 Center および File ExchangePhased 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