沈 平 袁 瑛 周 潘
1(湖北職業(yè)技術學院計算機中心 湖北 孝感 432000)2(湖北職業(yè)技術學院信息技術學院 湖北 孝感 432000)3(華中科技大學電子信息與通信學院 湖北 武漢 430074)
隨著移動終端使用量與業(yè)務量的飛速發(fā)展,提高移動通信傳輸?shù)念l譜利用率已成為當前的研究重點。認知無線電(Cognitive Radio,CR)[1]能夠在對主用戶(Primary User,PU)不產(chǎn)生干擾的前提下,充分利用空閑的頻譜資源。標準的CR優(yōu)先維護PU的通信質(zhì)量(Quality of Service,QoS),次用戶(Secondary User,SU)的QoS受到極大的影響,導致SU的傳輸性能較差[2]。
在CR的物理層,許多研究人員利用正交頻分復用(Orthogonal Frequency Division Multiplexing,OFDM)技術[3-4]傳輸速率高且抗多徑效果好的優(yōu)點,設計了基于OFDM的物理層協(xié)作通信技術[5-6]。在CR的協(xié)議層提高SU的通信質(zhì)量也成為一個研究的熱點,文獻[7]將PU與SU的連接中斷考慮為約束條件,將最大化SU的傳輸速率作為目標問題,該算法有效地提高了SU的傳輸速率,但是也增加了網(wǎng)絡中節(jié)點的能耗。文獻[8]提出了一種多階段的智能中繼算法,將協(xié)作過程分為了抗干擾的中繼階段與SU解碼PU消息的階段,通過兩個階段的處理,提高了對PU活動檢測的準確性,但該算法并未考慮PU的全部QoS指標。
上述的物理層與協(xié)議層的協(xié)作通信方案均明顯地犧牲了PU的QoS,違背了認知無線電的核心原則。諸多文獻[9][10]將認知無線電的協(xié)作通信問題建模為多約束條件下的優(yōu)化問題,文獻[10]采用一個線性搜索技術搜索問題的最優(yōu)解,其解質(zhì)量不夠理想。重引力搜索算法(Gravitational Search Algorithm,GSA)是一種魯棒性高且易于實現(xiàn)的全局優(yōu)化算法,對于多約束條件優(yōu)化問題的效果較好,但是GSA存在容易陷入局部最優(yōu)的問題,導致尋優(yōu)結果不穩(wěn)定。本文將遺傳算子引入GSA的每次迭代中,設計了混合重引力搜索算法(Hybrid Gravitational Search Algorithm,HGSA),利用遺傳算法的全局搜索能力提高GSA的尋優(yōu)結果與穩(wěn)定性。
GSA是一種基于萬有引力定律和牛頓第二定律的種群優(yōu)化算法,粒子依賴彼此的萬有引力不斷運動,在搜索空間中尋找最優(yōu)解。GSA中agent作為彼此吸引的目標,每個agent由位置、質(zhì)量、主動性與主動引力質(zhì)量4個屬性組成??紤]一個包含N個agent的種群,第i個agent的位置定義為[11]:
(1)
第t次迭代中agentj對agenti的引力定義為:
(2)
式中:Maj表示agentj相關的主動引力質(zhì)量,Mpi表示agenti相關的被動引力質(zhì)量,表示極小的約束,Rij為agenti與j之間的歐氏距離。重引力常量G(t)是一個隨著迭代線性降低的函數(shù),其目標是控制搜索的準確率,計算為下式:
(3)
式中:α與G0分別為用戶定義的遞減系數(shù)與初始值,T為迭代次數(shù),agenti受到的總引力計算為下式:
(4)
(5)
式中:Mii(t)為慣性質(zhì)量。第t次迭代agenti在d維度的速度與位置方程分別定義為以下兩式:
(6)
(7)
算法1重引力搜索算法的偽代碼
輸入:目標函數(shù)f(x);
輸出:目標函數(shù)的最優(yōu)解;
1. 設置常量α、G0與max_iter;
2. 初始化種群;
3. WHILE未達到結束條件 {
4. 式(3)計算G;
5. 式(5)計算每個粒子的加速度;
6. 式(6)計算粒子速度;
7. 式(7)計算粒子位置;
8. 計算適應度;
9. }
GSA具有魯棒性、自適應性與簡潔性等優(yōu)點,但GSA容易陷入局部最優(yōu)。遺傳算法(Genetic Algorithm,GA)中則通過選擇算子、交叉算子與變異算子來防止早熟收斂,因此將GA算法引入GSA算法中,同時保留GA與GSA兩個算法的優(yōu)勢。
采用隨機初始化的機制,之后,使用GSA算法更新每個agent,迭代地接近最優(yōu)解,每次迭代采用式(3)計算種群的重引力,第t次迭代agent的質(zhì)量計算為:
(8)
式中:fit_optimal(t)與fit_lowest(t)是第t次迭代目標函數(shù)的最優(yōu)與最差適應度。假設Mpi=Maj=Mii=Mi,i=1,2,…,N,Mi(t)定義為下式:
(9)
每次迭代分別通過式(6)、式(7)更新agent的速度與位置,因此每次迭代重建了一個新的agent種群,每次迭代采用GA的算子對種群進行遺傳操作。因為GSA種群的規(guī)模較大,因此僅對其中一部分agent進行遺傳操作。設GAnum為GA操作的agent數(shù)量,定義為下式:
(10)
式中:GSAi表示GSA當前的迭代次數(shù)。GSAmax_iter表示GSA的最大迭代次數(shù),GAnum_max與GAnum_min分別表示GA處理的agent數(shù)量最大值與最小值。設GA處理的agent最大數(shù)量為max_index,定義為:
(11)
式中:GSAPS為GSA的種群規(guī)模。提取agent之后,采用遺傳算子對agent進行處理,產(chǎn)生新的agent。采用精英機制保留最優(yōu)解,如下式所示:
(12)
式中:xk表示第k個agent。最終,GA種群的規(guī)模與迭代次數(shù)的關系為:
(13)
(14)
式中:GAminPS與GAmaxPS分別為種群開始與最后的規(guī)模,GAmax_iter與GAmin_iter分別為GA的最大與最小迭代次數(shù),δ與β分別表示種群的生長速度與最大迭代次數(shù)。重復上述迭代直至達到期望的結束條件。圖1為HGSA的流程框圖。
圖1 混合重引力算法的流程框圖
假設無線網(wǎng)絡由若干的正交主信道組成,每個信道分配一個PU,每對PU的發(fā)送端-接收端即存在一對SU的發(fā)送端-接收端。考慮一個正交信道,每個正交信道的發(fā)送器由一個次發(fā)送器s與一個主發(fā)送器p組成,接收器由一個次目標sd與一個主目標pd組成。SU裝備了兩個天線:一個負責發(fā)送數(shù)據(jù),另一個負責接收數(shù)據(jù)與頻譜感知。PU裝備一個天線,PU具有一個緩存來保存一個報文,PU隊列的到達率服從獨立同分布。每個時隙傳輸?shù)膱笪臄?shù)量設為均值為λp∈[0,1]的貝努力隨機變量。
如果一個隊列的長度是有限的,則認為該隊列具有穩(wěn)定性。設QT表示時隙T開始的隊列Q長度,如果滿足以下條件,則認為隊列Q具有穩(wěn)定性:
(15)
(16)
式中:(z)+表示max(z, 0)。設隊列的離開早于隊列的到達,在每個時隙的開始測量隊列的長度[12]。
圖2 基于Markov鏈的PU隊列模型
將PU隊列的狀態(tài)平衡方程直接定義為PU隊列報文數(shù)量大于等于1的概率,設為vm:
(17)
(18)
對式(18)進行運算與化簡之后,v0可轉化為下式:
(19)
如果μp>λp,那么PU隊列是穩(wěn)定的。根據(jù)Little法則[13]計算PU平均隊列延遲Dp:
(20)
根據(jù)式(17)將Dp改寫為:
(21)
將v0代入Dp,平均PU隊列的延遲為:
(22)
如果μp和λp相等,則最小化平均延遲。PU平均隊列延遲不小于一個時隙,說明μp=1(個報文/時隙),如果PU隊列的服務速率等于一個單位,那么此時可獲得Dp的最小值。
設T表示PU占用WHz帶寬發(fā)送數(shù)據(jù)的一個時段,如果用戶之間沒有發(fā)生協(xié)作,那么將時隙分為兩個不重疊的階段,一個為發(fā)送數(shù)據(jù)階段,時段為[0,T-τf],另一個為響應階段,時長為τf秒,時段為[T-τf,T]。主目標使用響應階段告知主發(fā)送器報文的解碼狀態(tài)。如果PU隊列非空,那么PU發(fā)送一個大小為b比特的報文至目標節(jié)點。PU與主目標實現(xiàn)了自動重傳請求(Automatic Repeat-reQuest, ARQ)誤差控制方案,主目標在每個報文中設置CRC校驗碼來表示接收報文的解碼狀態(tài)。如果PU在時段[T-τf,T]內(nèi)收到一個ACK,那么刪除保存在隊列頭部的報文,否則,在后續(xù)時隙中產(chǎn)生一個“重新發(fā)送”報文。
如果p→pd連接未中斷,那么PU隊列頭部的報文將被服務。設PU隊列的平均服務速率為μp_nc,計算為下式:
(23)
由上式可看出增加響應時長τf,可導致PU隊列的服務速率降低。這是因為傳輸數(shù)據(jù)的可用時間隨著τf的增加而減少,所有連接中斷的概率增加也會導致服務速率降低。因為PU以固定速率Rp=b/W(T-τf)(比特/信道)發(fā)送數(shù)據(jù),根據(jù)式(9)增加W、T均會導致信道中斷概率的降低。增加Rp會導致每秒解碼的比特數(shù)量降低,所以增加Rp會導致吞吐量降低。每秒、每赫茲解碼的比特數(shù)計算為:
(24)
設Rp=b/WT,可得:
(25)
計算up_nc關于b的一階導數(shù),可獲得最優(yōu)的報文長度:
(26)
(27)
那么最大化每個信道吞吐量的比特數(shù)量為:
(28)
圖3 p與PU吞吐量(bit·s-1·Hz-1)的關系曲線
根據(jù)式(24)、式(25)兩式,可將PU隊列的平均延遲定義為下式:
(29)
式中:λp<μp_nc為PU隊列的穩(wěn)定性條件。
對于協(xié)作用戶,SU幫助PU轉發(fā)一部分的PU報文,如果用戶協(xié)作對于PU有益,那么PU可能釋放一部分帶寬給SU。如果PU隊列為非空,那么PU釋放WsHz的帶寬分配給SU,釋放Ts秒的時段給SU。PU報文使用的帶寬設為Wp=W-WsHz,發(fā)送時段與重新發(fā)送時段分別設為Tp與Ts。將PU帶寬與SU帶寬分別表示為Wp與Ws。
SU從時隙開始的τs秒內(nèi)感知子頻帶Wp,檢測是否存在活動的PU,如果Wp頻帶被感知為空閑狀態(tài),那么SU發(fā)送一些數(shù)據(jù)位來識別頻帶是否可用。假設SU采用基于能量檢測的頻譜感知算法,SU在時隙τs< 假設每個時隙內(nèi)存在兩個PU響應階段,每個PU報文的發(fā)送均對應一個響應階段,接收器在響應階段通知發(fā)送器報文是否可解碼。如果PU目標收到一份期望的PU報文,那么PU目標向發(fā)送器發(fā)送響應消息。第一個響應階段對應PU發(fā)送PU報文,第二個響應階段對應SU發(fā)送PU報文。如果PU收到一個ACK,那么PU清空其隊列,PU重新發(fā)送PU報文。協(xié)作方案的每個時隙中SU的操作分為5個階段,[0,τs],[τs,Tp],[Tp,Tp+τf],[Tp+τf,Tp+τf+Ts],[T-τf,T],如圖4所示。 圖4 頻譜協(xié)作感知的消息格式 SU中使用校驗碼指示解碼的正確性,將校驗碼置于響應消息的尾部。SU中主響應消息的解碼過程設為“刪除信道”模型,SU對PU響應消息正確解碼的概率設為f。如果SU無法在指定時隙內(nèi)解碼PU響應消息,則認為該響應消息為“NACK”消息,將SU未收到響應消息考慮為一個NACK響應消息。收到NACK響應消息的概率設為ω,將SU未收到響應消息考慮為ACK消息的概率設為ω′,因此,SU具有ω′概率不需要重新發(fā)送PU報文。SU應當對ω進行優(yōu)化,從而減少信道資源的浪費??紤]上述情況的PU平均服務率可定義為下式: (30) 式中:β=f+f′ω表示將串聽響應消息考慮為NACK的概率,該情況主要發(fā)生于p→pd連接中斷的場景。式(30)采用ω對PU平均服務率進行參數(shù)化處理。當ω=1,SU轉發(fā)的PU報文量增加,此時為系統(tǒng)內(nèi)最大的PU服務速率。為了簡化分析,將ω設為定值1,此時PU具有最優(yōu)的QoS性能。 PU在[0,Tp]時段發(fā)送報文,SU在[Tp+τf,Tp+τf+Ts]時段重新發(fā)送PU報文。SU將響應消息考慮為NACK消息的情況主要有兩種:(1) SU正確地解碼了響應消息,但是p→pd連接發(fā)生中斷;(2) SU未能正確地解碼響應消息。SU將串聽PU響應消息考慮為NACK的概率定義為: (31) 以下描述了SU在每個階段的操作: (1) 時段[0,τs] SU同時感應PU子頻帶Wp,在頻帶Ws發(fā)送數(shù)據(jù),感應的結果用于SU在時段[τs,Tp]的操作。 (2) 時段[τs,Tp] 如果SU檢測PU為活動狀態(tài),那么SU在Ws同時發(fā)送其數(shù)據(jù),SU在Wp對PU消息進行解碼。如果SU檢測PU為非活動狀態(tài),那么SU在Ws與Wp兩個子頻帶同時發(fā)送數(shù)據(jù)。如果PU為活動狀態(tài),而SU檢測PU子頻帶為空閑狀態(tài),那么PU與SU在頻帶Wp上將會產(chǎn)生干擾。 (3) 時段[Tp,Tp+τf] 如果在當前時隙中PU隊列中有數(shù)據(jù),那么在PU傳輸?shù)淖詈螅琒U在Ws上發(fā)送數(shù)據(jù),并且將Wp設為空閑,以防止兩個頻帶同時傳輸響應消息。如果在當前時段中PU隊列為空,那么SU在兩個子頻帶中并行的發(fā)送數(shù)據(jù)。 (4) 時段[Tp+τf,T-τf] 解碼PU報文的過程中,SU識別PU的狀態(tài)是否活動。如果滿足以下3個條件,那么SU在兩個子頻帶并行地發(fā)送數(shù)據(jù);① PU在時段[0,Tp]為活動狀態(tài),PU目標正確地解碼PU報文,SU成功地解碼PU響應消息,此時返回一個ACK響應消息;②s→pd連接中斷;③ PU在時段[0,Tp]為非活動狀態(tài)。如果PU在時段[0,Tp]為活動狀態(tài),次用戶將時段[Tp,Tp+τf]的響應消息作為一個NACK響應,并且s→pd連接未中斷,那么SU在Ws上發(fā)送數(shù)據(jù),或者在Wp上重新發(fā)送PU報文。 (5) 時段[T-τf,T] 如果次用戶在時段[Tp+τf,T-τf]重新發(fā)送報文,那么PU將在該階段也發(fā)送一個響應消息。SU在Ws發(fā)送數(shù)據(jù),保持偵聽頻帶Wp。如果SU決定不再重新發(fā)送PU報文,則不會產(chǎn)生PU響應消息。如果當前時段中PU隊列為空,那么SU在該時段發(fā)送其數(shù)據(jù)。 (32) 在PU不活動的情況下,次用戶的瞬時發(fā)送速率為: (33) 在PU活動的情況下,次用戶的瞬時發(fā)送速率為: (34) 最終,SU的平均發(fā)送速率計算為: (35) SU的平均發(fā)送能量計算為: (36) 假設用戶對Tp=T-τf-Ts、Wp=W-Ws進行優(yōu)化,假設頻譜感知時間τs為固定的預設值。頻譜協(xié)作感知優(yōu)化問題描述為在一定的約束條件下,獲得最大的平均數(shù)據(jù)速率。約束條件包括:PU平均隊列延遲、PU隊列穩(wěn)定性以及SU的平均發(fā)送能量。優(yōu)化問題的模型定義為下式: 0≤εl≤E,τs≤Tp≤T(l),0≤Wp≤W,Tp+Ts=T(l) (37) 結合延遲約束與穩(wěn)定性約束,PU隊列的平均服務率應當滿足下式: 在沒有協(xié)作通信的情況下,PU的發(fā)送時長為T-τf秒,占用頻帶為WHz,每個時隙中PU的能耗為PW(T-τf)(J/時隙)。在SU協(xié)作通信的情況下,PU的發(fā)送時長為Tp/T秒,占用頻帶為WpHz,每個時隙中PU的能耗為PWpTp≤PW(T-τf)(J/時隙)。協(xié)作通信導致PU節(jié)約的能耗平均比例定義為節(jié)約的能耗與原能耗的比例: 式中:PU的發(fā)送時間與占用帶寬越少,則節(jié)約的能量越多。 選擇三個近期不同類型的協(xié)作通信機制與本算法進行比較,綜合地評估本算法的性能,三個算法分別為MPSR[8]、NBERS[5]、AR[6],本算法簡稱為HGSCC(Hybrid Gravitational Search Cooperation Communication)?;贛ATLAB實現(xiàn)了每個頻譜協(xié)作通信算法。本算法中GSA相關參數(shù)設為:=10-100,G0=100,α=20,GA相關參數(shù)設為:交叉率=0.9,變異率=0.01,HGSA相關參數(shù)設為:控制參數(shù)γ=2,δ=15,β=15,GAminPS=10,GAmin_iter=10,GAnum_min=1,GAnum_max=20。 圖5 SU平均傳輸速率與PU隊列平均到達速率的關系 圖6 響應消息時長τf對本文協(xié)作感知通信算法的影響 (2) PU的性能實驗。上述實驗顯示,本算法有效地提高了次級用戶的性能,在此測試了本算法對于PU性能的影響。首先測試了PU平均服務速率與PU隊列平均到達速率的關系,以及PU隊列平均時延與PU隊列平均到達速率的關系,分別如圖7、圖8所示。圖中顯示,本算法的PU傳輸性能明顯地優(yōu)于無協(xié)作通信的方案,并且PU的傳輸性能與其他的協(xié)作通信方案接近。本算法的優(yōu)化目標是在保持PU隊列平均時延與穩(wěn)定性的前提下,提高次用戶數(shù)據(jù)傳輸?shù)倪B續(xù)性與穩(wěn)定性。從圖8可看出,當λp>0.2報文/時隙,PU隊列穩(wěn)定性較差,因此,PU隊列延遲較高,但本算法通過對PUQoS性能設立了約束條件,因此實現(xiàn)了較好的PU隊列延遲與較好的隊列穩(wěn)定性。 圖7 PU平均服務速率與PU隊列平均到達速率的關系 圖8 PU隊列平均時延與PU隊列平均到達速率的關系 (3) 協(xié)作通信的能耗。統(tǒng)計了PU平均節(jié)約的能耗與PU隊列平均到達速率的關系,如圖9所示。當λp=0.2報文/時隙,平均節(jié)約了超過95%的PU能量;當λp=0.9報文/時隙,平均節(jié)約了78%的PU能量。隨著λp的提高,SU獲得頻譜的機會降低,PU始終占據(jù)PU頻帶與時隙傳輸其數(shù)據(jù),因此PU節(jié)約的能耗降低。 圖9 PU平均節(jié)約的能耗與PU隊列平均到達速率的關系 對重引力搜索算法存在容易陷入局部最優(yōu)的問題進行了改進,通過遺傳算子提高了重引力搜索算法的全局搜索能力。采用混合重引力搜索算法在線下階段求解協(xié)作通信的優(yōu)化問題,將PU隊列平均時延、PU隊列穩(wěn)定性、SU平均發(fā)送能耗考慮為約束條件,對SU數(shù)據(jù)速率關于傳輸帶寬與傳輸時長的最大化優(yōu)化問題進行建模。對比實驗的結果顯示,本算法有效地提高了次級用戶的性能,實現(xiàn)了較好的PU隊列延遲與較好的隊列穩(wěn)定性,并且為PU節(jié)約了大量的能量。4 頻譜協(xié)作感知方案設計
4.1 PU響應消息的解碼
4.2 協(xié)作通信算法設計
4.3 用戶數(shù)據(jù)率與發(fā)送能量
5 問題建模與主平均能量節(jié)約
5.1 問題建模
5.2 PU節(jié)約的能耗
6 仿真實驗與結果分析
6.1 實驗環(huán)境與參數(shù)設置
6.2 實驗結果與分析
7 結 語