国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CUDA架構(gòu)的AMTI算法實現(xiàn)

2018-07-23 02:15王仁志宋萬杰
電子科技 2018年8期
關(guān)鍵詞:雜波線程濾波器

金 莉,王仁志,宋萬杰

(西安電子科技大學 雷達信號處理國家重點實驗室,陜西 西安710071)

雷達所處的大環(huán)境中存在各種雜波,與目標信號相比,雜波往往具有更大的功率,所以雷達信號處理的關(guān)鍵在于從雜波背景中檢測出目標。雷達信號處理系統(tǒng)中,自適應(yīng)動目標顯式(AMTI)因為對靜雜波和動雜波都有抑制能力,成為常用的雜波抑制方式。實現(xiàn)AMTI技術(shù)的方法主要有兩種:一種是兩級動目標顯示級聯(lián)形式實現(xiàn),讓第一級凹口位于多普勒零頻處,抑制靜止雜波;第二級設(shè)計凹口抑制動雜波;另一種是設(shè)計雙凹口雜波抑制濾波器[1]。

本文采用NVIDIA的圖形處理單元(Graphics Processing Unit ,GPU)來實現(xiàn)AMTI算法。自GPU概念提出以來,GPU峰值性能一直以超過摩爾定律的速度增加,平均每6個月翻一番[2-3]。相對CPU而言,GPU具有浮點計算能力強、性價比高、能耗低等優(yōu)點,被廣泛用于通用計算中。特別是統(tǒng)一設(shè)備架構(gòu)(Compute Unified Device Architecture ,CUDA)的發(fā)布,將圖形硬件和應(yīng)用接口程序進行封裝,使開發(fā)人員可以直接采用C語言進行編程,方便易學[4]。以GPU為平臺,采用CUDA技術(shù),在單指令多數(shù)據(jù)(Single Instruction Multiple Data,SIMD)編程模型下實現(xiàn)AMTI算法,發(fā)揮GPU強大的計算能力,提高運算效率。

1 AMTI算法

為了濾除雜波,需要在雜波信號位置形成凹口。因為動雜波不位于零頻附近,所以可以在動雜波譜位置形成凹口,也可以將動雜波移動至凹口附近來濾除動雜波。即有兩種方法實現(xiàn)AMTI技術(shù):一種是將雜波信號譜中心移到零頻凹口處,然后采用MTI濾波器進行濾波處理;另一種是將抑制雜波的凹口移動至雜波譜中心直接實現(xiàn)濾波,這種方法需要事先設(shè)計凹口位于不同頻率點的濾波器,并且將濾波器權(quán)系數(shù)存儲在一個庫里,稱為權(quán)系數(shù)庫法。在工程中常使用這種方法,首先設(shè)計出凹口位于零頻處的MTI濾波器,然后在頻率軸平移得到濾波器權(quán)系數(shù)庫,當估計到雜波頻譜中心后,直接調(diào)用對應(yīng)的濾波器進行對消處理[5-6]。本文采用基于權(quán)系數(shù)庫實現(xiàn)的AMTI算法,圖1為該算法的原理框圖。

圖1 基于權(quán)庫法的AMTI原理框圖

基于權(quán)系數(shù)庫的AMTI算法的思想是:先估計動雜波的多普勒范圍f∈(fdmin,fdmax)。然后,在這個估計的多普勒范圍內(nèi),等間隔的設(shè)計一組MTI雜波抑制濾波器,最后將該雜波抑制濾波器的濾波器系數(shù)直接放入存儲設(shè)備中備用[7-8]。具體實現(xiàn)過程中,首先需要確定調(diào)用的MTI濾波器,具體方法為:先估計雜波的多普勒中心頻率f,然后依據(jù)f調(diào)用對應(yīng)的MTI雜波抑制濾波器濾波。因此,基于權(quán)系數(shù)庫的AMTI濾波器的設(shè)計重點在于準確估計動雜波的多普勒中心頻率f。在實際的工程實現(xiàn)中,動雜波多普勒中心頻率f通過計算相鄰脈沖間相位差得到。

考慮到雷達回波信號x(t)的表達式為

x(t)=A(t)ej(wdt+φ0)+n(t)

(1)

式中,A(t)為回波信號的幅度;wd為雜波的多普勒頻率,并有wd=2πfd;w0表示初回波信號的初始相位;加性噪聲n(t)在不同脈沖間互不相關(guān)。假設(shè)Tr為脈沖的重復周期,那么雷達接收到的下一個Tr的發(fā)射脈沖回波為

x(t-Tr)=A(t-Tr)ej(wd(t-Tr)+φ0)+n(t-Tr)

(2)

那么,兩次回波信號的相關(guān)函數(shù)可表示為

Rxx=E[x(t)x*(t-Tr)]=E[A(t)A(t-Tr)]ejwdTr

(3)

式(3)中A(t)為窄帶信號,因此,可以得出式E[A(t)A(t-Tr)]=E[|A(t)|2]的結(jié)果為實數(shù)。因此,雜波的多普勒頻率wd為

(4)

進一步

(5)

式(5)中,i表示不同脈沖回波信號序列。采用相鄰兩個脈沖間相位差的方法,得到f表達式為

(6)

為了準確估計雜波多普勒中心頻率,實際工程中常采用質(zhì)心法,質(zhì)心法就是將回波信息中的幅度值也考慮在內(nèi),多次估計的雜波多普勒中心頻率,最后進行平滑處理[9]。進一步提高f估計的準確性。

2 CUDA編程模型

CUDA編程模型將CPU作為主機(Host),GPU作為協(xié)處理器(Co-processor)或者設(shè)備(Device)。在一個系統(tǒng)中可以存在若干個主機和設(shè)備[10]。在CUDA編程模中,CPU和GPU協(xié)同工作,CPU主要負責整個串行運算的執(zhí)行,控制算法執(zhí)行流程,初始化數(shù)據(jù)將其傳遞到GPU,GPU接收CPU傳遞過來的數(shù)據(jù),進行并行計算,計算完成后,將計算結(jié)果傳遞回主機[11-12]。另外,GPU和CPU擁有各自獨立的存儲空間,CPU端為主機內(nèi)存,GPU端為顯存,GPU對顯存的操作一般與CPU對內(nèi)存操作一樣,需要調(diào)用CUDA API中的內(nèi)存管理函數(shù)。

運行在GPU上的函數(shù)稱為核函數(shù)(Kernel),核函數(shù)并不是一個完整的程序,而是整個CUDA程序中一個可以被并行執(zhí)行的步驟[13-15]。如圖2所示,一個完整的CUDA程序是由主機端的串行代碼和設(shè)備端的并行函數(shù)Kernel(·)共同組成,各個并行函數(shù)之間為串行關(guān)系。

圖2 CUDA并行編程模型

3 AMTI算法實現(xiàn)流程

為滿足雷達系統(tǒng)要求,本算法采用5參差A(yù)MTI,濾波器間隔是5 Hz,從0~90 Hz共19組AMTI雙凹口濾波器,圖3為AMTI算法實現(xiàn)流程圖。

圖3 基于權(quán)系數(shù)庫的AMTI算法實現(xiàn)流程圖

基于CUDA架構(gòu)的AMTI算法實現(xiàn),主要流程如下:

步驟1在CPU上進行數(shù)據(jù)初始化,內(nèi)存以及顯存分配,將準備就緒的數(shù)據(jù)通過CUDA API中的拷貝函數(shù)拷貝至GPU;

步驟2首先在GPU上完成雜波譜中心f的估計,并判斷頻率值的正負值,將該值存放在單獨數(shù)組中;

步驟3接下來在GPU上進行AMTI處理,具體處理流程如圖3所示,最終實現(xiàn)抑制雜波的目的;

步驟4再次調(diào)用CUDA API中的拷貝函數(shù)就計算結(jié)果從設(shè)備拷貝回主機;

步驟5在CPU上釋放分配的內(nèi)存以及顯存。

圖4為采用CUDA編程架構(gòu)的AMTI算法實現(xiàn)流程圖。

GPU上實現(xiàn)AMT處理,主要是抽取AMTI中的并行部分,分配到各線程塊中的線程進行執(zhí)行。就雜波譜中心估計來說,包含脈沖數(shù)和數(shù)據(jù)量兩層循環(huán),但GPU中只要合理分配線程及線程塊,讓每個線程執(zhí)行一個脈沖一組數(shù)據(jù)的運算,就可以大幅提高運算效率。本實現(xiàn)中,分別用x維線程控制數(shù)據(jù)量,y維線程控制脈沖數(shù),運算完成后批量增加循環(huán)過程中的累加值,代碼如下:

int tidx=threadIdx.x+blockIdx.x*blockDim.x;∥數(shù)據(jù)量

int tidy=threadIdx.y+blockIdx.y*blockDim.y;∥脈沖數(shù)

while(tidx

while(tidy

{

∥計算得到濾波器系數(shù)相關(guān)地址及符號

tidy+=blockDim.y*gridDim.y; 距離單元/個

}

∥計算系數(shù)偏移地址去除系數(shù)完成AMTI處理

tidx+=blockDim.x*gridDim.x; ∥批量并行運算

}

需要說明的是,在AMTI實現(xiàn)過程中,需要計算反正切值。反正切值是通過查表法得到。事先計算好得到每個角度對應(yīng)的正切值,存放在內(nèi)存中以備使用。為了提高正切值的精度,可以采用先乘數(shù)再取整的方法。具體實現(xiàn)方法為,將求得的值首先乘以一個倍數(shù),然后進行取整,放入表格中,根據(jù)具體雷達系統(tǒng)對數(shù)據(jù)精度的要求,確定該倍數(shù)大小。

4 仿真結(jié)果及分析

仿真采用的操作系統(tǒng)為Windows 7 SP1,顯卡是計算能力為2.0的NVIDIA Tesla C2050,該顯卡支持雙精度浮點運算,滿足雷達系統(tǒng)對精度的要求。為了提高運算精度,數(shù)據(jù)處理均采用雙精度浮點數(shù),圖5為AMTI前脈壓數(shù)據(jù)。

圖5 脈壓原始數(shù)據(jù)

實驗分別在CPU和GPU上實現(xiàn)AMTI算法,其結(jié)果分別如圖6和圖7所示。

圖6 CPU平臺實現(xiàn)AMTI

從圖6和圖7可以看到濾除了地雜波,目標幅度達到103數(shù)量級,可以認為雜波抑制效果良好且CPU和GPU處理結(jié)果一致,但兩者的處理速度有很大差別。

圖7 GPU平臺實現(xiàn)AMT

表1 CPU與GPU所運行時間對比/ms

從表1可以看出, GPU比CPU的數(shù)據(jù)運算效率更高。需要說明的是,表格中括號內(nèi)數(shù)字表示用于主機和設(shè)備之間數(shù)據(jù)傳輸?shù)臅r間,例如AMTI算法中,總時間0.645 ms中僅0.02 ms用于數(shù)據(jù)處理,括號中為用于數(shù)據(jù)傳輸?shù)臅r間,即GPU有很大一部分時間都是用在數(shù)據(jù)傳輸上,所以在GPU運算過程中,應(yīng)當盡量減數(shù)據(jù)傳輸時間。

5 結(jié)束語

實驗表明,通過在GPU上實現(xiàn)AMTI算法,不僅達到了和CPU上一樣的效果,而且加快了運算速度,提高了運算效率。但是在CUDA程序中,主機與設(shè)備之間的數(shù)據(jù)傳輸會耗費很多時間,所以可以采用以下3種方法減少傳輸時間:(1)由于在設(shè)備和主機之間進行數(shù)據(jù)傳輸會耗費相當多的時間,所以應(yīng)該在兩次數(shù)據(jù)傳輸之間在GPU上進行盡可能多的運算,或者采用流的處理方式,將數(shù)據(jù)進行分塊處理,傳輸?shù)耐瑫r進行運算;(2)因為紋理存儲器的存儲方式為只讀,處理速度相對其他存儲器速度較快,可以采用紋理存儲器來保存一些反三角函數(shù)表,濾波器系數(shù)等,以優(yōu)化數(shù)據(jù)處理效率;(3)合理安排線程塊以及線程數(shù)量,例如當使用二維線程塊以及線程索引時,可以利用dim3這個變量進行定義,最好以一個線程束的倍數(shù)定義線程和線程塊數(shù)量來最大限度提高運算速率??偟膩碚f,利用CUDA處理數(shù)據(jù)相比CPU而言,較好地滿足了目前信息處理對高精度、實時性要求。

猜你喜歡
雜波線程濾波器
STAR2000型空管一次雷達雜波抑制淺析
基于國產(chǎn)化環(huán)境的線程池模型研究與實現(xiàn)
從濾波器理解卷積
開關(guān)電源EMI濾波器的應(yīng)用方法探討
淺談linux多線程協(xié)作
基于Canny振蕩抑制準則的改進匹配濾波器
基于TMS320C6678的SAR方位向預(yù)濾波器的并行實現(xiàn)
密集雜波環(huán)境下確定性退火DA-HPMHT跟蹤算法
相關(guān)廣義復合分布雷達海雜波仿真
微波雷達海雜波混沌特性分析