認知無線電中的寬帶頻譜感知技術(shù)的FPGA實現(xiàn)
項目背景
項目名稱:認知無線電中的寬帶頻譜感知技術(shù)的FPGA實現(xiàn)
項目背景:隨著無線通信技術(shù)的飛速發(fā)展,無線用戶的數(shù)量急劇增加,可用頻譜資源變得越來越稀缺。當前的絕大多數(shù)頻譜資源都是采用固定的分配模式,由專門的頻率管理部門分配特定的授權(quán)頻段以供不同的通信業(yè)務(wù)使用。而對于工作在非授權(quán)頻段的通信業(yè)務(wù),由于近年來發(fā)展迅速,導(dǎo)致非授權(quán)頻段日趨飽和。認知無線電技術(shù)則解決了上述矛盾,它能自動檢測周圍的環(huán)境情況,智能調(diào)整自身參數(shù),在不對授權(quán)頻段造成干擾的情況下,檢測頻譜空洞并利用空閑頻段進行通信。以往的頻譜檢測大都是基于窄帶的檢測,極少對寬帶頻譜進行檢測,也沒有考慮噪聲不確定度對能量檢測的影響。 窄帶檢測一次只能檢測一個信道,大大削弱了頻譜感知的效率,不利于頻譜利用率的提高。例如,某一時刻檢測到某一信道被使用,CR用戶不能使用該信道,但是還有大量的空閑信道,由于一次只能檢測一個信道,導(dǎo)致了CR用戶不能使用該信道。而我們本項目中提出的寬帶頻譜檢測,一次能夠檢測多個信道,這樣就解決了以往窄帶頻譜檢測的局限性,使問題迎刃而解。能量檢測簡單易行且可以實現(xiàn)盲感知而被廣泛采用。能量檢測的決策門限依賴于環(huán)境噪聲的功率,理想的能量檢測往往認為噪聲功率是已知的,而實際環(huán)境中,噪聲功率是時變的,即噪聲具有不確定性,導(dǎo)致了能量檢測性能的降低。項目中我們將設(shè)計克服噪聲不確定度的算法模塊,并用FPGA實現(xiàn)。
項目內(nèi)容:
本項目主要研究認知無線電寬帶頻譜感知技術(shù)的FPGA實現(xiàn),采用認知無線電中最常用的檢測方法—能量檢測。首先對輸入信號進行抗混疊濾波,再進行A/D采樣得到一組數(shù)字信號,然后進行64點高速并行流水線FFT運算,進一步對運算的輸出的幅頻信號進行求模平方運算,求得每個頻段內(nèi)信號的功率,再對16個歷史功率數(shù)據(jù)求均值,最后執(zhí)行克服噪聲不確定度算法對噪聲方差變化進行補償,從而判斷頻帶的利用情況以選擇頻譜空洞進行通信。
項目目標:本項目旨在設(shè)計實現(xiàn)一個既能實現(xiàn)寬帶頻譜感知而又能克服噪聲不確定度的實用性寬帶頻譜感知實現(xiàn)平臺。
項目難點:如何設(shè)計高度優(yōu)化的并行流水線64點FFT算法和高速低延時的排序算法是設(shè)計的關(guān)鍵。
項目的開發(fā)意義: 認知無線電寬帶頻譜檢測技術(shù)的FPGA實現(xiàn)克服了噪聲不確定度對能量檢測的影響,解決了以前窄帶檢測效率較低、寬帶檢測性能較差的問題,使寬帶頻譜檢測技術(shù)真正達到實用化。
開發(fā)平臺:Spartan-6
項目系統(tǒng)方案
根據(jù)項目內(nèi)容,我們設(shè)計項目方案主要包含:
項目總體框架
能量檢測模塊
能量檢測算法
能量檢測FFT設(shè)計模塊
1) 高度優(yōu)化復(fù)數(shù)乘法器設(shè)計
2) 基四蝶形單元設(shè)計
3) 16點FFT的流水線實現(xiàn)
克服噪聲不確定度算法模塊
FCME算法
排序算法模塊實現(xiàn)
比較模塊實現(xiàn)
下面詳細介紹項目各模塊具體設(shè)計
(一) 項目總體框架
項目有兩個核心模塊:能量檢測模塊和克服噪聲不確定度模塊。系統(tǒng)主控負責各模塊的時序控制。
(二) 能量檢測模塊
能量檢測算法
能量檢測原理:能量檢測的出發(fā)點是信號加噪聲的能量大于噪聲的能量。首先設(shè)定一個門限,然后在一定頻帶范圍內(nèi)作能量積累,如果積累的能量高于門限,則說明有信號存在,如果低于門限,則說明僅有噪聲。直接對時域信號采樣求模,然后平方累積求和就可以得到能量檢測統(tǒng)計量Y(利用FFT轉(zhuǎn)換到頻域,然后對頻域信號求模平方也可以得到)。下圖為能量檢測框圖:
首先對輸入信號進行抗混疊濾波,再進行A/D采樣得到一組數(shù)字信號,然后進行64點高速并行流水線FFT運算,然后取平方求得檢測統(tǒng)計量Y即相應(yīng)頻段上的總能量,與設(shè)定的門限值進行比較,判斷頻譜利用情況。以前的頻譜檢測都是基于窄帶(窄帶指的就是所測的頻段的帶寬較小)的檢測,一次只能檢測一個信道,檢測效率低。而本項目中,我們要實現(xiàn)的是寬帶檢測,一次能夠檢測多個信道,提高了檢測性能,也有效地克服了噪聲不確定度的影響。
假設(shè)某信號傳輸需要2M帶寬,對于32信道就需要64M帶寬,根據(jù)采樣定理可知A/D采樣頻率至少應(yīng)為128M。這就要求我們設(shè)計的64點FFT運算要在0.5μs的時間內(nèi)完成,為了滿足高速性能,我們采用并行流水線FFT設(shè)計,能夠達到較高的時鐘頻率,更好的滿足實時處理的要求。
能量檢測FFT設(shè)計模塊
FFT內(nèi)核在FPGA中已經(jīng)包括,但是效率不高。為了滿足實時處理的要求,在這里我們自己設(shè)計了一個高度并行的、純流水線的64點基四FFT。
由上圖我們可以看出,64點FFT我們可以調(diào)用16點FFT,16點FFT調(diào)用基四蝶形完成運算?;牡芜\算單元的核心運算為加法和復(fù)數(shù)乘法,加法運算我們采用的是超前進位加法,運算速度較快。下面我們討論高度優(yōu)化復(fù)數(shù)乘法器設(shè)計
2.1高度優(yōu)化復(fù)數(shù)乘法器設(shè)計
復(fù)乘的公式
下圖為復(fù)數(shù)乘法器的并行實現(xiàn)框圖:乘法器為自己設(shè)計的8位輸入,16位輸出。圖中A+aj和B+bj為兩個設(shè)計輸入, 為輸出的實部, 為輸出的虛部。共需兩級流水。
圖四 復(fù)數(shù)乘法器
由于采用并行流水線FFT設(shè)計需要大量的slice,為了保證時鐘頻率達到要求的情況下最大可能的減少硬件開銷,我們對復(fù)數(shù)乘法器中的旋轉(zhuǎn)因子做了優(yōu)化處理。
實際操作中,我們發(fā)現(xiàn)我們可以對復(fù)乘的公式做出相應(yīng)的變形推導(dǎo)處理,可以看出其節(jié)約了乘法器的個數(shù),而我們知道乘法器占用硬件面積較大,而當FFT點數(shù)較大的時候會節(jié)省較多的資源。而當FFT點數(shù)確定時, 旋轉(zhuǎn)因子可以根據(jù)其周期性,對稱性和歐拉公式做出相應(yīng)變形,減少運算所需乘法器個數(shù),節(jié)省了較大的硬件資源。 [!--empirenews.page--]
2.2基四蝶形單元設(shè)計
由基四FFT運算原理可得:x(n)為一長度為M的有限長序列定義x(n)的N點離散傅里葉變換為
令: ;
;
;
;
則:
令
,即
圖五 基四FFT基本信號流圖
2.3 16點FFT的流水線實現(xiàn)
16點FFT是64點FFT的重要部分,以下為16點FFT的流水線實現(xiàn)圖。為了保證在滿足系統(tǒng)時鐘頻率要求的情況下,最大可能的減少硬件開銷,我們利用旋轉(zhuǎn)因子
的周期性和對稱性對16點FFT進行了乘法器和旋轉(zhuǎn)因子的優(yōu)化,節(jié)約了較多的slice。
圖六16點FFT的流水線實現(xiàn)圖
排序算法模塊實現(xiàn)
排序算法是FCME算法的核心部分,高速有效的排序是FCME算法執(zhí)行的關(guān)鍵技術(shù)。在這里我們提出了改進的排序方案,來提高排序系統(tǒng)的速度。因為我們設(shè)計的系統(tǒng)框架是通過流水線方式實現(xiàn)的,為了提高時鐘速度,我們采用一種新的方案,該方案可以有效地提高速度性能,讓排序的平均時間算法復(fù)雜度為O(N),排列n個數(shù)據(jù)需要n個時鐘周期,比傳統(tǒng)的那些排序算法更有效,而且結(jié)構(gòu)簡單易于實現(xiàn)。
該并行排序機制示意圖是如下圖所示,整個處理單元,它可以用N個時鐘周期排列N個數(shù)據(jù),D觸發(fā)器來執(zhí)行產(chǎn)生的N個周期必要的數(shù)據(jù)存儲和傳送, N級級聯(lián)子模的包括比較器,與非門,D觸發(fā)器,多路復(fù)用器。其中n表示第n子模塊,n = 1,..N,輸入數(shù)據(jù),使能信號。輸入數(shù)據(jù)是串行的,整個排序算法如下:
首先,所有的D觸發(fā)器初始化為最小值。輸入數(shù)據(jù)與隊列子模塊中D觸發(fā)器的輸出數(shù)據(jù)進行比較,決定是否使能對應(yīng)子模塊的D觸發(fā)器。由多路復(fù)用器選擇數(shù)據(jù)插入到那一級子模塊,同時后面子模塊中的數(shù)據(jù),依次移入下一級子模塊,前面子模塊的數(shù)據(jù)不變。 重復(fù)n次使n個數(shù)據(jù)全部插入其中,從而得到有序的隊列。
比較模塊實現(xiàn)
基于公式(3),我們看出,F(xiàn)CME算法的實現(xiàn)還需要一個比較電路,比較Q(K+1)與前k項的Q(i)和的大小。設(shè)計的比較模塊如下:
控制電路提供一個初值控制FIFO讀取k個信道的能量值,然后通過一個加法電路進行能量求和,將前k個信道的能量和與第k+1個信道能量通過一個比較器進行大小比較。若前者大于后者,說明第k+1個信道為空閑信道,否則繼續(xù)由控制電路將k值加1,繼續(xù)進行比較。
項目小結(jié)
在認知無線電網(wǎng)絡(luò)中,頻譜檢測的本質(zhì)是由認知用戶來判斷某信道中是否存在授權(quán)用戶,從而找到可以利用的頻譜空穴。同時,認知用戶需要通過頻譜檢測判斷授權(quán)用戶的再次出現(xiàn),并進行避讓,以避免或降低對授權(quán)用戶的干擾。寬帶頻譜感知的FPGA實現(xiàn)將解決窄帶檢測檢測效率較低的問題,克服噪聲不確定度對檢測性能的影響,使寬帶頻譜檢測技術(shù)實用化。