m認(rèn)知無線電網(wǎng)絡(luò)中頻譜感知的按需路由算法matlab仿真

1.算法概述




使用無線電用戶的頻率范圍在9kHz 到 275GHz[3]父虑,由于無線通信環(huán)境中的干擾特恬、信道衰落和無線電收發(fā)設(shè)備自身屬性等的影響舆逃,大部分無線電設(shè)備只能工作在 50GHz 以下。在 3GHz 以上無線頻譜資源利用率較低背捌,3GHz 以下的利用率低于30%[4]毙籽。因此,頻譜資源缺乏的主要原因為不合理的頻譜資源管理政策。


在低頻段的頻譜利用率較高辩棒,但在中頻段和高頻段利用率極低靡努,固定的頻譜管理政策是導(dǎo)致無線頻譜資源短缺的真正原因,不是頻譜資源不能滿足用戶需求垮衷。


認(rèn)知無線電讓無線通信設(shè)備能夠主動尋找可用信道,將未被使用的頻譜資源進(jìn)行再次利用乖坠,具體可通過認(rèn)知無線電的智能化特性實現(xiàn)頻率搀突、時間和空間域不同頻譜環(huán)境的信號感知,來充分滿足用戶使用需求熊泵。認(rèn)知無線電本身存在學(xué)習(xí)能力仰迁,能夠?qū)νㄐ怒h(huán)境中的變化做出分析和判斷甸昏,然后能尋找到“頻譜空穴”。


當(dāng)一個節(jié)點需要給網(wǎng)絡(luò)中的其他節(jié)點傳送信息時徐许,如果沒有到達(dá)目標(biāo)節(jié)點的路由施蜜,則必須先以多播的形式發(fā)出RREQ(路由請求)報文。RREQ報文中記錄著發(fā)起節(jié)點和目標(biāo)節(jié)點的網(wǎng)絡(luò)層地址雌隅,鄰近節(jié)點收到RREQ翻默,首先判斷目標(biāo)節(jié)點是否為自己。如果是恰起,則向發(fā)起節(jié)點發(fā)送RREP(路由回應(yīng));如果不是修械,則首先在路由表中查找是否有到達(dá)目標(biāo)節(jié)點的路由,如果有检盼,則向源節(jié)點單播RREP肯污,否則繼續(xù)轉(zhuǎn)發(fā)RREQ進(jìn)行查找。

按需路由選擇(ODR)吨枉。ODR使用Cisco發(fā)現(xiàn)協(xié)議(CDP)來在分支(末節(jié))路由器和中央路由器之間傳輸網(wǎng)絡(luò)信息蹦渣。與動態(tài)路由選擇協(xié)議相比,ODR提供IP路由選擇信息的開銷非常忻餐ぁ柬唯;而與靜態(tài)路由相比,ODR的手工配置量更少属提。


在大規(guī)模的路由網(wǎng)絡(luò)中权逗,例如在一個由省-地市-縣-營業(yè)點組成的四級遠(yuǎn)程互連的路由網(wǎng)絡(luò)中,如何維護(hù)大量的營業(yè)點路由器的直連子網(wǎng)路由和配置營業(yè)點的靜態(tài)路由成為一個巨大的負(fù)擔(dān).此案例中說明了如何利用cisco On-Demand Routing (ODR)技術(shù)來優(yōu)化這種大規(guī)模路由網(wǎng)絡(luò)的一個設(shè)想.


算法A文獻(xiàn):



算法B:


基礎(chǔ)算法B是基礎(chǔ)算法A的簡化冤议,路徑的退避時延只是節(jié)點退避時延的累加斟薇。算法的具體解釋,參考文獻(xiàn)’基礎(chǔ)算法B’恕酸。


2.仿真效果預(yù)覽

matlab2013b仿真




3.MATLAB部分代碼預(yù)覽

SOP_fre ?= zeros(NUM_SOP,1);

for i = 1:NUM_SOP

SOP_fre(i) ?= 10*round(MAX_Fre/10*rand(1,1)) + MIN_Fre;%設(shè)置總共的頻段情況20M~2400M,頻段變換步進(jìn)為10M

end

k ???????= 0.01;%調(diào)整10M的頻率段堪滨,需要時間10ms。

Infor ???= cell(sqrt(Num_node),sqrt(Num_node));

NUM_SOUR = 1;%源節(jié)點個數(shù)

NUM_DENT = 1;%目標(biāo)節(jié)點個數(shù)


if sel_sna == 1

Band_W ??= 2;%帶寬統(tǒng)一為2M

end


if sel_sna == 2

Band_Ws ?= cell(sqrt(Num_node),sqrt(Num_node));%定義每個節(jié)點的帶寬

SNRi ????= cell(sqrt(Num_node),sqrt(Num_node));%定義每個節(jié)點之間的信噪比

Pi ??????= cell(sqrt(Num_node),sqrt(Num_node));%定義每個節(jié)點之間數(shù)據(jù)傳輸?shù)牟怀晒怕?/p>

end



S_data ??= 0.3;%定義每個數(shù)據(jù)包的大小蕊温,通常袱箱,這個數(shù)據(jù)包的大小是相同的。

P0 ??????= 0.7;%表示節(jié)點P觀察到某個頻段可用同時Q也觀察到這個頻段可用的概率义矛;

qc ??????= 0.8;%在Q沒有觀察到頻段可用而P觀察到頻段可用的概率

Pc ??????= 0.1;%每個節(jié)點的沖突概率

W0 ??????= cell(sqrt(Num_node),sqrt(Num_node));%表示IEEE 802.11指數(shù)退避流程中退避窗口的最小值



Stime ???= 100;%利用蒙特卡羅的仿真思想发笔,對結(jié)果進(jìn)行多次仿真,求平均



for pp = 1:Stime

pp

%%

%-----START:初始化產(chǎn)生節(jié)點凉翻,注意了讨,這里,節(jié)點的顯示用方格坐標(biāo)顯示,但是實際的位置信息均存儲在每個節(jié)點的信息cell中

%-----START:初始化產(chǎn)生節(jié)點前计,注意胞谭,這里,節(jié)點的顯示用方格坐標(biāo)顯示男杈,但是實際的位置信息均存儲在每個節(jié)點的信息cell中

%-----START:初始化產(chǎn)生節(jié)點丈屹,注意,這里伶棒,節(jié)點的顯示用方格坐標(biāo)顯示旺垒,但是實際的位置信息均存儲在每個節(jié)點的信息cell中

%-----START:初始化產(chǎn)生節(jié)點,注意苞冯,這里袖牙,節(jié)點的顯示用方格坐標(biāo)顯示侧巨,但是實際的位置信息均存儲在每個節(jié)點的信息cell中

%以下的代碼僅僅為顯示節(jié)點

[X_view,Y_view,Index] = func_postion(Num_node);

% figure(1);

% for i = 1:sqrt(Num_node)

% ????for j = 1:sqrt(Num_node)

% ????????plot(X_view(i,j),Y_view(i,j),'b.');hold on

% ????end

% end


%下面的是產(chǎn)生的每個節(jié)點的基本信息

%以下的信息是基于AOVD協(xié)議產(chǎn)生每個節(jié)點的基本信息

%產(chǎn)生坐標(biāo)信息

POS = cell(sqrt(Num_node),sqrt(Num_node));

X ??= zeros(sqrt(Num_node),sqrt(Num_node));

Y ??= zeros(sqrt(Num_node),sqrt(Num_node));

for i = 1:sqrt(Num_node)

for j = 1:sqrt(Num_node)

X(i,j) ??= RR*rand(1,1);Y(i,j) = RR*rand(1,1);

POS{i,j} = [X(i,j),Y(i,j)];

end

end


%產(chǎn)生每個節(jié)點的附近的所有的頻段,每個節(jié)點附近的頻段的個數(shù)是隨機(jī)的1~NUM_SOP

FRE = cell(sqrt(Num_node),sqrt(Num_node));

for i = 1:sqrt(Num_node)

for j = 1:sqrt(Num_node)

tmp ????= randint(1,1,[1,NUM_SOP/2]); ?????????%產(chǎn)生該節(jié)點的頻段數(shù)的個數(shù)

Ind_sop = unique(randint(1,tmp,[1,NUM_SOP]));%產(chǎn)生對應(yīng)個數(shù)的隨機(jī)頻段的編號

FRE{i,j}= unique(SOP_fre(Ind_sop)); ?????????????????%每個節(jié)點附近的隨機(jī)頻點舅锄,構(gòu)成SOP集合來模擬頻譜分布的非均勻性

end

end


%產(chǎn)生每個節(jié)點的數(shù)據(jù)流

%分別定義單數(shù)據(jù)流;

%-------多數(shù)據(jù)流:并行的數(shù)據(jù)流司忱,交叉的數(shù)據(jù)流以及隨機(jī)的數(shù)據(jù)流皇忿;

[Data_flow,Starts,Ends] = func_data_flow(Num_node,sel_type);


%產(chǎn)生每個節(jié)點的退避最大窗口

for i = 1:sqrt(Num_node)

for j = 1:sqrt(Num_node)

W0{i,j} = 8-0.5*length(FRE{i,j});

end

end


%定義每個節(jié)點的帶寬

for i = 1:sqrt(Num_node)

for j = 1:sqrt(Num_node)

Band_Ws{i,j} = 2 + (1-2*rand(1,1));%通常情況下節(jié)點的帶寬都是相同的

end

end


%定義每個節(jié)點之間的信噪比

for i = 1:sqrt(Num_node)

for j = 1:sqrt(Num_node)

SNRi{i,j} = 5 + 2*rand(1,1);%每個路徑的SNR包括固有的5db以及隨機(jī)性差異

end

end


%定義每個節(jié)點之間數(shù)據(jù)傳輸?shù)牟怀筛怕?/p>

for i = 1:sqrt(Num_node)

for j = 1:sqrt(Num_node)

Pi{i,j} = 0.5 + 0.5*rand(1,1);%滿足高斯分布

end

end




%-----OVER:節(jié)點的初始化信息結(jié)束,通過循環(huán)可知坦仍,每次的參數(shù)是時變的鳍烁,符合實際情況

%-----OVER:節(jié)點的初始化信息結(jié)束,通過循環(huán)可知繁扎,每次的參數(shù)是時變的幔荒,符合實際情況

%-----OVER:節(jié)點的初始化信息結(jié)束,通過循環(huán)可知梳玫,每次的參數(shù)是時變的爹梁,符合實際情況

%-----OVER:節(jié)點的初始化信息結(jié)束,通過循環(huán)可知提澎,每次的參數(shù)是時變的姚垃,符合實際情況


%%

%%

%%

%%


%%

%-----START:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%-----START:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%-----START:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%-----START:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%根據(jù)之前定義的數(shù)據(jù)流,找到數(shù)據(jù)流的源節(jié)點和目標(biāo)節(jié)點盼忌,并根據(jù)最小延遲算法確定實際的路徑

%[Data_flow,Starts,Ends] ??

%根據(jù)已知的路徑和SOP集合积糯,計算每個交叉節(jié)點的沖突數(shù)


%通過計算延遲,使每個節(jié)點的頻譜進(jìn)行重新分配谦纱,從而使延遲達(dá)到最小值看成,頻譜從初始化產(chǎn)生的SOP集合中選擇

%計算初始的沖突數(shù)量,后面在動態(tài)分配頻段的時候跨嘉,進(jìn)行實時的更新

Num ??= zeros(sqrt(Num_node),sqrt(Num_node));

Num = func_find_Num(Data_flow,FRE,Num_node);


for i = 1:length(Starts)

for j = 1:length(Data_flow{i})



%首先計算節(jié)點延遲

%首先計算節(jié)點延遲

%不是目標(biāo)節(jié)點,是中間節(jié)點

%不是目標(biāo)節(jié)點,是中間節(jié)點

%不是目標(biāo)節(jié)點,是中間節(jié)點

if j < length(Data_flow{i})

tmp1 = Data_flow{i}(:,j);

tmp2 = Data_flow{i}(:,j+1);

%首先判斷當(dāng)前節(jié)點下有誤存在交集川慌,如果沒有頻段的交集則丟去該幀

if ?FRE{tmp1(1),tmp1(2)}(1) == FRE{tmp2(1),tmp2(2)}(1)

Dswitching(j) = 0;

if Num(tmp1(1),tmp1(2)) > 0

Dbackoff(j) ??= W0{tmp1(1),tmp1(2)}/((1-Pc) * (1-(1-Pc)^(1/(Num(tmp1(1),tmp1(2))-1))));

else

Dbackoff(j) ??= 0;

end ???????????????

else

Dswitching(j) = 2*k*abs(FRE{tmp1(1),tmp1(2)}(1) - FRE{tmp2(1),tmp2(2)}(1));

if Num(tmp1(1),tmp1(2)) > 0

Dbackoff(j) ??= W0{tmp1(1),tmp1(2)}/((1-Pc) * (1-(1-Pc)^(1/(Num(tmp1(1),tmp1(2))-1))));

else

Dbackoff(j) ??= 0;

end

end


%計算傳輸延遲

Dtrans(j) ??????= (1/(1-Pi{tmp1(1),tmp1(2)}))*S_data/( Band_Ws{tmp1(1),tmp1(2)}*log2(1 + SNRi{tmp1(1),tmp1(2)}) );

%進(jìn)行延遲信息反饋RREQ反饋

DN(j) ?????????= Dswitching(j) + Dbackoff(j) + Dtrans(j) ;



else%如果是目標(biāo)節(jié)點

%如果是目標(biāo)節(jié)點

%如果是目標(biāo)節(jié)點

tmp1 = Data_flow{i}(:,j);

tmp2 = Data_flow{i}(:,j); ????????


indss1 = 1;


%搜索最小DN值

for hh1 = 1:length(FRE{tmp1(1),tmp1(2)})

for hh2 = 1:length(FRE{tmp2(1),tmp2(2)})

indss1 = indss1 + 1;

%更新頻段

Fre_now ?= FRE{tmp1(1),tmp1(2)}(hh1);

%更新沖突數(shù)

Fre_nows ?????????????????= FRE;

Fre_nows{tmp1(1),tmp1(2)} = Fre_now;

Num = func_find_Num(Data_flow,FRE,Num_node);


Dswitching(indss1) = 2*k*abs(FRE{tmp1(1),tmp1(2)}(hh1) - FRE{tmp2(1),tmp2(2)}(hh2));

if Num(tmp1(1),tmp1(2)) > 0

Dbackoff(indss1) ??= W0{tmp1(1),tmp1(2)}/((1-Pc) * (1-(1-Pc)^(1/(Num(tmp1(1),tmp1(2))-1))));

else

Dbackoff(indss1) ??= 0;

end


%計算傳輸延遲

Dtrans(indss1) ??????= (1/(1-Pi{tmp1(1),tmp1(2)}))*S_data/( Band_Ws{tmp1(1),tmp1(2)}*log2(1 + SNRi{tmp1(1),tmp1(2)}) );

%進(jìn)行延遲信息反饋RREQ反饋

DNss(indss1) ????????= Dswitching(indss1) + Dbackoff(indss1) + Dtrans(indss1) ;

end

end

%找到最小值,給出最小值對應(yīng)的頻段及相關(guān)參數(shù)

DN(j) = min(DNss);

end

Num = func_find_Num(Data_flow,FRE,Num_node);

%計算路徑延遲 ???

%計算路徑延遲 ?

indss = 0;

for pp1 = 1:length(FRE{tmp1(1),tmp1(2)})

for pp2 = 1:length(FRE{tmp2(1),tmp2(2)})

indss = indss + 1;

H = length(Data_flow{i})-j+1;%多跳跳數(shù)


for j2 = 1:H

Dswitchingi_tmp(j2) = k*abs(FRE{tmp1(1),tmp1(2)}(pp1) - FRE{tmp2(1),tmp2(2)}(pp2));

end

Dswitchingi(indss) = sum(Dswitchingi_tmp);

if mod(H,2) == 0%偶數(shù)

for j2 = 1:H

Uhx_tmp(j2) = (1-P0)*qc^((1-Pc^j2)/(1-Pc^2));

end

Uhx = sum(Uhx_tmp);

end

if mod(H,2) == 1%奇數(shù)

for j2 = 1:H

Uhx_tmp(j2) = (1-P0)*qc^((1-Pc^j2)/(1-Pc^2)) + P0*Pc^(j2-1);

end

Uhx = sum(Uhx_tmp); ???????

end ??????

Dbackoffi(indss) ??= (S_data/Band_Ws{tmp1(1),tmp1(2)}) * (floor((H+1)/2) - Uhx)/Uhx;

DPss(indss) ?????????= Dswitchingi(indss) + Dbackoffi(indss);

end

end

DP(j) = min(DPss);


Droutej(j) ????= DP(j) + DN(j);


end


Droutej_i(:,i) ????= Droutej;




end

F_Droutej_i(:,:,pp) = Droutej_i;

end

%-----OVER:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%-----OVER:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%-----OVER:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲

%-----OVER:通過基礎(chǔ)算法A的相關(guān)方法計算目標(biāo)路徑的延遲



%最后的延遲為F_Droutej_i進(jìn)行求平均

for i = 1:size(Droutej_i,1)

for j = 1:size(Droutej_i,2)

Droutej_i_average(i,j) = mean(F_Droutej_i(i,j,:));

end

end

Droutess = mean(mean(Droutej_i_average));

01_044_m

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市窘游,隨后出現(xiàn)的幾起案子唠椭,更是在濱河造成了極大的恐慌,老刑警劉巖忍饰,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贪嫂,死亡現(xiàn)場離奇詭異,居然都是意外死亡艾蓝,警方通過查閱死者的電腦和手機(jī)力崇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赢织,“玉大人亮靴,你說我怎么就攤上這事∮谥茫” “怎么了茧吊?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長八毯。 經(jīng)常有香客問我搓侄,道長,這世上最難降的妖魔是什么话速? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任讶踪,我火速辦了婚禮,結(jié)果婚禮上泊交,老公的妹妹穿的比我還像新娘乳讥。我一直安慰自己,他們只是感情好廓俭,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布云石。 她就那樣靜靜地躺著,像睡著了一般白指。 火紅的嫁衣襯著肌膚如雪留晚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天告嘲,我揣著相機(jī)與錄音错维,去河邊找鬼。 笑死橄唬,一個胖子當(dāng)著我的面吹牛赋焕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仰楚,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼隆判,長吁一口氣:“原來是場噩夢啊……” “哼犬庇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侨嘀,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤臭挽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咬腕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欢峰,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年涨共,在試婚紗的時候發(fā)現(xiàn)自己被綠了纽帖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡举反,死狀恐怖懊直,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情火鼻,我是刑警寧澤室囊,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站凝危,受9級特大地震影響波俄,放射性物質(zhì)發(fā)生泄漏晨逝。R本人自食惡果不足惜蛾默,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捉貌。 院中可真熱鬧支鸡,春花似錦、人聲如沸趁窃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醒陆。三九已至瀑构,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刨摩,已是汗流浹背寺晌。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留澡刹,地道東北人呻征。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像罢浇,于是被迫代替她去往敵國和親陆赋。 傳聞我的和親對象是個殘疾皇子沐祷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容