陶相穎, 張多利, 劉文娟, 倪 偉, 宋宇鯤
(1.合肥工業(yè)大學(xué) 微電子學(xué)院,安徽 合肥 230601; 2.教育部IC設(shè)計(jì)網(wǎng)上合作研究中心,安徽 合肥 230601)
雷達(dá)目標(biāo)檢測(cè)需要自適應(yīng)處理,根據(jù)局部噪聲功率自動(dòng)調(diào)整檢測(cè)門限,以保持恒虛警率(constant false alarm rate,CFAR),在復(fù)雜的雜波環(huán)境中檢測(cè)出所關(guān)心的運(yùn)動(dòng)目標(biāo)回波。單元平均(cell averaging,CA)CFAR處理算法作為最經(jīng)典的CFAR算法[1],在均勻雜波背景下具有較好的檢測(cè)性能,但在雜波邊緣和多目標(biāo)環(huán)境中的檢測(cè)性能明顯下降。因此,具有更好的多目標(biāo)分辨能力的最小(smallest of,SO)選擇檢測(cè)器[2]和在雜波邊緣具有良好性能的最大(greatest of,GO)選擇檢測(cè)器[3]相繼被提出。不同于以上3種均值思想的CFAR算法,有序統(tǒng)計(jì)(ordered statistics,OS)CFAR算法通過(guò)對(duì)參考集排序,在非理想雜波環(huán)境中獲得了更好的魯棒性[4],在多目標(biāo)情況下具有較高的分辨率。在一維CFAR算法的基礎(chǔ)上,研究者們結(jié)合多普勒維雷達(dá)回波信息,提出了相應(yīng)的多種二維CFAR算法[5-6]。
二維CFAR檢測(cè)利用了信號(hào)和雜波的頻域特性差異且增加了有效的參考單元數(shù)。相比一維CFAR處理,二維CFAR算法能有效降低虛警,提高檢測(cè)性能[7],但同時(shí)帶來(lái)了較大計(jì)算量。目前對(duì)二維CFAR算法實(shí)現(xiàn),以DSP軟件層面為主[8]。文獻(xiàn)[9]提出一種基于DSP的二維十字窗CA-CFAR檢測(cè)實(shí)現(xiàn),以數(shù)據(jù)塊矩陣操作代替CFAR檢測(cè)的逐點(diǎn)實(shí)現(xiàn)提高時(shí)間效率。其對(duì)64×1 024點(diǎn)的距離-多普勒矩陣處理,在500 MHz時(shí)鐘頻率下仍需31.534 ms。面對(duì)高速的大規(guī)模雷達(dá)數(shù)據(jù),現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,FPGA)在實(shí)時(shí)性方面更具優(yōu)勢(shì)。
目前關(guān)于一維CFAR算法的FPGA實(shí)現(xiàn)已有大量的研究,而二維CFAR算法設(shè)計(jì)復(fù)雜度和計(jì)算量相對(duì)增大,FPGA實(shí)現(xiàn)較少,且大多通過(guò)調(diào)整窗口形狀降低計(jì)算復(fù)雜度。文獻(xiàn)[10]提出了支持CA、GO及SO算法的二維十字窗均值類CFAR實(shí)現(xiàn)結(jié)構(gòu);文獻(xiàn)[11]提出了基于FPGA的二維米字型參考窗的FOSCA-CFAR實(shí)現(xiàn)方案。以上2種二維CFAR實(shí)現(xiàn)窗口大小固定,通過(guò)采用十字窗或米字窗減少參考單元數(shù)量,回避了矩形窗帶來(lái)的巨大計(jì)算量,但是由于放棄大量有效信息,從而導(dǎo)致其雜波估計(jì)值的可靠性低于矩形窗[12]。
隨著FPGA的發(fā)展,CFAR硬件實(shí)現(xiàn)不再需要以犧牲性能為代價(jià)來(lái)節(jié)省資源。近期,文獻(xiàn)[13]提出了一種面向二維CFAR檢測(cè)需求,目前實(shí)現(xiàn)復(fù)雜度最高且完善的先進(jìn)方案。該方案采用矩形窗,實(shí)現(xiàn)了動(dòng)態(tài)可配置二維CFAR處理器,兼容CA、GO、SO及OS算法且參考窗口尺寸和保護(hù)窗口尺寸可以動(dòng)態(tài)配置,具有靈活的配置和較廣的應(yīng)用場(chǎng)景。但是其計(jì)算模塊采用資源平鋪的方法,資源消耗極大,同時(shí)關(guān)鍵路徑較長(zhǎng)導(dǎo)致主頻受限。本文參考文獻(xiàn)[13]的高可配置性優(yōu)點(diǎn),同時(shí),通過(guò)鏈?zhǔn)较冗M(jìn)先出(first input first output,FIFO)隊(duì)列結(jié)構(gòu)和滑動(dòng)窗口處理降低資源消耗,求解參考單元累加和的計(jì)算量,充分利用數(shù)據(jù)集之間固有的數(shù)據(jù)依賴關(guān)系,使得硬件資源開銷大幅降低,主頻得到明顯提升。
上述研究者們關(guān)于二維CFAR算法的實(shí)現(xiàn),多為固定參考窗口和保護(hù)窗口設(shè)計(jì)。然而,在實(shí)際雷達(dá)目標(biāo)檢測(cè)應(yīng)用中,可通過(guò)參考窗口和保護(hù)窗口大小的調(diào)整,以優(yōu)化檢測(cè)性能。根據(jù)目標(biāo)在二維空間的局部拓展性,二維矩形參考窗相較其他窗型CFAR能夠獲得更穩(wěn)定且準(zhǔn)確的背景雜波估計(jì)值[14]。因此本文以FPGA為實(shí)驗(yàn)平臺(tái),采用矩形窗型,設(shè)計(jì)實(shí)現(xiàn)了兼容CA、GO、SO、OS 4種經(jīng)典CFAR算法且參考窗尺寸(N)、保護(hù)窗尺寸(M)可動(dòng)態(tài)配置的二維CFAR算法硬件加速器結(jié)構(gòu),其中,3≤N≤31,1≤M≤21,N、M為奇數(shù)。本文采用鏈?zhǔn)紽IFO隊(duì)列結(jié)構(gòu)和滑動(dòng)窗口處理,實(shí)現(xiàn)了對(duì)既有計(jì)算結(jié)果的重復(fù)利用,即對(duì)于均值類CFAR的硬件實(shí)現(xiàn)減少了傳統(tǒng)矩形窗口累加和求解所需加法器個(gè)數(shù),對(duì)于OS-CFAR的硬件實(shí)現(xiàn)減少了數(shù)據(jù)反復(fù)讀取帶來(lái)的延遲,使用流水線設(shè)計(jì)實(shí)現(xiàn)每周期可以連續(xù)獲得CFAR檢測(cè)結(jié)果,具有較高的檢測(cè)效率。在220 MHz的主頻下,對(duì)于256×2 048點(diǎn)的距離-多普勒矩陣數(shù)據(jù),4種CFAR檢測(cè)器均在2.71 ms內(nèi)完成。該二維CFAR檢測(cè)器具有較大靈活性,提升了二維CFAR硬件實(shí)現(xiàn)的實(shí)時(shí)性和實(shí)用性。
本文關(guān)注算法的硬件實(shí)現(xiàn)結(jié)構(gòu),關(guān)于CFAR算法原理不作贅述。參考窗口尺寸為N×N大小的二維矩形窗CFAR算法如圖1所示。
圖1 二維矩形窗CFAR算法
矩形窗中心黑色單元為檢測(cè)單元,記為Y。為防止目標(biāo)能量泄露到背景單元中導(dǎo)致檢測(cè)性能下降,通常在檢測(cè)單元四周設(shè)置尺寸為M×M大小的區(qū)域作為保護(hù)單元,即圖1中陰影區(qū)域。矩形窗內(nèi)其余單元為參考單元,紅色區(qū)域?yàn)樽蟠皡⒖紗卧獂L,白色區(qū)域?yàn)橛掖皡⒖紗卧獂R。
為兼容CA、GO、SO 3種均值類CFAR算法,可通過(guò)計(jì)算出全部左窗參考單元均值ML、右窗參考單元均值MR,繼而求得全窗均值。OS-CFAR算法需對(duì)所有參考單元升序排序,以獲取第K個(gè)排序樣本值XK作為背景雜波估計(jì)值。根據(jù)算法種類選擇對(duì)應(yīng)的雜波背景功率的估計(jì)值Z,與標(biāo)稱化因子T相乘得到檢測(cè)門限ST。若待測(cè)單元幅值Y大于檢測(cè)門限ST則判定該檢測(cè)單元為目標(biāo),否則為雜波。CA、GO、SO、OS 4種CFAR算法關(guān)于Z的取值見表1所列。
表1 不同二維CFAR算法的Z值計(jì)算
CFAR檢測(cè)器以256×2 048點(diǎn)二維距離-多譜勒矩陣(Range Doppler Matrix,RDM)為輸入數(shù)據(jù)。本設(shè)計(jì)整體結(jié)構(gòu)如圖2所示,主要由鏈?zhǔn)紽IFO隊(duì)列、滑動(dòng)窗口求和處理模塊、OS-CFAR流水比較模塊、目標(biāo)判定模塊和檢測(cè)單元預(yù)處理模塊組成。鏈?zhǔn)紽IFO隊(duì)列負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)管理和RDM邊緣擴(kuò)展補(bǔ)充。滑動(dòng)窗口求和處理模塊每周期計(jì)算輸出一個(gè)左窗累加和與對(duì)應(yīng)右窗累加和。OS-CFAR流水比較模塊采用二元積累法,每周期計(jì)算輸出一個(gè)檢測(cè)單元對(duì)應(yīng)的二元積累和。目標(biāo)判定模塊則根據(jù)配置的算法類型選擇對(duì)應(yīng)的窗口累加和與經(jīng)過(guò)預(yù)處理的參考單元幅值比較,得到最終的CFAR算法處理結(jié)果。
圖2 兼容均值類和有序統(tǒng)計(jì)CAFR的硬件設(shè)計(jì)框圖
二維CFAR實(shí)現(xiàn)面臨的首要問(wèn)題是RDM輸入數(shù)據(jù)每周期逐點(diǎn)更新,而滑動(dòng)窗口計(jì)算需要每周期逐列更新。因此,本設(shè)計(jì)以31個(gè)256深度的FIFO首尾相連,構(gòu)成鏈?zhǔn)紽IFO隊(duì)列,將串行輸入數(shù)據(jù)轉(zhuǎn)化為31個(gè)輸出端口并行輸出。實(shí)現(xiàn)每個(gè)時(shí)鐘周期更新滑動(dòng)窗口所需的包含N個(gè)數(shù)據(jù)的列向量QR,提高數(shù)據(jù)吞吐效率,為后續(xù)計(jì)算模塊的全流水實(shí)現(xiàn)提供保障。巧妙設(shè)計(jì)FIFO深度為多普勒維采樣點(diǎn)個(gè)數(shù),使得鏈?zhǔn)紽IFO隊(duì)列只需在初始化時(shí)進(jìn)行一次隊(duì)列預(yù)存,無(wú)需在滑動(dòng)窗口由各行行末移動(dòng)到下一行行首時(shí)重新對(duì)FIFO隊(duì)列緩存。即當(dāng)本周期FIFO隊(duì)列讀出的QR為第i行最后一個(gè)參考窗口的第N個(gè)列向量時(shí),下一個(gè)時(shí)鐘周期FIFO隊(duì)列讀出的數(shù)據(jù)即為第i+1行中第1個(gè)參考窗口所需的第1個(gè)列向量。
鏈?zhǔn)紽IFO隊(duì)列的另一作用是實(shí)現(xiàn)對(duì)RDM的邊緣補(bǔ)充且不增加額外緩存資源。由于檢測(cè)單元位于RDM數(shù)據(jù)邊緣時(shí)存在窗口內(nèi)參考單元缺失的情況,本設(shè)計(jì)以復(fù)制補(bǔ)邊的方式對(duì)RDM邊緣參考窗內(nèi)缺失數(shù)據(jù)加以補(bǔ)充。根據(jù)配置的參考窗口大小,通過(guò)對(duì)RDM首行和末行重復(fù)(N-1)/2次緩存到FIFO中,實(shí)現(xiàn)行數(shù)據(jù)補(bǔ)充。當(dāng)FIFO組讀出數(shù)據(jù)為首列或末列后,通過(guò)控制FIFO組讀寫能拉低(N-1)/2時(shí)鐘周期,實(shí)現(xiàn)RDM列數(shù)據(jù)的邊緣填充。
不同于一維CFAR滑動(dòng)窗口結(jié)構(gòu)簡(jiǎn)單,二維矩形窗CFAR剔除保護(hù)窗口再被分為左窗和右窗后,窗口形狀不規(guī)則,同時(shí)需要兼顧參考窗口和保護(hù)窗口尺寸可動(dòng)態(tài)配置的設(shè)計(jì)目標(biāo),給滑動(dòng)窗口設(shè)計(jì)帶來(lái)一定難度。本設(shè)計(jì)對(duì)于每周期更新的一列數(shù)據(jù),首先由鏈?zhǔn)紽IFO隊(duì)列后的31個(gè)寄存器根據(jù)參考窗口配置,將超過(guò)窗口的數(shù)據(jù)點(diǎn)置0,實(shí)現(xiàn)參考窗口尺寸的控制。每列數(shù)據(jù)QR在求和模塊中根據(jù)保護(hù)窗口大小切割成:保護(hù)窗上方的各參考單元累加和sum1、保護(hù)窗范圍內(nèi)的各參考單元累加和sum2、保護(hù)窗下方的各參考單元累加和sum33個(gè)部分。由以上3個(gè)部分之和求得全列數(shù)據(jù)累加和sum4。
本文滑動(dòng)窗口設(shè)計(jì)如圖3所示,窗口向右滑動(dòng)。根據(jù)窗口形狀產(chǎn)生的數(shù)據(jù)組織規(guī)律,在滑動(dòng)窗口求和模塊求出當(dāng)前檢測(cè)單元對(duì)應(yīng)的左窗參考單元累加和sumL后,對(duì)sumL加入沿左窗邊緣右側(cè)的參考單元幅值(圖3中黃色部分),減去左窗最左側(cè)一列參考單元幅值(圖3中藍(lán)色部分),即可實(shí)現(xiàn)左窗累加和的向右滑動(dòng)。對(duì)于右窗累加和sumR的滑動(dòng)求解方法同理。
圖3 均值類CFAR滑動(dòng)窗口設(shè)計(jì)
在均值類CFAR設(shè)計(jì)中,根據(jù)參考窗尺寸和保護(hù)窗尺寸,通過(guò)控制sum1、sum2、sum3、sum4的延遲關(guān)系實(shí)現(xiàn)對(duì)多種窗口尺寸的兼容設(shè)計(jì)。圖2中延遲關(guān)系為:
(1)
滑動(dòng)窗口設(shè)計(jì)充分利用了已經(jīng)求出的部分和信息,均衡了計(jì)算資源,減少了求和模塊的數(shù)據(jù)吞吐壓力,使得計(jì)算效率得到提升。
均值類CFAR算法對(duì)門限計(jì)算的常見處理是將左窗和、右窗和分別除以參考單元數(shù)目得到均值,再與標(biāo)稱化因子T相乘,得到檢測(cè)門限。該方法需要2個(gè)除法器和1個(gè)乘法器,每步計(jì)算為串行。本設(shè)計(jì)以1/T作為均值類檢測(cè)器輸入。通過(guò)對(duì)標(biāo)稱化因子的預(yù)處理,在鏈?zhǔn)紽IFO隊(duì)列初始化預(yù)存數(shù)據(jù)的同時(shí),并行完成temp等于參考單元個(gè)數(shù)與1/T相乘的計(jì)算。因此,在計(jì)算窗口累加和的同時(shí),可以并行計(jì)算出檢測(cè)單元幅值與temp的乘積YP。以YP與窗口累加和的比較,代替門限ST與檢測(cè)單元幅值的比較,作為檢測(cè)單元是否為目標(biāo)的判定條件。優(yōu)化后,本設(shè)計(jì)只需2次乘法,且可以由一個(gè)乘法器分時(shí)復(fù)用完成計(jì)算,節(jié)約了硬件資源的同時(shí),利用FPGA的并行性壓縮了計(jì)算時(shí)間。當(dāng)運(yùn)行OS-CFAR檢測(cè)器時(shí),temp直接被賦值為1/T,YP作為預(yù)取檢測(cè)單元YN與1/T的乘積,稱為壓縮檢測(cè)單元幅值。
傳統(tǒng)的OS-CFAR算法需要對(duì)參考單元數(shù)據(jù)進(jìn)行全排序以獲得雜波背景功率的估計(jì)值。顯然,對(duì)于較大尺寸的二維矩形窗,全排序帶來(lái)極大的計(jì)算量和比較器資源消耗。大窗口數(shù)據(jù)全排序成為OS-CFAR進(jìn)行FPGA實(shí)現(xiàn)的瓶頸。
全排序?yàn)楂@得第K個(gè)排序樣本值,需要計(jì)算其他各參考單元之間的大小關(guān)系,從而帶來(lái)冗余信息及巨大的計(jì)算復(fù)雜度。其實(shí),算法只關(guān)注壓縮檢測(cè)單元幅值與參考單元第K個(gè)排序樣本的大小關(guān)系,即壓縮檢測(cè)單元幅值是否大于K個(gè)參考單元樣本。因此,解決這一問(wèn)題的關(guān)鍵在于消除冗余信息,將二元積累法應(yīng)用于OS-CFAR可使判定條件等效轉(zhuǎn)換,若sumB大于等于K則為目標(biāo),否則為雜波。其中sumB為壓縮檢測(cè)單元幅值與各參考單元幅值比較結(jié)果的二元積累和。二元積累法的應(yīng)用將計(jì)算復(fù)雜度降低為N2次比較和累加。二維矩形窗OS-CFAR硬件設(shè)計(jì)通過(guò)復(fù)用均值類CFAR的鏈?zhǔn)紽IFO隊(duì)列結(jié)構(gòu)以節(jié)約資源,延用滑動(dòng)窗口思想,充分利用相鄰窗口的數(shù)據(jù)依賴關(guān)系以減少緩存。由于鏈?zhǔn)紽IFO隊(duì)列每周期輸出的數(shù)據(jù)為包含N個(gè)數(shù)據(jù)的列向量QR,在不加額外控制和存儲(chǔ)資源的情況下,每個(gè)列向量讀且只讀出一次。而每一個(gè)列向量將作為N個(gè)連續(xù)參考窗口中的一列參考單元。因此,當(dāng)一個(gè)列向量QR讀出時(shí),希望可以同時(shí)獲得所有需要與QR比較的壓縮檢測(cè)單元幅值,這些壓縮檢測(cè)單元幅值所組成的隊(duì)列記為待檢測(cè)序列QY。QY與QR的相對(duì)位置關(guān)系如圖4所示。
圖4 OS-CAFR滑動(dòng)窗口數(shù)據(jù)關(guān)系
根據(jù)圖4中窗口向右滑動(dòng)所需的數(shù)據(jù)更新規(guī)律,設(shè)計(jì)預(yù)取檢測(cè)單元YN經(jīng)過(guò)壓縮后與列向量QR在同一周期到達(dá)圖2中OS-CFAR流水比較模塊的輸入端口。OS-CFAR流水比較模塊內(nèi)包含寄存QY的31個(gè)移位寄存器和961個(gè)比較器,可在單周期完成QY與QR中各元素幅值比較。由于QR為檢測(cè)單元Y所在參考窗口的第N個(gè)列向量,將QR與Y比較的二元積累和記為列積累和SN。同理,經(jīng)過(guò)本周期比較后對(duì)于YN將得到對(duì)應(yīng)的列積累和S1。將檢測(cè)單元Y對(duì)應(yīng)的SN與之前N-1個(gè)周期獲得的各列的列積累和相加,得到有效二元積累和sumB,與K比較即可判定OS-CFAR檢測(cè)結(jié)果。
根據(jù)FMCW雷達(dá)系統(tǒng)工作原理,基于MATLAB對(duì)Chirp序列的Range Doppler處理進(jìn)行仿真。首先生成以均勻雜波為背景噪聲、攜帶2個(gè)目標(biāo)信息的差頻信號(hào),再分別對(duì)快時(shí)間維度采樣和慢時(shí)間維度采樣進(jìn)行加窗和FFT處理,最終得到RDM信息三維圖,如圖5所示。RDM數(shù)據(jù)即為二維CFAR檢測(cè)器的輸入。
圖5 均勻雜波背景下存在2個(gè)目標(biāo)的RDM信息三維圖
本設(shè)計(jì)以32位無(wú)符號(hào)定點(diǎn)數(shù)作為數(shù)據(jù)輸入,參考窗尺寸N和保護(hù)窗尺寸M可動(dòng)態(tài)配置,其中,3≤N≤31,1≤M≤21,N、M為奇數(shù)。設(shè)計(jì)以Xilinx xc6vlx240t FPGA開發(fā)板為實(shí)驗(yàn)平臺(tái),綜合主頻為220 MHz。
對(duì)于256×2 048點(diǎn)RDM 4種CFAR檢測(cè)器均在2.71 ms(594 659周期)內(nèi)完成檢測(cè),通過(guò)與MATLAB軟件測(cè)試結(jié)果對(duì)比,驗(yàn)證了功能正確性,對(duì)于圖5所示雷達(dá)回波信號(hào)的CFAR檢測(cè)結(jié)果如圖6所示。
圖6 CAFR算法檢測(cè)結(jié)果
對(duì)比文獻(xiàn)[13]提出的矩形窗動(dòng)態(tài)可配置二維CFAR處理器設(shè)計(jì),其設(shè)計(jì)最大主頻為120 MHz,平均單點(diǎn)的CFAR處理周期為2.7個(gè)周期。本文最大時(shí)鐘頻率為220 MHz,平均單點(diǎn)處理周期為1.1周期。因此平均單點(diǎn)CFAR處理在時(shí)間上的加速比為4.4倍,本設(shè)計(jì)計(jì)算速度提升主要得益于鏈?zhǔn)紽IFO隊(duì)列在計(jì)算模塊啟動(dòng)后無(wú)需在滑動(dòng)窗口換行處理時(shí)浪費(fèi)更新緩存的時(shí)間。文獻(xiàn)[13]實(shí)現(xiàn)了CA、GO、SO、OS算法,根據(jù)其設(shè)計(jì)方案推測(cè)其中均值類CFAR檢測(cè)計(jì)算模塊消耗961個(gè)加法器。本設(shè)計(jì)采用滑動(dòng)窗口設(shè)計(jì)使得均值類CFAR檢測(cè)計(jì)算模塊僅消耗39個(gè)加法器,加法器資源消耗節(jié)約95.9%。關(guān)于OS-CFAR設(shè)計(jì),若同樣處理尺寸為31的參考窗口,文獻(xiàn)[13]將參考窗口數(shù)據(jù)全部寄存以完成滑動(dòng)窗口處理,至少消耗961個(gè)寄存器,而本設(shè)計(jì)通過(guò)對(duì)參考單元的預(yù)取更加充分地利用了窗口數(shù)據(jù)更新規(guī)律,只需要31個(gè)移位寄存器對(duì)QY寄存即可,該模塊寄存器資源節(jié)約96.8%。文獻(xiàn)[15]本質(zhì)上為兼容均值類和有序均值類算法一維窗口設(shè)計(jì),最大窗口參考單元數(shù)為340。本設(shè)計(jì)僅使用與該一維窗口接近的FPGA資源,完成二維矩形窗CFAR設(shè)計(jì),且最大參考單元數(shù)為961,其他各項(xiàng)資源比對(duì)見表2所列。
表2 二維CFAR檢測(cè)器硬件資源消耗與對(duì)比
本文給出了一種高速可配置兼容CA、GO、SO、OS CFAR檢測(cè)器的硬件加速設(shè)計(jì),設(shè)計(jì)采用矩形窗,實(shí)現(xiàn)檢測(cè)器類型、標(biāo)稱化因子、排序值K、參考窗口尺寸、保護(hù)窗口尺寸可動(dòng)態(tài)配置。對(duì)于256×2 048點(diǎn)二維RDM數(shù)據(jù)可在2.71 ms內(nèi)完成CFAR檢測(cè),具有高效的檢測(cè)效率和較小的硬件資源開銷。
合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版)2023年5期