基于DSP和FPGA的多波形雷達(dá)回波中頻模擬器實(shí)現(xiàn)
本文論述一種自主產(chǎn)生式的雷達(dá)回波模擬器中頻部分的設(shè)計(jì)實(shí)現(xiàn)方法,該模擬器可產(chǎn)生脈沖單頻、脈沖線性調(diào)頻、步進(jìn)頻、步進(jìn)頻+線性調(diào)頻等多種波形的雷達(dá)回波信號(hào),并可產(chǎn)生雙目標(biāo)和參數(shù)可控的帶限高斯白噪聲,可模擬主要的干擾類型;輸出信號(hào)既可以直接用于信號(hào)處理機(jī)的中頻注入式測(cè)試,也可上變頻后用于雷達(dá)系統(tǒng)的射頻條件下的各種測(cè)試驗(yàn)證。以下對(duì)該中頻雷達(dá)回波模擬器的實(shí)現(xiàn)方法予以詳細(xì)闡述。
1 回波信號(hào)理論分析
按照設(shè)計(jì)要求,該模擬器需要模擬脈沖單頻、脈沖線性調(diào)頻、步進(jìn)頻、步進(jìn)頻+線性調(diào)頻共四種波形的信號(hào)。其中,步進(jìn)頻又包括順序步進(jìn)頻和隨機(jī)步進(jìn)頻兩種類型。這些波形的雷達(dá)回波信號(hào),均可以統(tǒng)一表示為式(1)的形式:
式中:c為光速;N為相參幀的脈沖總個(gè)數(shù);i表示相參幀內(nèi)的第幾個(gè)脈沖;To為脈沖寬度;Tr為脈沖周期;fc為相參幀內(nèi)首脈沖的載頻;△f為脈沖間最小步進(jìn)頻差;bi△f為第i個(gè)脈沖在初始載頻基礎(chǔ)上的頻率變化(僅適用于脈間頻率捷變波形,非脈間捷變波形則bi=0);k為線性調(diào)頻波形時(shí)的脈內(nèi)調(diào)頻變化率(非脈內(nèi)線性調(diào)頻則k=0);Ro為目標(biāo)當(dāng)前距離;v為目標(biāo)當(dāng)前速度。
由以上分析可知,無(wú)論上述何種波形,均可根據(jù)式(1)計(jì)算脈沖的延時(shí)、每個(gè)脈沖的脈內(nèi)初相、以及每個(gè)脈沖的載頻等參數(shù),并對(duì)這些參數(shù)在與產(chǎn)品同步的基礎(chǔ)上予以實(shí)時(shí)控制來(lái)進(jìn)行模擬實(shí)現(xiàn)。根據(jù)發(fā)射波形,還要決定是否添加脈內(nèi)頻率線性調(diào)制。
2 回波模擬器系統(tǒng)設(shè)計(jì)
根據(jù)系統(tǒng)需求和前述雷達(dá)回波信號(hào)理論分析,該中頻雷達(dá)回波模擬器(以下簡(jiǎn)稱模擬器)采用了如圖1所示的系統(tǒng)實(shí)現(xiàn)方案。
該模擬器通過(guò)單片機(jī)(AVR8515)與上位機(jī)進(jìn)行異步串行通信,單片機(jī)完成通信協(xié)議的解包、打包等過(guò)程,接收上位機(jī)中用戶設(shè)定的目標(biāo)和干擾參數(shù),發(fā)送模擬器的實(shí)時(shí)模擬狀態(tài)信息給上位機(jī)。系統(tǒng)以DSP(ADSP-21060)作為脈沖參數(shù)的實(shí)時(shí)計(jì)算單元,單片機(jī)與DSP問(wèn)通過(guò)雙口RAM進(jìn)行信息交換。DSP得到兩個(gè)目標(biāo)的模擬參數(shù)后,根據(jù)參數(shù)變化的時(shí)間節(jié)拍,計(jì)算一個(gè)相參幀兩目標(biāo)的各脈沖的初相、載頻、脈沖延時(shí)等參數(shù),并寫(xiě)給雙口RAM。系統(tǒng)以FPGA(XC2V3000)作為信號(hào)處理與控制單元,F(xiàn)PGA讀取后,在產(chǎn)品提供的處理幀同步信號(hào)和同步調(diào)制脈沖控制下,結(jié)合產(chǎn)品串口傳過(guò)來(lái)的波形類型的信息(如:脈內(nèi)單頻還是線性調(diào)頻),形成兩個(gè)目標(biāo)的延時(shí)脈沖,并控制兩個(gè)目標(biāo)各自的DDS(AD9858)信號(hào)產(chǎn)生單元,產(chǎn)生出兩個(gè)目標(biāo)信號(hào)。帶限的高斯白噪聲的數(shù)字正交基帶也由FPGA產(chǎn)生,并同步AD9957的數(shù)字正交上變頻功能將基帶調(diào)制到所需的中心頻上。目標(biāo)1、目標(biāo)2和噪聲信號(hào)的合成由模擬電路實(shí)現(xiàn),并實(shí)現(xiàn)一定的功率控制,最后輸出所需的中頻雷達(dá)回波信號(hào)。模擬器系統(tǒng)各單元時(shí)鐘的相參性至關(guān)重要,由專用時(shí)鐘管理芯片(AD9510)產(chǎn)生FPGA,AD9858,AD9957的工作時(shí)鐘。
3 關(guān)鍵模塊設(shè)計(jì)
3.1 數(shù)字延時(shí)模塊
對(duì)于脈沖的數(shù)字延遲的實(shí)現(xiàn),方法1是將DSP計(jì)算得到的延時(shí)時(shí)鐘個(gè)數(shù)值D,轉(zhuǎn)換為N位的二進(jìn)制碼,利用二進(jìn)制碼進(jìn)行控制??刹捎萌鐖D2基于寄存器的方法實(shí)現(xiàn),這種方法優(yōu)點(diǎn)是沒(méi)有固定延遲,最小可實(shí)現(xiàn)零延遲。但當(dāng)N增大時(shí),此法耗費(fèi)的FPGA觸發(fā)器資源呈幾何級(jí)數(shù)增加,因此,不適用于需要實(shí)現(xiàn)很大延時(shí)的場(chǎng)合。
方法2是采用如圖3所示的存儲(chǔ)轉(zhuǎn)發(fā)的方式,具體是:將輸入的待延時(shí)脈沖,用延時(shí)時(shí)鐘采樣后,以左端口地址A在每個(gè)延時(shí)時(shí)鐘周期遞增加1寫(xiě)入單bit的雙口RAM中,右端口以地址B在每個(gè)延時(shí)時(shí)鐘周期遞增加1進(jìn)行按序讀取,左右端口操作到(2N+1-1)的上限地址后自動(dòng)返回0地址繼續(xù)各自遞增操作。地址A和地址B滿足:B=A—D。D為需要的延時(shí)時(shí)鐘個(gè)數(shù)值。當(dāng)A
方法2避免了大延時(shí)情況下觸發(fā)器資源過(guò)度耗費(fèi),但存在固定延時(shí),另當(dāng)延時(shí)時(shí)鐘頻率很高時(shí),雙口RAM的讀寫(xiě)速度難以滿足要求。因此,本系統(tǒng)在實(shí)踐中對(duì)方法2進(jìn)行了改進(jìn)設(shè)計(jì),如圖4所示。
本設(shè)計(jì)將待延時(shí)的脈沖經(jīng)延時(shí)時(shí)鐘采樣后,經(jīng)串并轉(zhuǎn)換形成16 b的數(shù)據(jù),每16個(gè)延時(shí)時(shí)鐘完成一次串/并轉(zhuǎn)換,并輸出一個(gè)16 b寬度的雙口RAM的左端口寫(xiě)時(shí)鐘,地址A仍按序累加。將地址A末位補(bǔ)上四個(gè)“1”構(gòu)成寬地址x;x—D=Y(補(bǔ)碼形式);式中:D為DSP計(jì)算的延時(shí)時(shí)鐘個(gè)數(shù)值。將Y(二進(jìn)制)的低四位提取出來(lái)作為碼值C;其余高位構(gòu)成圖中雙端口RAM的右端口讀地址。其讀時(shí)鐘由圖右的并/串轉(zhuǎn)換單元每16個(gè)延時(shí)時(shí)鐘周期輸出一個(gè)脈沖;并/串轉(zhuǎn)換單元將讀出的16位數(shù)據(jù)轉(zhuǎn)換恢復(fù)為脈沖,經(jīng)過(guò)如圖1寄存器方式實(shí)現(xiàn)的4位寄存器延時(shí)環(huán)節(jié)(控制碼為碼值C)延時(shí)后,輸出延時(shí)后的脈沖。
該方法將雙口的讀寫(xiě)時(shí)鐘降速到延時(shí)時(shí)鐘的16分頻,大大降低了雙口RAM的速度壓力,更易于實(shí)現(xiàn)。另16 b的雙口RAM也可借助片外雙口RAM實(shí)現(xiàn),降低對(duì)FPGA存儲(chǔ)資源的依賴。該方法的缺點(diǎn)是有更大的固定延遲,雖在延時(shí)大時(shí)可預(yù)先由DSP修正控制值,但對(duì)要求延時(shí)小于其固定延時(shí)的情況則無(wú)法適用。本系統(tǒng)綜合采用兩種方法解決,即:DSP輸出碼值的最高位決定延時(shí)方法的切換,當(dāng)需求的延時(shí)大于固定延時(shí)時(shí)則采用圖4的方法;而需求的延時(shí)小于固定延時(shí)時(shí)采用圖2的寄存器法。
3.2 數(shù)字噪聲基帶產(chǎn)生模塊
本系統(tǒng)噪聲基帶信號(hào)的產(chǎn)生采用數(shù)字技術(shù),在FPGA內(nèi)完成,實(shí)現(xiàn)方法如圖5所示。
根據(jù)隨機(jī)信號(hào)理論,對(duì)均勻分布的隨機(jī)數(shù)進(jìn)行白化處理,可實(shí)現(xiàn)具有良好統(tǒng)計(jì)特性的高斯白噪聲。系統(tǒng)首先采用2個(gè)獨(dú)立的m序列發(fā)生器產(chǎn)生[0,1]區(qū)間上均勻分布的偽隨機(jī)數(shù),m序列發(fā)生器的硬件結(jié)構(gòu)如圖6所示,其中Co和Cn為對(duì)應(yīng)m序列多項(xiàng)式的系數(shù),取值為0和1。
然后將產(chǎn)生的一對(duì)偽隨機(jī)數(shù)通過(guò)Box_Muller變換可以得到一對(duì)相互獨(dú)立的符合標(biāo)準(zhǔn)正態(tài)分布的偽隨機(jī)數(shù)m和n,正好作為噪聲產(chǎn)生器的同相分量和正交分量。Box_Muller變換公式為:
式中:x,y即為前述2個(gè)互相獨(dú)立的在(0,1)上均勻分布的偽隨機(jī)數(shù)。
由于Box_Muller變換需要用到兩個(gè)非線性函數(shù),而非線性運(yùn)算很難在實(shí)際數(shù)字電路系統(tǒng)中實(shí)現(xiàn),故實(shí)際中需要構(gòu)建相應(yīng)查找表實(shí)現(xiàn)非線性運(yùn)算,分別記作sqrt_lut和sincos_lut。設(shè)sqrt_lut和sincos_Iut的輸出量化數(shù)據(jù)長(zhǎng)度為L(zhǎng)1和L2位,獨(dú)立變量m和n的定點(diǎn)長(zhǎng)度分別為N1和N2位。則當(dāng)采用均勻量化方案時(shí),sqrt_lut和sincos_lut所需的存儲(chǔ)空間分別為2N1×L1和2N2×L2。可以看出,如果直接實(shí)現(xiàn)查找表功能,當(dāng)N1和N2較大時(shí),對(duì)應(yīng)的存儲(chǔ)空間是相當(dāng)可觀的。
為了壓縮存儲(chǔ)空間,對(duì)sincos_lut,可以只存儲(chǔ)第一象限的正余弦值。其他象限則通過(guò)符號(hào)調(diào)整得到,這樣可以將sincos_lut占用存儲(chǔ)空間減少到原來(lái)的1/4。更進(jìn)一步,還可以對(duì)非線性曲線進(jìn)行分段折線近似,在實(shí)際查找表中只存儲(chǔ)各折線段的起始位置及對(duì)應(yīng)斜率。也可以大幅度減少所需查找表的數(shù)量,該策略同樣適用于sqrt_lut查找表。
得到一對(duì)相互獨(dú)立的符合標(biāo)準(zhǔn)正態(tài)分布變量m和n后,還要對(duì)其進(jìn)行低通濾波,以適應(yīng)對(duì)應(yīng)的信號(hào)帶寬。由于I路與Q路的濾波特性完全相同,為進(jìn)一步節(jié)省資源,可采用一個(gè)支持雙通道操作的濾波器同時(shí)完成I路與Q路的濾波。這可以通過(guò)ISE集成開(kāi)發(fā)環(huán)境中Core Generator中的FIR IP核來(lái)方便實(shí)現(xiàn)。濾波器系統(tǒng)可由上位機(jī)根據(jù)所需帶寬,傳遞相應(yīng)系數(shù)給DSP,繼而傳遞給FPGA。
噪聲功率調(diào)整模塊可根據(jù)設(shè)定信噪比的不同,乘以相應(yīng)系數(shù),對(duì)產(chǎn)生的帶限高斯白噪聲幅度進(jìn)行調(diào)整。
4 結(jié)論
本系統(tǒng)基于自主產(chǎn)生的原理,選用DSP和FPGA為核心處理器,通過(guò)合理的算法設(shè)計(jì),實(shí)現(xiàn)了可兼容多種雷達(dá)波形的中頻雷達(dá)回波模擬器的設(shè)計(jì),采用改進(jìn)的基于存儲(chǔ)轉(zhuǎn)發(fā)的數(shù)字脈沖延時(shí)方法,在達(dá)到8 ns的最小延時(shí)步長(zhǎng)的同時(shí),降低了對(duì)系統(tǒng)的硬件要求。系統(tǒng)的另一個(gè)關(guān)鍵模塊是數(shù)字噪聲發(fā)生器,其參數(shù)可以進(jìn)行實(shí)時(shí)修改,極大地提高了噪聲發(fā)生器的靈活性,與其他同類型設(shè)計(jì)相比,具有工作速度快,資源利用率高,硬件結(jié)構(gòu)簡(jiǎn)單等特點(diǎn)。最后采用DDS、數(shù)字正交上變頻等器件,實(shí)現(xiàn)了精確的復(fù)雜頻率調(diào)制、相位調(diào)制和幅度調(diào)制,保證了系統(tǒng)的靈活性、高兼容性和集成化程度。