趙歡歡+張潤(rùn)生
摘要:信道化是前端接收子系統(tǒng)的一部分,用于區(qū)分不同的用戶(hù)或信道。現(xiàn)代信道化采用先進(jìn)的多項(xiàng)濾波器組來(lái)同時(shí)處理多個(gè)信道,允許同時(shí)下變頻、降采樣和濾波。由于傳統(tǒng)硬件的限制,在信道數(shù)和吞吐量方面限制很大。本文基于GPU技術(shù),將多相濾波數(shù)學(xué)模型映射到并行計(jì)算單元,實(shí)現(xiàn)了具有多信道、高吞吐量等特征的信道化方法,并在短波系統(tǒng)中驗(yàn)證使用。
關(guān)鍵詞:多相濾波;信道化;CUDA
中圖分類(lèi)號(hào):TP391.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)06-0162-02
通信接收系統(tǒng)分為2個(gè)主要子系統(tǒng):前端和后端系統(tǒng)。前端負(fù)責(zé)信道估計(jì)、下變頻和變采樣。后端負(fù)責(zé)信道、信源編碼[1]。其中,模擬前端負(fù)責(zé)下變頻,數(shù)字前端將信道下變頻到基帶以待處理[1]。變頻,濾波是信道化的主要任務(wù)。
信道化是分離多用戶(hù)或信道的處理過(guò)程,主要有3個(gè)任務(wù):下變頻、降采樣和通過(guò)濾波拒絕臨近信道。現(xiàn)代信道化中多相濾波器組技術(shù)集成運(yùn)用內(nèi)積和離散傅里葉變換來(lái)同時(shí)完成不同任務(wù),同時(shí)多相濾波器可以實(shí)現(xiàn)濾波連續(xù)變換采樣。其提供的矩陣結(jié)構(gòu),用于內(nèi)積操作,適合并行計(jì)算。
本文利用通用GPU編程語(yǔ)言CUDA在采用輕量級(jí)線程和多核計(jì)算展現(xiàn)復(fù)雜的并行信號(hào)處理,通過(guò)數(shù)據(jù)并行實(shí)現(xiàn)多相濾波器信道化方法。
1 信道化
1.1 多相濾波信道化原理
數(shù)字信道化[2]通過(guò)多相濾波器組實(shí)現(xiàn),多相濾波可以把整個(gè)采樣頻帶(0~fs)劃分成若干個(gè)并行的信道輸出,并通過(guò)抽取,將輸出的各個(gè)子帶信號(hào)變?yōu)榈退俾实幕鶐盘?hào)。
1.2 多相濾波參數(shù)設(shè)計(jì)
為了實(shí)現(xiàn)信號(hào)無(wú)盲區(qū)接收,避免信道間頻譜混疊,相鄰子信道要有50%的重疊,同時(shí)采用非臨界抽樣。因?yàn)樽有诺乐丿B50%,因此可將抽取倍數(shù)D取為信道數(shù)的1/2。信道間隔為,信道化濾波器表達(dá)式為:
2 CUDA
CUDA(Compute Unified Device Architecture,統(tǒng)一計(jì)算設(shè)備框架)是NVIDIA于2007年推出,將GPU作為數(shù)據(jù)并行計(jì)算設(shè)備的軟硬件體系,采用SIMT模型,將計(jì)算任務(wù)映射為大量相互獨(dú)立且可并行執(zhí)行的線程,并由硬件調(diào)度運(yùn)行。CUDA將這些線程以網(wǎng)格(Grid)的形式進(jìn)行組織和管理,網(wǎng)格又進(jìn)一步劃分成線程塊(block),線程塊有若干線程組成。線程塊間的執(zhí)行是相互獨(dú)立的,可并行執(zhí)行。這樣,在kernel函數(shù)中就存在著兩層并行性:Grid中的block間的并行和 block中的thread并行。
CUDA編程模型將CPU作為主機(jī)端,GPU做為設(shè)備端。CPU負(fù)責(zé)邏輯性較強(qiáng)的事務(wù)處理和串行計(jì)算,而GPU負(fù)責(zé)高度并行化的數(shù)據(jù)計(jì)算。GPU不能獨(dú)立運(yùn)行,程序的執(zhí)行由CPU端控制。CPU啟動(dòng)程序運(yùn)行,并將適用于并行計(jì)算部分交給GPU執(zhí)行(kernel函數(shù)),GPU執(zhí)行完畢后,結(jié)果返回CPU。
3 數(shù)字信道化的GPU設(shè)計(jì)
本文按照CUDA編程模型進(jìn)行映射,算法偽代碼如下所示。
(1)設(shè)置信道化路數(shù);
(2)拷貝信道化濾波器系數(shù)至GPU;
(3)while 滿(mǎn)足計(jì)算數(shù)據(jù)量 do;
拷貝原始數(shù)據(jù)至GPU;
GPU降采樣抽取成M*N矩陣;
GPU多路濾波;
按列CUFFT計(jì)算;
結(jié)果輸出至CPU;
(4)end while。其中,數(shù)據(jù)降采樣抽取、多路濾波采用CUD Akernel函數(shù)實(shí)現(xiàn),按列DFT計(jì)算采用CUFFT庫(kù)實(shí)現(xiàn)。降采樣抽取kernel算法采用2維結(jié)構(gòu)輸出實(shí)現(xiàn),根據(jù)矩陣的行列索引,通過(guò)統(tǒng)一的公式計(jì)算得到輸入序列的索引,進(jìn)行矩陣形式抽取。
對(duì)多路濾波算法進(jìn)行GPU優(yōu)化實(shí)現(xiàn)時(shí),網(wǎng)格層實(shí)現(xiàn)多信道并行,線程塊層實(shí)現(xiàn)卷積計(jì)算,線程塊內(nèi)一次性將所需濾波器系數(shù)、初始狀態(tài)、數(shù)據(jù)讀取至共享緩存中,避免重復(fù)讀取。kernel偽代碼如下所示:
(1)聲明GPU共享緩存;
(2)線程塊共同讀取濾波器系數(shù)
(3)當(dāng)前索引=線程ID
(4)while當(dāng)前索引<數(shù)據(jù)長(zhǎng)度do
線程塊共同讀取當(dāng)前濾波數(shù)據(jù)
if當(dāng)前索引<線程塊大小then
線程塊共同讀取初始狀態(tài)
else then
線程塊共同讀取當(dāng)前狀態(tài)
各線程相同指令卷積計(jì)算
當(dāng)前索引按線程塊大小累計(jì)
(5)線程塊共同將當(dāng)前狀態(tài)寫(xiě)入寄存器
end while
4 仿真試驗(yàn)
為了檢驗(yàn)本文實(shí)現(xiàn)的信道化方法,采用采樣率6.5536MHz,瞬時(shí)帶寬4MHz的采樣數(shù)據(jù),在NVIDIA K20卡,CUDA 6.0版本上編程驗(yàn)證。
本實(shí)驗(yàn)設(shè)計(jì)了2組,信道數(shù)128對(duì)應(yīng)信道帶寬51.2KHz,信道數(shù)1024對(duì)應(yīng)信道帶寬6.4KHz,為了驗(yàn)證本方法的通用性及與實(shí)體接收機(jī)接口的一致性,實(shí)驗(yàn)設(shè)計(jì)采用了固定信道輸出512采樣點(diǎn),結(jié)果見(jiàn)表1。
5 結(jié)語(yǔ)
本文針對(duì)硬件實(shí)現(xiàn)信道化,采樣率固定、信道數(shù)固定等限制,應(yīng)用GPU并行技術(shù),在通用平臺(tái)上實(shí)現(xiàn)了具有信道數(shù)可設(shè)、高吞吐量等特征的信道化方法。該方法在短波系統(tǒng)中驗(yàn)證使用,結(jié)果滿(mǎn)足預(yù)期。
參考文獻(xiàn)
[1]F.J. Harris, Multirate Signal Processing for Communication Systems. Prentice Hall, 2004.
[2]楊書(shū)玲,王玉林,趙研.寬帶數(shù)字信道化EDA設(shè)計(jì)[J].無(wú)線電工程,2007,37,(6):23-25.
Abstract:A channelizer is a part of a receiver front-end subsystem, that separates different users or channels. A modern channelizer uses advantages of polyphase filter banks to process multiple channels at the same time, allowing down conversion, downsampling, and filtering all at the same time. However, due to limitations imposed by hardware, there are disadvances in the count of channels and throughput. This paper uses GPU , provides a multi-channel, high-throughput of channelizer, that is uesed in HF reciver system.
Key Words:polyphase filter; channelizer; CUDAendprint