m基于GA遺傳優(yōu)化算法的認知中繼網絡最優(yōu)中繼功率分配和最佳中繼節(jié)點選擇算法matlab仿真

1.算法概述



如圖1表示一個潛伏式認知中繼網絡碰凶,在這個場景中有一對主用戶和一對次級用戶暮芭,主用戶由一個發(fā)射器和一個接收器組成,次級用戶由一個發(fā)射器欲低、一個接收器和n個中繼節(jié)點組成辕宏。次級用戶的認知節(jié)點之間沒有直接鏈路,中繼節(jié)點采用放大轉發(fā)工作模式砾莱。假設場景中涉及到的信道都是相互獨立的塊衰落信道瑞筐,也就是說即時功率增益在每個傳輸塊之間是保持不變的,但是當一個傳輸塊變化到另一個傳輸塊時是可能發(fā)生改變的腊瑟。


在現有捕獲信道狀態(tài)信息的技術支持下聚假,假設次級用戶能夠獲取完美的信道狀態(tài)信息,即次級用戶發(fā)射端和中繼節(jié)點能通過不同的方法獲取信道即時功率增益闰非,從而使次級用戶發(fā)射端和中繼節(jié)點能夠實現發(fā)射功率的最優(yōu)分配以獲得次級用戶的最大吞吐量膘格。


主用戶在通信過程中可以采取不同的發(fā)射方案。為了計算的方便财松,本文假設主用戶采用恒定功率的分配方案瘪贱。為了從總體上保護主用戶的通信質量,在主用戶接收端考慮一個長時間平均的SINR約束條件辆毡。這個約束條件在本文中稱為平均SINR約束條件菜秦,表述如下:


為了保護主用戶的實時傳輸,使其不會因為最大化次級用戶的吞吐量而被中斷舶掖,確保主用戶的傳輸質量球昨,進而保證主用戶的業(yè)務質量,本文也對主用戶接收端的每個傳輸狀態(tài)的SINR強加一個約束访锻。這個約束稱為谷值SINR約束褪尝,表述如下: ?


本文的優(yōu)化標是在平均SINR約束、谷值SINR約束以及平均發(fā)射功率約束下期犬,充分的利用共享的頻譜資源河哑,獲取盡可能大的次級用戶吞吐量。


2.仿真效果預覽

matlab2022a仿真結果如下:


3.核心MATLAB代碼預覽

%次用戶發(fā)射端到中繼節(jié)點功率增益

f3 ??= 2;

%中繼節(jié)點到次用戶接收端功率增益

f4 ??= 3;

%中繼節(jié)點到主用戶接收端之間的信道即時功率增益

f5 ??= 3;

%預先確定的主用戶能夠接受的最小的平均SINR閾值

A1 = 3.6;

A2 = 2.5;

%次級用戶發(fā)射端和中繼節(jié)點的平均發(fā)射功率預算

Q1 = 3.48;

Q2 = 3.3;

%**************************************************************************

%%

%先確定lemda1龟虎,lemda2璃谨,lemda3,lemda4

Num ????= 2000;

beta1 ??= zeros(1,Num);

beta2 ??= zeros(1,Num);

beta3 ??= zeros(1,Num);

beta4 ??= zeros(1,Num);

lemdas1 = zeros(1,Num);

lemdas2 = zeros(1,Num);

lemdas3 = zeros(1,Num);

lemdas4 = zeros(1,Num);

lemda1 ?= 0;

lemda2 ?= 0;

lemda3 ?= 0;

lemda4 ?= 0;


for k = 1:Num-1

%步長的動態(tài)調整

alpha ???????= 0.15;

beta1(k) ????= alpha*((Num-k+1)/Num)^k;

beta2(k) ????= alpha*((Num-k+1)/Num)^k;

beta3(k) ????= alpha*((Num-k+1)/Num)^k;

beta4(k) ????= alpha*((Num-k+1)/Num)^k;

lemdas1(k+1) = lemdas1(k) - beta1(k)*(mean((P1*f1)./(P2*f2 + N0))-A1);

lemdas2(k+1) = lemdas2(k) - beta2(k)*(mean((P1*f1)./(P3*f5 + N0))-A2);

lemdas3(k+1) = lemdas3(k) - beta3(k)*(Q1 - mean(P2));

lemdas4(k+1) = lemdas4(k) - beta4(k)*(Q2 - mean(P3));

end

%通過迭代,獲得四個lemda

lemda1 ?= lemdas1(end);

lemda2 ?= lemdas2(end);

lemda3 ?= lemdas3(end);

lemda4 ?= lemdas4(end);


figure(1);

plot(lemdas1,'b','linewidth',2);

hold on

plot(lemdas2,'r','linewidth',2);

hold on

plot(lemdas3,'k','linewidth',2);

hold on

plot(lemdas4,'g','linewidth',2);

grid on

legend('lemda1','lemda2','lemda3','lemda4');

xlabel('迭代次數');

ylabel('lemda');

axis([0,Num,-2,2]);


%%

%通過優(yōu)化佳吞,計算得到最后最佳的功率分配情況

%先通過遺傳優(yōu)化獲得最佳的P2和P3

%**********************首先通過我使用的優(yōu)化過程計算**************************

%根據中繼節(jié)點數目拱雏,產生每個次用戶-中繼的信道參數

SNR0 = 15;

SNR ?= [8,12,15,20,4,11];

%測試發(fā)送數據

Signal = 1e6*rand(1,2);

x ?????= 2*Signal-1;


for jAFN = 1:AFN

jAFN

zsnl ??= sqrt(1/(10^((SNR(jAFN))/10)));

zsnl0 ?= sqrt(1/(10^((SNR0)/10)));

%如下為需要擬合的參數

P2o ???= 3;

P3o ???= 3;

%根據遺傳算法進行參數的擬合

MAXGEN = 200;

NIND ??= 600;

Chrom ?= crtbp(NIND,2*10);

%14個變量的區(qū)間

Areas ?= [0 ?,0;

20 ,20];


FieldD = [rep([10],[1,2]);Areas;rep([0;0;0;0],[1,2])];

P2x_NIND ???= zeros(NIND,1);

P3x_NIND ???= zeros(NIND,1);

P2x ????????= zeros(MAXGEN,1);

P3x ????????= zeros(MAXGEN,1);

T ??????????= zeros(MAXGEN,1);

gen ????????= 0;


for a=1:1:NIND

P2x_NIND(a) = P2o; ?????

P3x_NIND(a) = P3o;

%計算對應的目標值

%計算不同中繼點對應的信噪比

Ysr ????= sqrt(P2x_NIND(a)*f3)*x + zsnl*randn;

Ysd ????= sqrt(P3x_NIND(a))/sqrt(P2x_NIND(a)*f3 + N0)*sqrt(f4) * Ysr + zsnl0*randn;

Rr ?????= sum(Ysd.^2)/sum(x.^2);


L ??????= func_obj(Rr,mean(P1),P2x_NIND(a),P3x_NIND(a),f1,f2,f3,f4,f5,N0,lemda1,lemda2,lemda3,lemda4);

E ??????= 1/L;

J(a,1) ?= E;

end

Objv ?= (J+eps);

gen ??= 0;

while gen < MAXGEN; ??

FitnV=ranking(Objv); ???

Selch=select('sus',Chrom,FitnV); ???

Selch=recombin('xovsp', Selch,0.9); ??

Selch=mut( Selch,0.01); ??

phen1=bs2rv(Selch,FieldD); ??

for a=1:1:NIND ?

if ?gen == 1

P2x_NIND(a) = P2o; ?????

P3x_NIND(a) = P3o;

else

P2x_NIND(a) = phen1(a,1); ?????

P3x_NIND(a) = phen1(a,2);

end

%計算不同中繼點對應的信噪比

Ysr ????= sqrt(P2x_NIND(a)*f3)*x + zsnl*randn;

Ysd ????= sqrt(P3x_NIND(a))/sqrt(P2x_NIND(a)*f3 + N0)*sqrt(f4) * Ysr + zsnl0*randn;

Rr ?????= sum(Ysd.^2)/sum(x.^2);

%計算對應的目標值 ??????????????????

L ??????= func_obj(Rr,mean(P1),P2x_NIND(a),P3x_NIND(a),f1,f2,f3,f4,f5,N0,lemda1,lemda2,lemda3,lemda4); ??????????????????????

E ??????= 1/L;

JJ(a,1) = E;

end

Objvsel=(JJ+eps); ???

[Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel); ??

gen=gen+1;

%保存參數收斂過程和誤差收斂過程以及函數值擬合結論

P2x(gen) ??= mean(P2x_NIND);

P3x(gen) ??= mean(P3x_NIND);

Ysr ????= sqrt(P2x(gen)*f3)*x + zsnl*randn;

Ysd ????= sqrt(P3x(gen))/sqrt(P2x(gen)*f3 + N0)*sqrt(f4) * Ysr + zsnl0*randn;

Rr ?????= sum(Ysd.^2)/sum(x.^2);

%計算對應的吞吐量

T(gen) ????= log2(1+Rr);

end

%計算對應的目標值 ???

Ysr ??????????= sqrt(P2x(end)*f3)*x + zsnl*randn;

Ysd ??????????= sqrt(P3x(end))/sqrt(P2x(end)*f3 + N0)*sqrt(f4) * Ysr + zsnl0*randn;

Rr ???????????= sum(Ysd.^2)/sum(x.^2);

Tp2p3(jAFN) ??= log2(1+Rr);

P2_best(jAFN) = P2x(end); ?????

P3_best(jAFN) = P3x(end);

end


%獲得最佳中繼點

[V,I] = max(Tp2p3);


disp('最優(yōu)中繼點:');

I


disp('最優(yōu)功率分配結果:');

P2_best(I)

P3_best(I)


disp('吞吐量:');

Tp2p3(I)

01_088_m

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市底扳,隨后出現的幾起案子铸抑,更是在濱河造成了極大的恐慌,老刑警劉巖衷模,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹊汛,死亡現場離奇詭異,居然都是意外死亡阱冶,警方通過查閱死者的電腦和手機刁憋,發(fā)現死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來木蹬,“玉大人至耻,你說我怎么就攤上這事∧魅” “怎么了尘颓?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長意系。 經常有香客問我泥耀,道長饺汹,這世上最難降的妖魔是什么蛔添? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮兜辞,結果婚禮上迎瞧,老公的妹妹穿的比我還像新娘。我一直安慰自己逸吵,他們只是感情好凶硅,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扫皱,像睡著了一般足绅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上韩脑,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天氢妈,我揣著相機與錄音,去河邊找鬼段多。 笑死首量,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播加缘,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸭叙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拣宏?” 一聲冷哼從身側響起沈贝,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勋乾,沒想到半個月后缀程,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡市俊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年杨凑,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摆昧。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡撩满,死狀恐怖,靈堂內的尸體忽然破棺而出绅你,到底是詐尸還是另有隱情伺帘,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布忌锯,位于F島的核電站伪嫁,受9級特大地震影響,放射性物質發(fā)生泄漏偶垮。R本人自食惡果不足惜张咳,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望似舵。 院中可真熱鬧脚猾,春花似錦、人聲如沸砚哗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛛芥。三九已至提鸟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仅淑,已是汗流浹背称勋。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漓糙,地道東北人铣缠。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝗蛙。 傳聞我的和親對象是個殘疾皇子蝇庭,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容