NOMA 容量方程
首先,对于两用户的传输方案中,分为远和近两个用户,器容量方程可以写为:
其中Rn是通过SIC算法去除远端用户干扰后的得到的。
功率分配系数的推导αn和αf
设R*为远用户的目标速率,即我们需要Rf>=R*,设Rf=R*即
设
已知an+af=1
由于af不能超过1,故规定
这样,就利用动态功率分配方案导出了功率分配系数
存在的问题
由上述公式,每当计算出af>1时,,就限制其等于 1,例如如果af算出来等于50,必须设置为50 才能满足远端用户的目标率,实际上我们设置为了1,这是没有意义的,an=0,传输的信号不包括任何近端用户的信息,远端用户由于an<50导致其中断,都无法满足要求。
做出调整
为了解决这个问题,添加一个简单的调整。
每当af值超过1时,设置af=0,因为即使我们给他赋值为1,都无法解决其中断,不如将功率全部用在近端用户上,添加这个调整后,中断趋势为下:
下面是改进的功率分配方案与固定功率分配方案的和速率进行比较
可以清楚地看到,就可实现的容量而言,改进的功率分配方案优于固定功率分配方案。
以下是仿真代码:
clc; clear variables; close all;
N = 10^5;
df = 5000; dn = 1000; %Distances
eta = 4;
hf = sqrt(df^-eta)*(randn(1,N) + 1i*randn(1,N))/sqrt(2);
hn = sqrt(dn^-eta)*(randn(1,N) + 1i*randn(1,N))/sqrt(2);
gf = (abs(hf)).^2;
gn = (abs(hn)).^2;
R1 = 1; %Target rate bps/Hz
epsilon = (2^(R1))-1; %Target SINR
%Transmit power
Pt = 0:30;
pt = (10^-3)*db2pow(Pt);
%Noise power
No = -114;
no = (10^-3)*db2pow(No);
b1 = 0.75; b2 = 0.25; %Fixed PA for comparison
for u = 1:length(pt)
a1 = epsilon*(no + pt(u)*gf)./(pt(u)*gf*(1+epsilon));
a1(a1>1) = 0;
a2 = 1 - a1;
%Sum rate of fair PA
C1 = log2(1 + pt(u)*a1.*gf./(pt(u)*a2.*gf + no));
C2 = log2(1 + pt(u)*a2.*gn/no);
C_sum(u) = mean(C1+C2);
%Sum rate of fixed PA
C1f = log2(1 + pt(u)*b1.*gf./(pt(u)*b2.*gf + no));
C2f = log2(1 + pt(u)*b2.*gn/no);
C_sumf(u) = mean(C1f+C2f);
end
plot(Pt,C_sum,'linewidth',1.5); hold on; grid on;
plot(Pt,C_sumf,'linewidth',1.5);
legend('Fair PA','Fixed PA \alpha_1 = 0.75, \alpha_2 = 0.25')
xlabel('Transmit power (dBm)');
ylabel('Sum rate (bps/Hz)');
参考:
- "The impact of power allocation on cooperative non-orthogonal multiple access with SWIPT", Z. Yang, Z. Ding, P. Fan and N. Al-Dhahir, IEEE transactions on wireless communications, vol.6, no.7, July 2017
- F. Kara, H. Kaya, BER Performances of Downlink and Uplink NOMA in the Presence of SIC Errors over Fading Channels. IET Communications. Vol. 12, no. 15, pp. 1834-1844.