天天看點

基于gamebased算法的動态頻譜通路matlab仿真

目錄

​​一、理論基礎​​

​​二、核心程式​​

​​三、測試結果​​

一、理論基礎

       随着越來越多的新型無線應用,對頻譜資源的需求越來越大。在這種情況下,這是舉世公認的認知無線電的出現已經成為一種很有前途的方式解決頻譜資源有限的問題。在認知無線電網絡(CRN)中,未經授權的使用者,在次要使用者對主要使用者的幹擾在可接受水準的情況下,允許動态通路頻譜。考慮的場景和系統假設:

基于gamebased算法的動态頻譜通路matlab仿真

      我們考慮一個動态頻譜接入網,它由一個主使用者對和兩個輔助使用者組成。具體地說,我們将主發射機和接收機分别表示為pu t和pur。兩個次要使用者(記作A和B)将它們的包傳輸到認知基站(CBS)。該配置可以擴充到多輔助使用者,這不是本文的重點。此外,還有一個竊聽者,記作E,試圖攔截主傳輸。假設每個節點都有一個全向天線。

       将節點間信道增益模組化為獨立的複高斯随機變量。更具體地說,鍊路的瞬時信道系數P U t − P Ur, P U t − E, A − E, B − E, B −P Ur, A − P Ur, B − CBS, A − CBS被獨立的表示為hp, hP E, hAE, hBE, hBP , hAP , hB, hA。獨立的加性高斯白噪聲在P Ur, E, CBS對A和B來說表示為np, ne, nA, nB, 方差為σ2p, σ2e,σ2A, σ2B,我們表示使用者的發射功率A (or B) 為Ppu and Psu。在具有相同的優先級情況下,合理的假設次要使用者A和B具有相同的傳輸能力。

       針對頻譜覆寫系統的實體層安全問題,提出了一種基于遊戲的幹擾方法。為了全面捕捉主使用者服務的特點,采用了連續時間馬爾可夫鍊,進而清晰地建構了信道狀态轉換。二次系統幹擾合作的激勵因素是調整一次使用者的負載因子。采用基于神經網絡的幹擾方法,不需要對竊聽者的CSI進行檢測。此外,還設計了機率幹擾機制,為遊戲參與者提供了更多的自由度。

二、核心程式

.......................................

hP2  = 0.5;
hPE2_= 0.5;
hA2  = 0.5;
hB2  = 0.5;
hAE2 = 0.5;
hBE2 = 0.5;
hAP  = 0.1;
hBP  = 0.1;

SNR  = [6:2:30];
hPE2_= [0.1:0.1:0.9];
dA   = 0.9;
dB   = 0.9;
dP   = 0.9;
dE   = 0.9;
Ppu  = 4;
c    = 0.2;


p_   = zeros(size(hPE2_));
Prate = zeros(size(hPE2_));
for i = 1:length(hPE2_)
    Psu_tmp = 3; 
    hPE2 = hPE2_(i);
    hi   = [hA2,hB2];
    di   = [dA,dB];
    R1   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE)),0);
    R2   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(dE)),0);
    gamma= max([hi./di]);
    %幹擾信号由機率pj
    tmps = 0;
    tmps2= 0;
    for jj = 1:5000
        pj      = 0.8+rand/5;
        up_uplp = 0.18;
        pi1     = up_uplp;
        pi2     = (1-up_uplp)*(1-pj); 
        pi3     = (1-up_uplp)*pj; 
        Up      = pi2*R2 + pi3*R1;
        Rsu     = max([1+Psu_tmp*hi./di]);
        Us      = pi1*Rsu - 2*c*Psu_tmp*pi3;
        %根據us反推p,Psu最大的時候,對應的Us的值
        Up      = Us;
        PP      = Up/((1-pj)*R2 + pj*(log2(1+Ppu*hP2/dP)-log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE))));
        tmps    = abs(PP);
        Px(jj)  = (1-tmps)/tmps;
        Psuss   = max(1/(2*log(2)*c*Px(jj)*pj) - 1/gamma,0);
        %計算Secondary users’ utility
        R       = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(Psuss*hAE2 + Psuss*hBE2 + dE)),0);
        Rsu     = max(log2(1+Psuss*hi(1)./di(1)),log2(1+Psuss*hi(2)./di(2)));
        Us      = (pi1*Rsu - 2*c*Psu_tmp*pi3);
        tmps2   = tmps2+1+Us;
    end
    tmps2   = tmps2/5000;
    Prate(i) = tmps2;
end

figure;
plot(hPE2_,Prate,'b-o');
hold on


%下面是簡化後的power controller
Prate = zeros(size(hPE2_));
for i = 1:length(hPE2_)
    Psu_tmp = 3; 
    hPE2 = hPE2_(i);
    hi   = [hA2,hB2];
    di   = [dA,dB];
    R1   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE)),0);
    R2   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(dE)),0);
    gamma= max([hi./di]);
    %幹擾信号由機率pj
    tmps = 0;
    tmps2= 0;
    for jj = 1:5000
        pj      = 0.8+rand/5;
        up_uplp = 0.18;
        pi1     = up_uplp;
        pi2     = (1-up_uplp)*(1-pj); 
        pi3     = (1-up_uplp)*pj; 
        Up      = pi2*R2 + pi3*R1;
        Rsu     = max([1+Psu_tmp*hi./di]);
        Us      = pi1*Rsu - 2*c*Psu_tmp*pi3;
        Up      = Us;
        PP      = Up/((1-pj)*R2 + pj*(log2(1+Ppu*hP2/dP)-log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE))));
        tmps    = abs(PP);
        Px(jj)  = (1-tmps)/tmps;
        Psuss   = max(1/(2*log(2)*c*Px(jj)*pj) - 1/gamma,0);
        %計算Secondary users' utility
        Rsu     = max(log2(1+Psuss*hi(1)./di(1)),log2(1+Psuss*hi(2)./di(2)));
        Rsu     = max([1+Psuss*hi./di]);
        Us      = (pi1*Rsu - 2*c*Psu_tmp*pi3);
        tmps2   = tmps2+1+Us;
    end
    tmps2   = tmps2/5000;
    Prate(i) = tmps2;
end
 
.......................................................      

三、測試結果

繼續閱讀