接着为了确定计算小区速率在空分上出了什么问题,我们将这种计算小区速率的思想运用到时间同步的方法中来和paper的结果作对比,以便找出其中的问题。
clear;
SNR=0;
result=zeros(1,10);
for i=1:10000
result1=zeros(1,10);
pu=10;
%pr=10db
pr=10;
r=-3.8;
K=15;
z=0.01;
d_in=rand(1,K)*0.99+0.01;
theta_in=rand(1,K)*(2*pi);
d_out=rand(6,K)*0.99+0.01;
theta_out=rand(6,K)*(pi);
for j=1:K
x=1;
result2=zeros(1,10);
for M=50:50:500
%产生alpha
beta_of_alpha=zeros(1,7);%总共三个区域
d1=sqrt(2^2+d_out(1,j)^2-2*2*d_out(1,j)*cos(theta_out(1,j)));
d2=sqrt(2^2+d_out(2,j)^2-2*2*d_out(2,j)*cos(theta_out(2,j)));
d3=sqrt(2^2+d_out(3,j)^2-2*2*d_out(3,j)*cos(theta_out(3,j)));
d4=sqrt(2^2+d_out(4,j)^2-2*2*d_out(4,j)*cos(theta_out(4,j)));
d5=sqrt(2^2+d_out(5,j)^2-2*2*d_out(5,j)*cos(theta_out(5,j)));
d6=sqrt(2^2+d_out(6,j)^2-2*2*d_out(6,j)*cos(theta_out(6,j)));
beta_of_alpha(1)=z*d_in(j)^r;
beta_of_alpha(2)=z*d1^r;
beta_of_alpha(3)=z*d2^r;
beta_of_alpha(4)=z*d3^r;
beta_of_alpha(5)=z*d4^r;
beta_of_alpha(6)=z*d5^r;
beta_of_alpha(7)=z*d6^r;
alpha_jk=sum(pr*beta_of_alpha*K)+1;
%产生first项
beta_target_user=z*d_in(j)^r;
first=pu*pr*beta_target_user^2*K*(M-1)/alpha_jk;
%产生的second项
second=pu*beta_target_user*(1-pr*beta_target_user*K/alpha_jk);
%产生third项
third=0;
for m=2:7
third1=pu*beta_of_alpha(m)*(1+pr*beta_of_alpha(m)*K*(M-2)/alpha_jk);
third=third+third1;
end
% third=pu*beta_of_alpha(2)*(1+pr*beta_of_alpha(2)*K*(M-2)/alpha_jk)+pu*beta_of_alpha(3)*(1+pr*beta_of_alpha(3)*K*(M-2)/alpha_jk);
%产生forth项,forth项共分为小区内的干扰和小区间的干扰
forth_1=sum(pu*z*d_in.^r)-pu*z*d_in(j);
%注意相邻小区到本小区的距离的计算
forth_2=sum(sum(pu*z*d_out_ture.^r))-sum(pu*z*d_out_ture(:,j).^r);
% forth_2=sum(pu*z*d_out_ture(1,:).^r)-pu*z*d_out_ture(1,j)^r;
% forth_3=sum(pu*z*d_out_ture(2,:).^r)-pu*z*d_out_ture(2,j)^r;
forth=forth_1+forth_2;
result2(x)=first/(second+third+forth+1);
x=x+1;
end
result1=result1+result2;
end
result=result+result1;
end
result=result/10000;
result0=6/15*log2(1+result);
M=[50:50:500];
plot(M,result0,'x-');
xlabel('Numbers of antennas at BS');
ylabel('Sum rate(bits/symbol)');
hold on;
运行结果表明:确实小于paper中的结果。
新的问题出现了:查找代码中的问题项。
依然是forth项的问题吗?
- 看了代码,没有感觉到forth项的代码有什么问题
- 基于第一点,我们可以得到一个结论:在那些距离基站较近的用户可以有更大的速率
d的分布如下:
在d=0.8148时,我们有result
在d=00651的时候,我们有result
这个值是合理的吗???
更多谜底等待明天探索。