% 分离式SWIPT
% 如果仿真有问题,请联系qq2422132064
clear;clc;
Nt = 6;
K = 3; % ID数目
M=3;
eta=0.5;
d1=8; % 信息接收机到发射机距离(m)
d2=5; % 能量接收机到发射机距离(m)
n=-3; % 路径损耗因子
sigma2dBm = -20; %dBm
sigma2 = 10^(sigma2dBm/10);%mW,如若是转换成单位W,则使用10^(sigma2dBm/10-3)
delta2dBm = -20; %dBm
delta2 = 10^(delta2dBm/10);%mW
r0dB =0; %dBm
EE0_range = 0:5:50; %dBm
E0_range = 10.^(EE0_range/10); %mW
r0 = 10.^(r0dB/10);
Nsim = 1; % 求均值次数
% 计算
P_range = zeros(1,length(E0_range));
for i=1:Nsim
% 初始化信道,均值为0,方差为(d^n)的衰落信道,(d^n)为路损
for i=1:K
h(i,:) = sqrt(1/2)*(randn(1,Nt)+j*randn(1,Nt))*sqrt(d1^n);
end
for i=1:M
hp(i,:) = sqrt(1/2)*(randn(1,Nt)+j*randn(1,Nt))*sqrt(d1^n);
end
for E0_index = 1:length(E0_range)
E0 = E0_range(E0_index);
% 求解SDP
[W1,W2,W3] = SDP2(h,hp,sigma2,delta2,E0,eta,r0);
P_range(E0_index) = P_range(E0_index)+real(trace(W1+W2+W3));
end
end
P_range = P_range/Nsim; % 求平均,单位(mW)
PP_range = 10*(log10(P_range)); % 单位(dBm)
% 绘图
figure;
plot(EE0_range,PP_range);
xlabel('EH target E_0(dBm)','FontSize',12);
ylabel('Transmit Power(dBm)','FontSize',12);
legend('分离式-SWIPT');
grid;