基于GNU Radio和USRP的認知無線電平臺研究
總結(jié)如下,受制于 USB 總線的約束,USRP 不能檢測超過 8MHz 的帶寬(USRP 的USB2.0 最大數(shù)據(jù)傳輸速率為 32M Bytes/S,每個實采樣點占用 2 個 Bytes,以一路復(fù)數(shù)采樣進行單收或單發(fā),則最高可達到 32/4=8M 復(fù)采樣每秒,即最高發(fā)送或接收 8MHz帶寬的信號)。因此,要對一段 RF 頻段進行檢測,必須以合適地步進值調(diào)節(jié) RF 前端,這樣就能檢查很寬的頻譜。在此設(shè)計過程中,為更好地表示指定頻段內(nèi)的頻譜感知情況,通過設(shè)置 GNU Radio 的相關(guān)函數(shù),我們選取 3MHz 這樣的掃頻間距。
頻段掃描過程如下:
(1) 設(shè)置所要感知頻段的最小、最大頻率以及掃描次數(shù) M;
(2) 對所選頻譜范圍進行間隔化,每一間隔值為 3MHz;
(3) 在第一個 3MHz 頻段范圍內(nèi)對信號進行 AD 采樣,得到 N 個點(本次設(shè)計 N 取256);
(4) 進行 N 點 FFT,對得到的 N 個復(fù)數(shù)分別進行平方和運算,得出模值 ,再累加,求得平均值作為此 3MHz 間隔的模值,并由此求得功率大小,記錄到文件中;
(5) 移頻到下一個 3MHz 間隔,重復(fù)上面的步驟,直到掃描完頻段內(nèi)所有的每一個間隔;
我們對特定頻段做多幾次掃頻,獲得平均功率數(shù)據(jù),使用 gnuplot 將數(shù)據(jù)畫圖。其中 Y 軸為平均功率,單位為 dBm;X 軸為頻率,單位為 MHz。因為 400M 和 2.4G 頻段上的功率量值不同,所以起始功率不同。見圖 4-5 和圖 4-6
從上兩圖中的檢測結(jié)果可以非常直觀的得到以下結(jié)論:
(1)2.4G 非授權(quán)頻段非常擁擠,這段頻率已經(jīng)被大量的 wifi 設(shè)備使用殆盡,而且還有大量“不速之客”加進來干擾,比如藍牙和微波爐開啟產(chǎn)生的污染(圖中 2430MHz處即是微波爐開啟產(chǎn)生的信號輻射)。
(2)在 400M 授權(quán)頻段上,除了某些頻率一直有信號在占用,大部分頻段大部分時間都是空閑的。這些授權(quán)頻段無論從時間上還是從功率上分析,都非常適合認知無線電非授權(quán)用戶的使用。
由美國頻譜規(guī)劃文件中如圖 4-7 可知,400M-480M 范圍內(nèi),國際通行的規(guī)劃大部分都是劃給移動通信,而在我國,大部分頻段在民用范圍內(nèi)大部分時間都是靜默的,只是450M 小靈通通信占用了一點,如上圖可清晰的發(fā)現(xiàn) 450M 處被占用情況。
所以我們選擇 400M 頻段作為認知無線電動態(tài)接入的頻段,可減少對授權(quán)用戶的干擾,從時間和頻譜空間這兩個角度來說也比較容易找到空閑頻段。
4.4 頻譜能量記錄與選擇
獲得了設(shè)置好的每一步進頻段內(nèi)的平均能量,并將其根據(jù)頻段的中心頻率排序存入鏈表,選定做 N 次掃頻,求 N 次掃頻后每個頻段的數(shù)學(xué)平均。這個 N 值取的次數(shù)需要根據(jù) sensing 的時間和傳輸時間大小的比值,以及動態(tài)接入的策略來確定的。這里我們?nèi)?nbsp;N=3,既可以過濾掉較大的隨機誤差,又可以節(jié)省 sensing 的時間。這樣我們就獲得了每個步進頻率的多次掃頻的平均功率,即可確定我們要接入的頻率和功率最小最大頻率。
當我們獲得了最小值與當前使用頻率的能量值,我們對其做比較,如無大差距,返回標志及數(shù)據(jù),為接下來的動態(tài)接入提供策略支撐是使用原頻率,還是使用新的最小頻率。
4.5 本章小結(jié)
本章介紹了頻譜檢測的方法和原理,設(shè)計了使用 GNU Radio 和 USRP 實現(xiàn)的 FFT能量檢測方法實現(xiàn)大范圍的頻譜檢測,并能將頻譜記錄和選擇接入頻率的策略。
第五章 動態(tài)接入及傳輸方法
5.1 動態(tài)接入及傳輸方法概述
動態(tài)接入及傳輸是這樣一個循環(huán)的過程:在頻譜檢測完成后,根據(jù)一定的規(guī)則經(jīng)過決策,選定一種無線制式和載波頻率重構(gòu)之后進行一段時間的數(shù)據(jù)傳輸。因為認知無線電要占用授權(quán)頻段,而授權(quán)用戶的通信是需要優(yōu)先保障的,所以認知無線電用戶需要不斷調(diào)整載波頻率和對應(yīng)的適合的無線制式,這是一個自適應(yīng)動態(tài)的過程。
動態(tài)接入需要在物理層完成無線制式的選擇,完成頻率選擇、無線接入、傳輸。
在邏輯鏈路層需要完成差錯檢測和接入控制使之能在無線網(wǎng)絡(luò)中避免沖突,保證通信質(zhì)量。
在網(wǎng)絡(luò)層需要與操作系統(tǒng)完成網(wǎng)絡(luò)設(shè)備注冊。
傳輸層以上編程使用普通網(wǎng)絡(luò)編程即可。
動態(tài)接入需要在 sensing 的基礎(chǔ)上才能做決策判斷接入頻點,并且動態(tài)接入傳輸?shù)倪^程需要多臺認知無線電平臺間遵守統(tǒng)一的時序,這樣才能通信。本文采用的時序策略如圖 5-2 所示。由于實驗環(huán)境及實驗器材的原因,選擇最基本的雙機通信,因為所處環(huán)境為室內(nèi),其授權(quán)用戶對所有非授權(quán)用戶的影響在數(shù)量級上說是相同的,所以設(shè)置一臺機為頻率檢測及頻率選擇控制發(fā)起的認知中心節(jié)點,另外的所有認知用戶為從節(jié)點,從節(jié)點無需進行頻率檢測,但需監(jiān)聽主節(jié)點的頻率選擇信令后才可發(fā)起通信。中心節(jié)點在信令時序內(nèi)發(fā)送通信所使用的頻率,并主動重構(gòu),從節(jié)點監(jiān)聽中心節(jié)點的信令,同時重構(gòu)。這樣保證認知無線通信能基本同步進入數(shù)據(jù)傳輸階段。數(shù)據(jù)傳輸階段通過計時控制,限時退出傳輸狀態(tài),重新循環(huán)。
5.2 動態(tài)接入及傳輸方法的物理層實現(xiàn)
5.2.1 信令
在信令時序內(nèi),認知無線電中心節(jié)點在選擇好下一傳輸頻率后,通過發(fā)送信令幀,通知從節(jié)點。信令幀屬于物理層的幀 payload 部分,屬于數(shù)據(jù)中的內(nèi)嵌結(jié)構(gòu)。信令開頭是標識 controlsignal,從節(jié)點解幀的時候先計算 CRC 正確與否,正確的話對三個頻率進行對比,以重復(fù)次數(shù)最多的頻率為重構(gòu)傳輸頻率。信令幀傳輸兩次,以保證從節(jié)點能夠接收到正確的重構(gòu)信令。
當然也有可能在信令時序內(nèi),從節(jié)點因為干擾而沒有接收到信令,從而錯失一次重構(gòu),這將導(dǎo)致中心節(jié)點已經(jīng)重構(gòu)到另一頻率了,從而失去通信的可能,認知無線電網(wǎng)絡(luò)將癱瘓。所以信令環(huán)節(jié)需要使用類似 tcp 的握手機制,實現(xiàn)一個簡化的機制:當從節(jié)點收到信令幀時,如果選定了頻率則回復(fù)一個 ACK 幀,當中心節(jié)點收到 ACK 幀后,不再發(fā)送信令,開始重構(gòu)。如果中心節(jié)點沒有收到 ACK 幀,則在等待兩個發(fā)送周期后重新發(fā)送信令,直到收到 ACK 幀。此處仍有較大的開發(fā)深度可以挖掘。
5.2.2 無線制式物理層
與 4.3.1章節(jié)中所述一樣,重構(gòu)無線制式時需要重新初始化 USRP 接收和發(fā)送,并根據(jù)信號處理的過程搭建流圖。
此處的初始化與 sensing 過程的初始化有個關(guān)鍵不同的地方即是此處需要初始化發(fā)送的狀態(tài)。此處的 sink 使用默認設(shè)置,只需實例化一個即可。
初始化 USRP 后,我們需要建立兩個流圖——發(fā)送、接收的流圖,兩個流圖以時分的方式工作,可以實現(xiàn)半雙工的通信方式。發(fā)送流圖實現(xiàn)的功能是將信息以一定的速率生成比特流通過 USRP 調(diào)制發(fā)送出去,而接收流圖實現(xiàn)的功能是將受到的無線信號解調(diào)生成信息。
以下是發(fā)送流圖:
注解:差分編碼并非必須,但是經(jīng)過差分編碼在接收端較易實現(xiàn)解調(diào),所以此處使用了差分編碼。 調(diào)制器的輸入是以 8bit 為單位的 byte 信息,信息,bytes2chunks 模塊將 byte 信息轉(zhuǎn)化為 k 維的向量。
以下是接收流圖:
接收過程幾乎就是發(fā)送過程的逆反。pre scaler 將信號映射到+-1 的范圍內(nèi)。AGCAutomatic Gain Control 自動增益控制,其作用是當弱信號輸入時,線性放大電路工作,保證輸出聲信號的強度;當輸入信號強度達到一定程度時,啟動壓縮放大線路,使輸出幅度降低。RRC filter 根升余弦匹配濾波器將信號轉(zhuǎn)化為符號,再通過 receiver 將符號的頻率相位同步解除。經(jīng)過解調(diào)后 slicer 將同步后的信息轉(zhuǎn)到格雷碼逆映射模塊,最終轉(zhuǎn)為 bit 信息流。bit 流經(jīng)過接入碼檢驗后,如果是接收信息則寫入 message 以供上層使用。
信號檢測流圖
Probe是 GNU Radio 自帶的幅值大小檢測的模塊,能方便的對當前收到的信號進行簡單的能量估算,其提供載波監(jiān)聽的判斷數(shù)據(jù),當其監(jiān)聽的信道能量數(shù)值大于某一閾值時,返回 False,我們認為信道有人占用,可供退避。
數(shù)據(jù)流圖實現(xiàn)了原理性的功能,我們并不需要重新將整個流程實現(xiàn),只需理解了原理后引用響應(yīng)的函數(shù),并正確配置即可。以下即是我們在傳輸過程中使用到的函數(shù).
5.2.3 數(shù)據(jù)傳輸
數(shù)據(jù)傳輸采用最小高斯頻移鍵控(GMSK)調(diào)制方式,GMSK 是一種典型的連續(xù)相位調(diào)制方式。其信號具有優(yōu)良的功率譜特性(功率譜旁瓣快衰減特性),在對信號頻帶嚴格限制的各種數(shù)字通信領(lǐng)域中得到廣泛的