陳思宏
(廣東博智林機(jī)器人有限公司,廣東 廣州 510006)
車載毫米波雷達(dá)為了實(shí)現(xiàn)目標(biāo)物體的檢測(cè)和定位,需要探測(cè)目標(biāo)的方位信息。為了實(shí)現(xiàn)角度估計(jì),通常采用多輸入多輸出(Multiple Input Multiple Output,MIMO)技術(shù),結(jié)合超分辨率波達(dá)方向(Direction Of Arrival,DOA)估計(jì)算法,能最大程度上提升其角度分辨率[1]。
針對(duì)超分辨率DOA估計(jì)算法,實(shí)際應(yīng)用中大多采用數(shù)字信號(hào)處理(Digital Signal Processing,DSP)芯片或現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)芯片來實(shí)現(xiàn)二維或更高維的DOA估計(jì)。DSP的關(guān)鍵優(yōu)勢(shì)在于對(duì)新型算法和復(fù)雜算法的開發(fā)時(shí)間更短,能夠靈活運(yùn)行多種算法,但實(shí)時(shí)性稍顯不足。FPGA具有算法并行處理、運(yùn)行速度更快等優(yōu)點(diǎn),但存在開發(fā)時(shí)間長(zhǎng)、算法實(shí)現(xiàn)不夠靈活等問題。
針對(duì)實(shí)時(shí)性要求高且工程實(shí)現(xiàn)復(fù)雜的DOA估計(jì),提出了一種基于ZYNQ實(shí)現(xiàn)DOA估計(jì)算法的硬件架構(gòu)。通過分解常用的DOA算法步驟,將大規(guī)模的濾波、乘累加、矩陣運(yùn)算等重復(fù)性工作使用可編程邏輯(Progarmmable Logic,PL)進(jìn)行實(shí)現(xiàn),減少了DOA計(jì)算核心部分的FPGA開發(fā)量。針對(duì)快速開發(fā)且有迭代需求的算法部分,在處理系統(tǒng)(Processing System,PS)端進(jìn)行實(shí)現(xiàn)[2-5]。
基于典型的2發(fā)4收(以下簡(jiǎn)稱為2T4R)時(shí)分 復(fù) 用(Time Division Multiplexing,TDM)MIMO 天線陣列和ZYNQ芯片進(jìn)行硬件系統(tǒng)設(shè)計(jì),進(jìn)而設(shè)計(jì)DOA算法架構(gòu)。硬件系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 硬件系統(tǒng)架構(gòu)
典型均勻線陣2T4R TDM-MIMO雷達(dá)由2個(gè)間距為2λ的發(fā)射天線交替發(fā)射,4個(gè)間距為λ/2的接收天線同時(shí)接收回波,這樣形成8個(gè)間距為λ/2的虛擬陣元。2T4R均勻線性陣列天線收發(fā)原理如圖2所示。
圖2 2T4R均勻線性陣列天線收發(fā)原理
將虛擬陣元1作為基準(zhǔn)陣元,則其他陣元相對(duì)第1個(gè)陣元的位置為di(i=1,…,8),其中di=0。假設(shè)信號(hào)載波為ejwt,基準(zhǔn)陣元接收的信號(hào)為x(t)ejwt,則其他陣元數(shù)接收到的信號(hào)為
因?yàn)樾盘?hào)總是變換到基帶再處理,所以陣列信號(hào)可以表示為
當(dāng)波長(zhǎng)和陣列的幾何結(jié)構(gòu)確定時(shí),方向矢量只與到達(dá)波的空間角θ有關(guān)。將方向矢量記為w(θ),與基準(zhǔn)陣元位置無關(guān)。若選第1個(gè)陣元為基準(zhǔn),則方向矢量為
以w(θi)表示接收陣列的目標(biāo)i的導(dǎo)向矢量,將式(2)帶入式(4),則有
接收信號(hào)的協(xié)方差矩陣為
ZYNQ平臺(tái)的軟硬件協(xié)同設(shè)計(jì)能力是其具有代表性的優(yōu)勢(shì)之一,主要由基于ARM的PS和等價(jià)于FPGA的PL組成。實(shí)際工程實(shí)現(xiàn)中,要充分結(jié)合PS與PL各自的優(yōu)勢(shì)進(jìn)行合理的功能劃分。本文將需要移位和加法運(yùn)算的迭代操作在PL端高效實(shí)現(xiàn),將需要進(jìn)行浮點(diǎn)運(yùn)算和循環(huán)運(yùn)行較多的算法分配給PS端,通過C語言進(jìn)行編程,最終達(dá)到揚(yáng)長(zhǎng)避短、優(yōu)勢(shì)互補(bǔ)的效果。
設(shè)計(jì)的DOA算法架構(gòu)如圖3所示。
圖3 DOA算法架構(gòu)
PL主要用于時(shí)分復(fù)用、數(shù)據(jù)預(yù)處理、矩陣運(yùn)算以及空間譜搜索等,PS主要用于實(shí)現(xiàn)DOA估計(jì)算法。以雙倍數(shù)據(jù)率(Double Data Rate,DDR)存儲(chǔ)作為數(shù)據(jù)存儲(chǔ)媒介,通過高級(jí)可擴(kuò)展接口(Advanced eXtensible Interface,AXI) 通信。 模數(shù)轉(zhuǎn)換器(Analog-to-Digital Converter,ADC)數(shù)據(jù)采集后經(jīng)PL端處理,輸出信號(hào)相位差粗估計(jì)結(jié)果和8×8協(xié)方差矩陣結(jié)果,通過AXI將數(shù)據(jù)存儲(chǔ)在DDR存儲(chǔ)器中。DOA估計(jì)算法運(yùn)行前,PL端先生成導(dǎo)向矢量矩陣,然后從DDR中提取相位粗估計(jì)結(jié)果和協(xié)方差矩陣,實(shí)現(xiàn)相應(yīng)的DOA估計(jì)。
DOA算法估計(jì)分為粗估計(jì)和細(xì)估計(jì),其中協(xié)方差矩陣計(jì)算和粗估計(jì)使用PL硬件加速實(shí)現(xiàn),能夠確定譜峰的大致位置;在粗估計(jì)結(jié)果附近采用較小的步長(zhǎng)(0.1°)進(jìn)行細(xì)估計(jì),從而得到準(zhǔn)確的信號(hào)入射角。通過這種方式,可以在保證精度的前提下,大幅降低計(jì)算量。
為了構(gòu)建虛擬陣元,需要進(jìn)行通道分離,最常用的方法就是對(duì)陣列天線發(fā)射端進(jìn)行時(shí)分復(fù)用,即對(duì)2個(gè)通道交替發(fā)射波形,實(shí)現(xiàn)各個(gè)通道在時(shí)間上的分離。該方法的應(yīng)用優(yōu)勢(shì)在于通道之間沒有干擾,針對(duì)二維的DOA估計(jì)算法,PL端資源消耗量直接減少一半。
針對(duì)TDM-MIMO雷達(dá),提出DOA估計(jì)前的預(yù)處理流程,如圖4所示。
圖4 預(yù)處理流程
首先,對(duì)回波信號(hào)進(jìn)行模擬/數(shù)字(Analog/Digital,A/D)采樣;其次,產(chǎn)生本振信號(hào),對(duì)回波數(shù)據(jù)進(jìn)行混頻;再次,對(duì)混頻后的信號(hào)進(jìn)行濾波;最后,對(duì)濾波后的信號(hào)進(jìn)行抽取,得到基帶信號(hào)。
均勻線陣回波入射角粗估計(jì)基本原理如圖5所示。
圖5 均勻線陣回波入射角粗估計(jì)基本原理
為了得到時(shí)延信息,以RX1陣元為基準(zhǔn),分別對(duì)其余7個(gè)陣元進(jìn)行鑒相,得到相位差后便得到時(shí)延信息。鑒相器設(shè)計(jì)如圖6所示。
圖6 鑒相器設(shè)計(jì)
積分器分別對(duì)是同相(I)支路、正交(Q)支路的數(shù)據(jù)進(jìn)行積累,以抑制噪聲。使用坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(Coordinate Rotation Digital Computer,CORDIC)算法對(duì)I支路、Q支路進(jìn)行求相角運(yùn)算,可得到2個(gè)信號(hào)的相位差。CORDIC算法的硬件實(shí)現(xiàn)流程如圖7所示。
圖7 CORDIC算法硬件實(shí)現(xiàn)流程
協(xié)方差矩陣Rx經(jīng)過L次快拍信號(hào)處理后可以表示為
在FPGA實(shí)現(xiàn)中,采用乘累加模型完成協(xié)方差矩陣運(yùn)算。
無論是數(shù)字波束形成原理、多信號(hào)分類算法(Multiple Signal Classification,MUSIC) 原 理, 都 需要在整個(gè)天線的有效指向方向范圍內(nèi)生成1組導(dǎo)向矢量。在PS端通過AXI-DMA接口提取PL端得到的粗估計(jì)結(jié)果,在粗估計(jì)結(jié)果的±10°內(nèi),以步進(jìn)Δθ=0.1°進(jìn)行細(xì)估計(jì)。
已知d=λ/2,則導(dǎo)向矢量矩陣為
MUSIC算法的核心思想是將任意陣列輸出數(shù)據(jù)的協(xié)方差矩陣進(jìn)行特征值分解,對(duì)應(yīng)不同特征值的矢量構(gòu)成互相正交的信號(hào)子空間和噪聲子空間,大特征值對(duì)應(yīng)的特征矢量構(gòu)成信號(hào)子空間,小特征值對(duì)應(yīng)的特征矢量構(gòu)成噪聲子空間,利用2個(gè)子空間之間的正交性來進(jìn)行DOA估計(jì)。
本文設(shè)計(jì)的DOA估計(jì)算法架構(gòu)使用了ARM和FPGA結(jié)合的ZYNQ SOC系統(tǒng),在工程開發(fā)上結(jié)合了Verilog HDL語言、C語言和Matlab腳本等編程語言。算法架構(gòu)測(cè)試驗(yàn)證流程如圖8所示。
圖8 算法架構(gòu)測(cè)試驗(yàn)證流程
首先進(jìn)行Matlab建模,并選擇相應(yīng)DOA估計(jì)算法,使用Matlab Coder進(jìn)行腳本打包;其次使用Verilog HDL語言進(jìn)行PL端代碼編程,運(yùn)用Vivado工具進(jìn)行綜合布線,并固化到XC7Z035平臺(tái);最后啟動(dòng)Xilinx SDK,主程序調(diào)用算法腳本,并打印粗預(yù)估、細(xì)預(yù)估結(jié)果和協(xié)方差矩陣以及DOA估計(jì)結(jié)果。
PL端時(shí)鐘為工作頻率為125 MHz,接收陣列采用了256個(gè)快拍數(shù),由于設(shè)計(jì)為時(shí)分復(fù)用且采用了大量的流水線結(jié)構(gòu),從開始進(jìn)行陣列數(shù)據(jù)采集到輸出協(xié)方差矩陣結(jié)果,經(jīng)過所有模塊后需要532個(gè)時(shí)鐘周期。經(jīng)過測(cè)試,PL端硬件運(yùn)行耗時(shí)2.128 μs左右。
在XC7Z035平臺(tái)下測(cè)試DOA估計(jì)算法程序的運(yùn)行時(shí)間,按MUSIC算法進(jìn)行實(shí)現(xiàn)并配合Xilinx SDK調(diào)用,其耗時(shí)在4 ms左右。
針對(duì)超高分辨率的DOA估計(jì)算法進(jìn)行深入研究,提出了一種基于ZYNQ的DOA估計(jì)算法硬件架構(gòu)設(shè)計(jì)。該架構(gòu)適用于TDM-MIMO毫米波陣列雷達(dá),采用硬件粗估計(jì)、軟件細(xì)估計(jì)的方式減少了DOA算法迭代耗時(shí)。通過大量的流水線設(shè)計(jì),減少了常規(guī)DSP方案中大規(guī)模矩陣運(yùn)算的計(jì)算量和計(jì)算耗時(shí),從而降低了軟件PS端的算法計(jì)算量和計(jì)算復(fù)雜度,在滿足估計(jì)精度、滿足工程應(yīng)用耗時(shí)的同時(shí),實(shí)現(xiàn)了算法開發(fā)靈活性和實(shí)時(shí)性之間的平衡。與其他的DOA估計(jì)算法架構(gòu)相比,該方案的主要優(yōu)勢(shì)是支持復(fù)雜、靈活的算法且兼具實(shí)時(shí)性,保證系統(tǒng)運(yùn)行時(shí)間滿足工程應(yīng)用要求,具有較高的工程應(yīng)用價(jià)值。