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