多小區下小區上行速率的計算的想法

問題:小區速率比paper中給出的仿真速率高很多。所以我們來討論一下小區速率的計算方法
之前小區速率計算的邏輯,是循環一萬次計算出一個用戶的速率,然後乘用戶數。現在想的修改思路是直接每次將小區速率求出來,然後取循環一萬次後的平均值。後者我覺得在一定程度上可以減小速率的隨機性。因爲仿真的結果表明,仿真速率的差距就在同小區的大尺度衰落上面,隨機產生的大尺度衰落差距會很大。但是如果我們考慮整個小區所有用戶的速率然後加和的話,大的速率固然比較大,但是小的速率比較小,這樣子的隨機性比之前只算一個用戶速率然後取平均應該小很多。
接下來進行試驗,看代碼的結果會怎麼樣。
首先,附上之前方法的結果:
在這裏插入圖片描述
這是修改完後的速率仿真結果
在這裏插入圖片描述
結果不算好,不過因爲是初版,晚上因爲要讀paper今天的速率仿真就到這裏了。接下來會給出小區速率到底用什麼方式來計算比較合適

備份一下代碼。

%更改小區速率的計算方式
clear;
SNR=0;
result=zeros(1,10);
for i=1:10000
    result1=zeros(1,10);
    
    x=1;
    pu=10;
    %pr=10db
    pr=10;
    r=-3.8;
    K=15;
    z=0.01;
    d_in=rand(1,K/3)*0.99+0.01;
    theta_in=rand(1,K/3)*(-pi/3);
    d_out=rand(2,K)*0.99+0.01;
    theta_out=rand(2,K)*(2*pi);
    for j=1:K/3
        x=1;
        result2=zeros(1,10);
        for M=50:50:500
            %產生alpha
            beta_of_alpha=zeros(1,3);%總共三個區域
            beta_of_alpha(1)=z*d_in(j)^r;
            d1=sqrt(2^2+d_out(1,j)^2-2*2*d_out(1,j)*cos(5*pi/6-theta_out(1,j)));
            beta_of_alpha(2)=z*d1^r;
            d2=sqrt(2^2+d_out(2,j)^2-2*2*d_out(2,j)*cos(5*pi/6-theta_out(2,j)));
            beta_of_alpha(3)=z*d2^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=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(pu*z*d_out(1,:).^r)-pu*z*d_out(1,j)^r;
            forth_3=sum(pu*z*d_out(2,:).^r)-pu*z*d_out(2,j)^r;
            forth=forth_1+forth_2+forth_3;
            result2(x)=first/(second+third+forth+1);
            x=x+1;
        end
        result1=result1+result2;
    end
    result=result+result1;
end
result=result/10000;
result=6/15*log2(1+result)*3;
M=[50:50:500];
plot(M,result,'x-');
xlabel('Numbers of antennas at BS');
ylabel('Sum rate(bits/symbol)');
hold on;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章