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