羅立宇 龔曉峰 雒瑞森
摘? 要: 針對廣播頻段信道數(shù)量較多、信道帶寬較窄的場景,給出一種基于乘法器復(fù)用的信道化接收機的高效FPGA實現(xiàn)方案,并詳細說明了信道化處理模塊。方案采用流水線結(jié)構(gòu),復(fù)用較少的乘法器,完成所有信道的信道化處理,解決了信道數(shù)量眾多時乘法器使用過多的問題。不僅能夠保證處理的實時性,還大大減少了信道化接收算法硬件實現(xiàn)中的關(guān)鍵資源。最后通過硬件仿真,驗證了該信道化處理模塊僅需要復(fù)用8個復(fù)數(shù)乘法器IP核即可完成128個信道的多相濾波。例化并使用2個信道化處理模塊即可完成廣播頻段的信道化處理,并運行在102.4 MHz的系統(tǒng)時鐘頻率下。
關(guān)鍵詞: 信道化接收機; 乘法器復(fù)用; 廣播頻段; 流水線結(jié)構(gòu); 多相濾波; 數(shù)據(jù)驗證
中圖分類號: TN914.3?34? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)09?0010?04
Design and application of channelized receiver based on multiplier reuse
LUO Liyu, GONG Xiaofeng, LUO Ruisen
(College of Electrical Engineering, Sichuan University, Chengdu 610000, China)
Abstract: For the fact that the broadcasting band has more channels and narrow channel bandwidth, an efficient FPGA implementation scheme of channelized receiver based on multiplier reuse is proposed. The channelized processing module is elaborated. In the scheme, pipeline architecture is adopted and fewer multipliers are reused to complete the channelization of all channels, which solves the problem of requiring too many multipliers when there are a large number of channels. The scheme can not only guarantee real?time processing, but also greatly reduces application of the key resources during the hardware implementation when using the channelized receiving algorithm. It is verified by hardware simulation that the channelized processing module only needs to reuse 8 complex multiplier IP cores to complete polyphase filtering of 128 channels. The channelization of broadcasting band can be achieved by instantiating and using two channelized processing modules, and the channelized processing module can operate at the system clock frequency of 102.4 MHz.
Keywords: channelized receiver; multiplier reuse; broadcasting band; pipeline architecture; polyphase filtering; data verification
0? 引? 言
隨著社會科技的進步,頻譜資源也越來越緊張。傳統(tǒng)的單通道和并行多通道接收機無法勝任同時對整個取樣帶寬內(nèi)的信道進行分析、接收及解調(diào)。因此,信道化接收機的重要性就逐漸體現(xiàn)出來。這種接收機是一種能夠完成全概率截獲的接收機,能夠通過信道化的方式同時對整個瞬時處理帶寬內(nèi)的信號進行檢測、處理和接收解調(diào)[1]。在現(xiàn)代的電子戰(zhàn)以及移動通信領(lǐng)域,信道化接收機都有著廣泛的應(yīng)用。在未來,對于頻譜空穴[2]的檢測,信道化接收機也是最佳之選。
近年來,關(guān)于信道化接收機的研究有很多。文獻[3]提出了一種改進的信道化結(jié)構(gòu)和相應(yīng)的信道檢測方法,文獻[4]通過對信道的二次劃分處理,降低了算法的復(fù)雜度。文獻[5]在傳統(tǒng)的多項濾波抽取算法基礎(chǔ)上,對卷積公式進行多相推導(dǎo),得到一種不降低數(shù)據(jù)采樣率的多相濾波方法。文獻[6]在推導(dǎo)任意個采樣因子信道化模型的基礎(chǔ)上,對各多相支路進行了優(yōu)化,提高支路的吞吐率。文獻[7]得到了基于IDFT數(shù)字信道化算法。研究算法的論文較多,但少有針對具體實現(xiàn)時信道數(shù)較多將占用大量乘法器問題的研究。
現(xiàn)主要針對廣播頻段信道數(shù)量較多、帶寬較窄的場景,提出了一種基于乘法器復(fù)用的信道化接收算法的FPGA高效實現(xiàn)方案。
1? 信道化接收算法的基本原理
信道化接收算法基于多相濾波[8]和快速傅里葉變換[9],該算法通過在低速率時鐘下的并行實時處理,可高效實現(xiàn)多通道的并行處理,并大大緩解高速信號實時處理的速度瓶頸。若要求采樣帶寬內(nèi)所有信號都能同時正確地被信道化處理,則各個信道的帶寬必須是相同的,且等間隔排列,如圖1所示(假設(shè)信道個數(shù)為128)。
假定整個帶寬的取樣信號為[S(n)],需要得到某個信道的信號[yk(n)],傳統(tǒng)的方式為:先將該信號移頻到基帶,然后利用低通濾波器濾除其他通道的信號。式(1)可以表明該過程:
[yk(n)=S(n)ejωkn?h(n)] (1)
式中:[ωk]為搬移頻率;[h(n)]為低通濾波器單位抽樣響應(yīng)。
以偶數(shù)倍抽取倍數(shù)、復(fù)數(shù)型輸入信號為例,信道化處理推導(dǎo)如下:
[yk(m)=S(n)ejωkn*h(n)n=mD=i=-∞+∞S(n-i)ejωk(n-i)h(i)n=mD=i=-∞+∞S(mD-i)ejωk(mD-i)h(i)=p=0D-1xp(m)e-jωkp] (2)
其中:
[xp(m)=i=-∞+∞S(mD-iD-p)h(iD+p)ejωk(mD-iD)] (3)
將[ωk=k-D-122πD]代入式(2),得:
[yk(m)=p=0D-1xp(m)(-1)pe-jπDpe-j2πDkp=p=0D-1x′p(m)e-j2πDkp=DFT[x′p(m)]] (4)
于是可以得到偶數(shù)信道的復(fù)信號信道化接收機結(jié)構(gòu)模型,如圖2所示。
2? FPGA硬件實現(xiàn)
2.1? 應(yīng)用場景
國內(nèi)調(diào)頻廣播(除校園廣播外)頻段為87.5~108.0 MHz,且包含一位小數(shù),信號帶寬小于200 kHz。單一區(qū)域,如某市內(nèi),為了防止頻道間互相干擾,頻道的間隔一般大于0.1 MHz。
本文給出的信道化接收機模型能夠針對87.7~107.8 MHz的所有廣播信號進行接收與處理。
2.2? 總體設(shè)計框圖
將87.7~107.8 MHz的廣播信號分為兩類:第一類的小數(shù)位為奇數(shù),第二類的小數(shù)位為偶數(shù),分別簡稱為奇類和偶類。系統(tǒng)的時鐘頻率為102.4 MHz。
信道化接收機總體設(shè)計框圖如圖3所示。
ADC模塊以97.7 MHz和97.8 MHz的中心頻點,20.0 MHz的中頻帶寬進行實時采樣,并將復(fù)信號串行輸入到后端信道化處理模塊,數(shù)據(jù)速率為25.6 MHz。中心頻點97.7 MHz采樣到的信號用來對偶類信號做信道化處理,97.8 MHz采樣到的信號用來對奇類信號做處理。信道帶寬200 kHz,可以得到奇類與偶類信號的信道化分布,如圖4所示。
雖然兩類信號信道之間存在混疊,但是一般情況下,廣播信號的頻點間隔大多大于0.1 MHz,即兩個廣播信號不會存在于相鄰的兩個奇偶頻點之上。且奇類信號在偶類信道化處理模塊中會進入兩個相鄰偶類信道,成為“誤”信號,但進入的部分處于低通濾波器的過渡帶,甚至是阻帶,因而功率會降低,對于偶類信號也是如此,只需要在功率檢測模塊中設(shè)置合適的門限,就可以排除這樣的信號。
2.3? 信道化處理模塊
該模塊是信道化接收機中的關(guān)鍵模塊之一。由信道化接收算法模型,硬件實現(xiàn)的關(guān)鍵在于信號的延時、抽取、系數(shù)的相乘及濾波。后端的DFT可以使用FFT的IP核實現(xiàn)。信道個數(shù)較多的情況下,復(fù)數(shù)乘法器將占據(jù)較多的資源。因而,要節(jié)約資源并盡可能保證信號處理的實時性,關(guān)鍵點在于將結(jié)構(gòu)模型與硬件特點充分結(jié)合。為了保證信號處理的實時性,本文采用流水線的設(shè)計方法。設(shè)計框圖如圖5所示。
為方便說明設(shè)計方案,設(shè)有以下場景:系統(tǒng)時鐘頻率為102.4 MHz;復(fù)信號輸入速率為25.6 MHz,位寬為32 bit(高16 bit為I信號,低16 bit為Q信號);信道個數(shù)為128,信道帶寬為200 kHz;原型低通濾波器系數(shù)為4 096階。
值得一提的是,由于后端FFT的IP核計算點數(shù)是固定的,為2的冪次倍。為了包含87.7~107.8 MHz所有200 kHz信道,并滿足FFT的IP核設(shè)置,故將抽取倍數(shù)定為128,也即128個信道(兩側(cè)若干信道沒有信號)。
2.4? 乘法器復(fù)用子模塊
此模塊是本設(shè)計的主體部分,主要包括:8個雙口RAM核及其地址控制塊,8個ROM及其地址控制塊,8個復(fù)數(shù)乘法器IP核。乘法器復(fù)用子模塊的細節(jié)示意圖如圖6所示。
8個雙口RAM的深度均為512,寬度為32 bit,每個單元存儲一個IQ樣點,A口作為輸入,B口作為輸出。它們的寫地址(A口)均為0~511的循環(huán),控制好A口的寫使能,使得寫滿雙口RAM1后,再對雙口RAM2進行寫操作,……,寫滿雙口RAM8后再對RAM1進行寫操作,以此類推。系統(tǒng)時鐘頻率為102.4 MHz,輸入信號的速率為25.6 MHz,每個新的數(shù)據(jù)樣點有4個時鐘周期用來寫入,本文的設(shè)計在新數(shù)據(jù)到來的第一個時鐘周期,A口寫使能信號wren_a置1,以完成寫入(其余時候置0),保證后續(xù)不會產(chǎn)生讀寫沖突。同時,寫入一個新數(shù)據(jù)樣點的4個時鐘周期可以從一個雙口RAM中讀取4個舊的數(shù)據(jù),8個雙口RAM共可讀出32個舊的數(shù)據(jù)。
寫入地址是順序的,但讀取順序是跳變的,且8個雙口RAM使用相同的讀地址,同時,讀出相應(yīng)地址的數(shù)據(jù)。讀取規(guī)則為:當針對某RAM的某地址[n]作寫入操作時,按照[n]+128,[n]+256,[n]+384,[n]的地址順序讀取8個RAM中的舊數(shù)據(jù),若計算后地址大于511,則減去511。4個時鐘內(nèi),第一個時鐘已完成對[n]地址寫入,第4個時鐘才對[n]地址讀取,故不會產(chǎn)生讀寫沖突。
按照上述方式并行讀取的32個數(shù)據(jù)還需要按照時間順序重新排列,以正確地完成濾波操作。排序的方式有舉例說明,當針對第2個RAM中的128地址進行寫操作時,讀取并排序的方式如圖7所示。圖7中,8個雙口RAM下方的數(shù)字代表順序,其中,1表示時間上最舊,32表示時間上最新,重新排列后即可形成有序的時間序列。
重新排列的方式是固定的,可以將排列的方式枚舉,于是只需要一個時鐘周期,排序模塊可以將8個并行輸入數(shù)據(jù)重新排序后并行輸出,部分仿真結(jié)果細節(jié)如圖8所示。
根據(jù)多相濾波原理,4 096階原型濾波器對于128信道來說,每一相有32個系數(shù)。根據(jù)復(fù)信號的信道化接收機結(jié)構(gòu)模型,每個信道的信號需要先后與±1,[(-1)D-1e-jπD(D-1)]相乘,并由[hD-1(m)]完成濾波??深A(yù)先將每個信道的[hD-1(m)]與[(-1)D-1e-jπD(D-1)]相乘,合并成8組,每組512個32 bit位寬的復(fù)數(shù)系數(shù)(高16位為實部,低16位為虛部),存入8個512深度32 bit位寬的ROM中。如圖9所示,每組系數(shù)存入其對應(yīng)行的8個ROM的32個地址中。存入前,使用Matlab對系數(shù)預(yù)處理,每個時鐘從第[n]個ROM中讀取的系數(shù)能夠與從第[n]個RAM中讀取的樣本數(shù)據(jù)對應(yīng)上,接著由一復(fù)數(shù)乘法器IP核實現(xiàn)復(fù)數(shù)相乘。串行數(shù)據(jù)流與±1的操作可以置于FFT模塊后。
復(fù)數(shù)乘法器IP核的輸入位寬為16 bit,根據(jù)復(fù)數(shù)相乘原理,16 bit有符號數(shù)與16 bit有符號數(shù)相乘至多為32 bit,32 bit有符號數(shù)與32 bit有符號數(shù)相加至多為33 bit。另外,該復(fù)數(shù)乘法器后端需完成32個33 bit有符號數(shù)的累加,需預(yù)留5位以防止溢出,可得該復(fù)數(shù)乘法器的輸出位寬需設(shè)置成38 bit。
考慮到FFT的IP核輸入位寬有限制,還需要將累加模塊的輸出截位。截位模塊的部分仿真結(jié)果細節(jié)如圖10所示。
由于數(shù)據(jù)速率低于系統(tǒng)時鐘頻率,故需要一個FIFO對數(shù)據(jù)進行緩存,以便后端FFT能夠一次性讀完128個數(shù)據(jù)。
3? 實測數(shù)據(jù)驗證
本文對信道化處理模塊進行基于Verilog HDL語言的編程,并對實際采集到的兩段廣播頻段信號(分別以97.7 MHz,97.8 MHz為中心頻點,20.0 MHz為中頻帶寬)進行基于ModelSim軟件的仿真。
使用Matlab對奇、偶信道化處理模塊得到的各128個信道做平均幅值圖,如圖11所示。
使用Matlab同樣對20 MHz的寬帶信號做信道化處理,得到某廣播信號軟硬件仿真結(jié)果的時域?qū)Ρ?,如圖12所示,并使用Matlab對未經(jīng)信道化處理的數(shù)據(jù)作FFT,根據(jù)頻譜圖得到各廣播信號所在頻點,對比奇、偶類信道各信號中心頻點,能夠完全對應(yīng),并且沒有信號遺漏。
從圖12可以看出,硬件仿真結(jié)果與Matlab基本一致,收聽效果相當,由此可見,本文設(shè)計基本達到預(yù)期,誤差是定點運算的量化誤差導(dǎo)致的。
4? 結(jié)? 論
本文對信道化算法結(jié)構(gòu)模型進行研究,并結(jié)合實際工程應(yīng)用,將信號的偶數(shù)倍抽取及延時與雙口RAM結(jié)構(gòu)相結(jié)合,提出了一種復(fù)用復(fù)數(shù)乘法器的信道化處理模型。該復(fù)用乘法器的模型需要系統(tǒng)時鐘頻率與數(shù)據(jù)速率存在整數(shù)倍的關(guān)系,以實現(xiàn)高時鐘頻率、低數(shù)據(jù)速率情景下的資源復(fù)用。
參考文獻
[1] 樓才義,徐建良,楊小牛.軟件無線電原理與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2014:95?96.
[2] 曾莉.認知無線電關(guān)鍵頻譜感知技術(shù)及應(yīng)用分析[J].通信與信息技術(shù),2017(1):59?62.
[3] 呂衛(wèi)祥,徐鵬,曹元將.一種改進的數(shù)字信道化結(jié)構(gòu)設(shè)計及檢測方法[J].現(xiàn)代防御技術(shù),2018,46(3):73?79.
[4] 聶慧鋒,翟羽佳.一種高效多級信道化數(shù)字接收機的設(shè)計與實現(xiàn)[J].雷達與對抗,2018,38(3):47?52.
[5] 孫健,韓文俊,凌元.基于多相濾波的高速濾波器FPGA設(shè)計[J].遙測遙控,2018,39(5):27?32.
[6] 周新星,謝祖剛,邱耀明,等.電子戰(zhàn)寬帶數(shù)字信道化的優(yōu)化設(shè)計方法[J].航天電子對抗,2018(5):46?48.
[7] 眭超亞,唐毅謙,羅正華,等.基于IDFT結(jié)構(gòu)的多通道信道化算法研究[J].成都大學(xué)學(xué)報(自然科學(xué)版),2018,37(4):387?390.
[8] 李婉婉.多相濾波技術(shù)研究及在多信道接收機中的應(yīng)用[D].北京:北京郵電大學(xué),2018:20?21.
[9] 周秀珍,肖雷.基于快速傅里葉變換的實時頻譜分析方法研究[J].信息通信,2018(8):21?22.