基于TMS320C6701DSP線性調(diào)頻信號(hào)數(shù)字脈沖壓縮
線性調(diào)頻信號(hào)具有拋物線式的非線性相位譜,能夠獲得較大的時(shí)寬帶寬積;與其它脈壓信號(hào)相比,很容易用數(shù)字技術(shù)產(chǎn)生,且技術(shù)上比較成熟;所用的匹配濾波器對(duì)回波信號(hào)的多卜勒頻移不敏感,因而可以用一個(gè)匹配濾波器處理具有不同多卜勒頻移的回波信號(hào)。這將大大簡(jiǎn)化信號(hào)處理系統(tǒng),因此它在工程中得到了廣泛的應(yīng)用。采用這種信號(hào)的雷達(dá)可以同時(shí)獲得遠(yuǎn)的作用距離和高的距離分辨率。數(shù)字化的脈沖壓縮系統(tǒng)具有性能穩(wěn)定、受干擾小、工作方式靈活多樣等優(yōu)點(diǎn),是現(xiàn)代脈壓系統(tǒng)的發(fā)展趨勢(shì)。
本文引用地址:http://www.ex-cimer.com/article/257434.htm本文以TI公司的高性能的TMS320C6701浮點(diǎn)DSP芯片作為實(shí)現(xiàn)數(shù)字脈沖壓縮的核心器件,實(shí)現(xiàn)了線性調(diào)頻信號(hào)的頻域數(shù)字脈沖壓縮。
1 數(shù)字脈沖壓縮原理
數(shù)字脈沖壓縮采用數(shù)字信號(hào)處理技術(shù)完成相關(guān)匹配濾波,通常采用時(shí)域處理和頻域處理兩種方法實(shí)現(xiàn)這一過程。
1.1 時(shí)域脈沖壓縮處理
時(shí)域脈沖壓縮直接對(duì)雷達(dá)回波信號(hào)進(jìn)行卷積運(yùn)算,如圖1所示。其算式如下:
s(n)=s1(n)+jsQ(n);h(n)=hI(n)+jhQ(n)
y(n)=s(n)×h(n) (1)
式中,s(n)為A/D采樣之后的回波信號(hào);h(n)為匹配濾波器的沖激響應(yīng)信號(hào);y(n)為時(shí)域脈壓輸入信號(hào)。采用時(shí)域方法進(jìn)行脈沖壓縮且當(dāng)卷積運(yùn)算速度達(dá)到A/D采樣速度時(shí),可以進(jìn)行實(shí)時(shí)脈沖壓縮處理,輸入信號(hào)的長(zhǎng)度不受濾波器階數(shù)的限制。但當(dāng)A/D采樣頻率較高時(shí),脈壓處理將無法實(shí)時(shí)完成。
1.2 頻域脈沖壓縮處理
頻域脈沖壓縮先對(duì)輸入回波序列進(jìn)行FFT變換,將離散輸入時(shí)間序列變換成離散譜,然后乘以匹配濾波器沖擊響應(yīng)的離散譜,再用逆FFT還原成壓縮后的時(shí)間離散信號(hào),如圖2所示。其算式如下:
S(k)=FFT(s(n));H(k)=FFT(h(n))
y(n)=IFFT(S(k)×H(k))=IFFT(FFT(s(n))×FFT(h(n))) (2)
在大時(shí)寬信號(hào)時(shí),采用高速FFT算法,大大減少了運(yùn)算量,提高了運(yùn)算速度,因而現(xiàn)代雷達(dá)體制廣泛采用的是頻域算法。頻域算法的實(shí)現(xiàn)要求發(fā)展快速傅立葉變換的硬件,以前多用高速FFT運(yùn)算器件實(shí)現(xiàn)頻域脈壓。但隨著通用DSP器件速度的不斷加快,這些專用FFT器件不僅沒有了高速FFT算法運(yùn)算上的優(yōu)勢(shì),同時(shí)還伴隨有功能單一、不便于功能擴(kuò)展、成本高、實(shí)現(xiàn)電路復(fù)雜等劣熱,因此逐漸被淘汰,取而代之的是高速DSP器件。本文正是TI公司的高性能的TMS320C6701浮點(diǎn)DSP來實(shí)現(xiàn)頻域數(shù)字脈沖壓縮。
2 TMS320C6701的結(jié)構(gòu)和性能
TMS320C6701(以下簡(jiǎn)稱C6701)是TI公司近年來推出的含多個(gè)處理單元的一種新型新點(diǎn)DSP芯片。它采用VLIW結(jié)構(gòu),在167MHz的主頻下可以得到1GFLOPS的高處理速度。CPU中包括報(bào)兩套對(duì)套的運(yùn)算單元(L,S,M,D)和相應(yīng)的兩套寄存器組,每組有16個(gè)32位寬的寄存器。每個(gè)功能單元輸入輸出端口相互獨(dú)立,可實(shí)現(xiàn)并行處理。
C6701的地址總線為32位,尋址范圍達(dá)到4GB。存儲(chǔ)空間可分為四部分:片內(nèi)程序空間、片內(nèi)數(shù)據(jù)空間、外部存儲(chǔ)空間和內(nèi)部外圍設(shè)備空間,可通過對(duì)五個(gè)BOOTMODE引腳的靈活設(shè)置設(shè)定各空間的地址范圍。片內(nèi)數(shù)據(jù)空間又分成兩塊,每一塊RAM被組織為八個(gè)2K×16的存儲(chǔ)體,使得CPU可以同時(shí)訪問不同存儲(chǔ)體的數(shù)據(jù),而不會(huì)發(fā)生沖突。片內(nèi)程序空間可設(shè)為Cache,存儲(chǔ)經(jīng)常使用的代碼,減少片外訪問次數(shù),從而提高程序運(yùn)行速度。
C6701的外圍端口包括DMA控制器、主機(jī)接口(HPI)、中斷選擇等。兩個(gè)多通道緩存串行口(McBSP)除多通道、比緩存外,還支持多種數(shù)據(jù)格式、硬件A/μ率壓擴(kuò)展 、位時(shí)鐘和幀時(shí)鐘的靈活編程,另外還提供SBSRAM、SDRAM等高速存儲(chǔ)器的無縫接口。C6701采用間接尋址,有線性方式和循環(huán)方式 兩種。程序按三級(jí)流水線執(zhí)行,即取指、譯碼、執(zhí)行。C6701具有豐富 的指令集,內(nèi)含50余條指令,且大部分是單周期的,可完成數(shù)據(jù)傳輸、算術(shù)邏輯運(yùn)算和程序控制等功能。
3 頻域脈沖壓縮系統(tǒng)的硬件結(jié)構(gòu)和原理
以C6701為核心器件,輔以相應(yīng)的輸入輸出電路,可完成數(shù)字頻域脈沖壓縮系統(tǒng)的設(shè)計(jì)。實(shí)現(xiàn)的硬件結(jié)構(gòu)如圖3所示。
將正交的兩路采樣信號(hào)輸入到放大器。放大器一方面對(duì)信號(hào)放大。另一方面也將放大的信號(hào)以差分方式輸出。信號(hào)以差分方式輸出是為了抑制掉高階諧波分量,濾掉各種干擾信號(hào)(如電源和地的噪聲),這樣有利于提高A/D轉(zhuǎn)換器的性能。系統(tǒng)選用了12位A/D轉(zhuǎn)換芯片AD9220,該芯片具有單端輸入和差分輸入兩種方式,因此,放大器輸出信號(hào)能直接輸入到AD9220進(jìn)行模/數(shù)轉(zhuǎn)換。兩路回波信號(hào)經(jīng)AD9220正交采樣后,再經(jīng)符號(hào)擴(kuò)展成16位存入FIFO。C6701處理器將輸入的32位信號(hào)送到內(nèi)部RAM,按照?qǐng)D2所示的方法進(jìn)行頻域脈壓處理。首先對(duì)輸入信號(hào)進(jìn)行FFT變換,將信號(hào)變換離散的頻域抽樣值。然后將FFT變換 結(jié)果和匹配濾波系數(shù)相乘。設(shè)計(jì)中將匹配濾波器的系數(shù)存放在FLASH ROM中,上電后將此系數(shù)搬移到內(nèi)部高速數(shù)據(jù)RAM,然后才進(jìn)行運(yùn)算。為了獲得-40dB以下的副瓣電平,通常將匹配濾波器的系數(shù)進(jìn)行漢明加權(quán)后存放在ROM中。再后,對(duì)相乘結(jié)果進(jìn)行反傅立葉變換,完成頻域脈壓。量后,將反傅立葉變換結(jié)果進(jìn)行求模運(yùn)算,得出離散的脈壓信號(hào)并將其輸出。由于C6701是浮點(diǎn)處理器,既保證了較高的精度,又不用考慮溢出問題,使得有限字長(zhǎng)的影響可以忽略不計(jì)。當(dāng)雷達(dá)發(fā)射周期較長(zhǎng)時(shí),可以將輸入信號(hào)分段進(jìn)行處理,每段單獨(dú)進(jìn)行頻域脈沖壓縮,然后按照重疊保留法將每段壓縮結(jié)果組合成整個(gè)信號(hào)脈壓輸出。
以上脈壓算法可以通過編程在DSP內(nèi)部實(shí)現(xiàn),這不僅簡(jiǎn)化了電路、減小了體積、提高了系統(tǒng)的可靠性,而且擴(kuò)展了系統(tǒng)的功能,使系統(tǒng)具有較高的靈活性,即在不改變硬件電路的情況下,只需改變系統(tǒng)軟件和外部ROM中的匹配系數(shù),就能完成不同信號(hào)的脈沖壓縮功能。
4 頻域脈沖壓縮系統(tǒng)的軟件設(shè)計(jì)
頻域脈沖壓縮系統(tǒng)的軟件設(shè)計(jì)主要采用TI公司的CCS軟件開發(fā)。在CCS下,軟件可分為三個(gè)階段。第一階段,根據(jù)任務(wù)編寫C語言程序,并對(duì)程序進(jìn)行優(yōu)化。當(dāng)代碼性能較低時(shí),為改進(jìn)代碼性能進(jìn)入第二階段,第二階段利用優(yōu)化方法重新編寫C代碼,并檢查所生成的代碼性能。第三階段,從C語言程序中抽出對(duì)性能影響很大的程序段,使用線性匯編語言重新編寫,然后使用匯編優(yōu)化器對(duì)線性匯編程序進(jìn)行優(yōu)化,從而得到滿意的代碼性能。根據(jù)以上方法,編寫出的脈沖壓縮系統(tǒng)的軟件包括系統(tǒng)初始化子程序、DMA子程序、正傅立葉變換FFT子系統(tǒng)和反傅立葉變換IFFT子程序、復(fù)數(shù)相乘子程序、求模子程序等。其流程如圖4所示。
在執(zhí)行系統(tǒng)初始化程序時(shí),要對(duì)系統(tǒng)的控制狀態(tài)寄存器、外部存儲(chǔ)器接口控制寄存器等進(jìn)行參數(shù)設(shè)置,保證系統(tǒng)按要求正常工作。為提高系統(tǒng)效率,系統(tǒng)通過DMA通道從外部CE2空間將數(shù)據(jù)讀入片內(nèi)RAM,所以初始化程序必須設(shè)置好外部存儲(chǔ)器CE2空間的控制寄存器。在進(jìn)行FFT變換子程序的設(shè)計(jì)時(shí),因?yàn)榛乃惴ū然惴?,并且頻率抽取算法比時(shí)間抽取算法能更好地發(fā)揮C6701的并行運(yùn)算能力,所以采有基四頻率抽取算法。對(duì)4096點(diǎn)信號(hào)進(jìn)行FFT變換,所需時(shí)間≤400μs。編寫的復(fù)數(shù)數(shù)組相乘通用子程序?qū)崿F(xiàn)4096點(diǎn)運(yùn)算所需時(shí)間≤95μs。對(duì)于反變換,可以直接得用前面的FFT算法實(shí)現(xiàn),即先對(duì)輸入頻域序列作共軛變換,然后進(jìn)行FFT運(yùn)算,并對(duì)所得的時(shí)域序列再作共軛變換 ,最后除以FFT變換 數(shù)據(jù)的個(gè)數(shù)。但這樣進(jìn)行反變換所需要的時(shí)間較長(zhǎng),不能實(shí)時(shí)處理。為此按照其四頻率抽取的算法編寫了IFFT子程序,此IFFT子程序經(jīng)過CCS優(yōu)化之后,對(duì)4096點(diǎn)逆變換來講,需要400μs左右。本程序和FFT子程序配合使用,可以方便地實(shí)現(xiàn)信號(hào)的正傅立葉變換和傅立葉變換,而不需要進(jìn)行位反轉(zhuǎn)操作,不僅節(jié)省了存儲(chǔ)空間,而且加快了運(yùn)算速度。為求復(fù)信號(hào)的模值,可以采用迭代等算法編寫求模子程序。
系統(tǒng)初始化程序如下:
system_intr()
{LOAD_REG_FIELD(CSR,0,0,2);
SET_REG(ICR,0xFFF0);
REG_WRITE(EXITERNAL_INTR_POL_ADDR,0);
INTR_MAP_RESET();
SET_REG(ISTP,0);
LOAD_FIELD(EMIF_CE2_CTRL_ADDR,5,READ_SETUP,READ_SETUP_SZ);
LOAD_FIELD(EMIF_CE2_CTRL_ADDR,8,READ_STROBE,READ_STROBE_SZ);
}
圖5是利用CCS提供的數(shù)據(jù)圖形顯示工具進(jìn)行坐標(biāo)變換后的脈壓結(jié)果。此線性調(diào)頻脈沖參數(shù)為:時(shí)寬32μs,帶寬5MHz,采樣頻率為5MHz。
采用先進(jìn)的高速數(shù)字信號(hào)處理器,使得大點(diǎn)數(shù)脈沖壓縮能夠在很短的時(shí)間內(nèi)高質(zhì)量地完成。同時(shí)利用本系統(tǒng),只要改變存儲(chǔ)器的系數(shù),就可以方便地實(shí)現(xiàn)非線性調(diào)頻脈沖壓縮及其它濾波,具有通用性。對(duì)于要求更高速度的系統(tǒng),可采用多片TMS320C6701并行處理。而TMS320C6701所帶的符合IEEE1149.1標(biāo)準(zhǔn)的JTAG口能夠方便地進(jìn)行了多片級(jí)聯(lián)調(diào)試,再加上開發(fā)軟件CCS所具有強(qiáng)大的功能,可以大大提高工作效率和縮短產(chǎn)品的開發(fā)時(shí)間。
評(píng)論