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