王磊磊, 陳 潛
(上海無線電設(shè)備研究所,上海200090)
在短持續(xù)信號(hào)處理中,由于采樣點(diǎn)數(shù)有限,如何提高頻率分析精度一直是數(shù)字信號(hào)處理研究中的重點(diǎn)。典型的頻譜細(xì)化分析方法有頻率插值法、全相位 FFT法、Zoom FFT法、CZT 法等[1]。其中,頻率插值法提高頻率分辨率精度有限;全相位FFT法適用于相隔較大的多頻率成分離散頻譜;Zoom FFT法是通過復(fù)調(diào)制和低通抽取采樣實(shí)現(xiàn)的,適用于細(xì)化倍數(shù)較低的場(chǎng)合;CZT法能充分利用所采集的數(shù)字信號(hào),在折疊頻率內(nèi)任何窗口都能以任意選定的頻率分辨率進(jìn)行頻譜細(xì)化分析[2]。
傳統(tǒng)DSP實(shí)現(xiàn)CZT方案具有計(jì)算時(shí)間長(zhǎng)、需大存儲(chǔ)空間、參數(shù)調(diào)整不方便等缺點(diǎn)。為解決這個(gè)問題,可利用FPGA器件內(nèi)部包含豐富的硬件資源(如乘法器資源)和開放式IP(如DDS核)方便快捷地實(shí)現(xiàn)CZT。本文使用的FPGA芯片為Xilinx公司生產(chǎn)的XC3SD1800A。
設(shè)AD采樣信號(hào)為x(n),它的Z變換為
在Z平面內(nèi),變量z可以沿更一般的路徑取值[3],設(shè)z的取樣點(diǎn)為
式中:M為要分析的復(fù)頻譜點(diǎn)數(shù),可不等于N;A和W是任意復(fù)數(shù),可表示為
將式(3)和式(4)帶入式(2),可得
式中:A0為起始取樣點(diǎn)z0的矢量半徑長(zhǎng)度,CZT中A0=1,表示在單位圓上取值;θ0為起始取樣點(diǎn)z0的相角,即選取頻率范圍的起點(diǎn);φ0為兩相鄰zk點(diǎn)之間角頻率差,即選頻范圍內(nèi)的頻率分辨率。W 0=1,使得計(jì)算周線在單位圓上進(jìn)行;M=N,使得CZT便于計(jì)算。所以,通過調(diào)整 θ0來確定選頻范圍的起點(diǎn);通過調(diào)整φ0來確定選頻范圍內(nèi)頻譜細(xì)化倍數(shù)。將式(2)帶入式(1),可得
代入式(6),可得
設(shè)
則式(7)可變?yōu)?/p>
式(10)可用圖1來表示。
圖1 CZT的系統(tǒng)框圖
其中:f(n)與h(n)的離散卷積可用 f(n)與h(n)的適當(dāng)段的圓周卷積來表示。
有限長(zhǎng)序列的圓周卷積可采用FFT快速計(jì)算,如圖2所示。
圖2 利用FFT計(jì)算圓周卷積的CZT框圖
基于CZT的頻譜細(xì)化方法適用于采樣點(diǎn)數(shù)固定,細(xì)化倍數(shù)和選頻范圍可調(diào)的應(yīng)用場(chǎng)合。對(duì)由于柵欄效應(yīng)引起的測(cè)頻誤差采用CZT進(jìn)行細(xì)化可達(dá)到較高的頻率分析精度,但是對(duì)于譜線之間干涉較嚴(yán)重的情況,采用CZT進(jìn)行細(xì)化效果有限,此時(shí)只有增加采樣點(diǎn)數(shù),獲得更高的原始頻率分辨率,再進(jìn)行頻譜細(xì)化[4]。
從圖2中可看出CZT的計(jì)算過程包含三個(gè)FFT模塊和三個(gè)復(fù)數(shù)乘法模塊。另外W exp(n2/2)為線性調(diào)頻信號(hào),可由DDS產(chǎn)生。FFT模塊、復(fù)數(shù)乘法模塊以及DDS模塊均可以通過調(diào)用FPGA的IP核實(shí)現(xiàn),如圖3所示。選頻范圍的起始頻率及頻率細(xì)化倍數(shù)可以通過設(shè)置DDS模塊的參數(shù)來確定。
圖3 基于FPGA硬件實(shí)現(xiàn)CZT的結(jié)構(gòu)框架
為提高算法的計(jì)算時(shí)間,DDS模塊1可與DDS模塊2并行運(yùn)行;FFT模塊1可與FFT模塊2并行運(yùn)行。所有模塊均采用3級(jí)流水線的工作模式[5]。
為節(jié)省芯片資源,乘法器1可復(fù)用;FFT模塊1可與FFT模塊3復(fù)用。這樣采用FPGA實(shí)現(xiàn)一個(gè)CZT僅需要二個(gè)DDS模塊、二個(gè)FFT模塊、一個(gè)復(fù)數(shù)乘法器模塊便可完成,如圖4所示。
圖4 資源復(fù)用后的CZT結(jié)構(gòu)框架
從圖4看出,自DDS模塊1啟動(dòng)經(jīng)過復(fù)數(shù)乘法器1,再經(jīng)過FFT模塊1到達(dá)復(fù)數(shù)乘法器1的輸入端的時(shí)間,要比自DDS模塊2啟動(dòng)經(jīng)過FFT模塊2到達(dá)復(fù)數(shù)乘法器的輸入端的時(shí)間長(zhǎng)。為使兩條支路時(shí)間一致,在DDS模塊2和FFT模塊2之間加入一級(jí)緩存,如圖5所示。
圖5 基于FPGA硬件實(shí)現(xiàn)CZT的時(shí)序框架
傳統(tǒng)采用DSP實(shí)現(xiàn)CZT中,需要大量的空間存儲(chǔ)線性調(diào)頻信號(hào)W exp(n2/2)。另外,由于DSP芯片自身乘法累加器資源有限,所有的運(yùn)算只能順序執(zhí)行,這就造成計(jì)算時(shí)間長(zhǎng),給工程應(yīng)用帶來了巨大的障礙。當(dāng)采用FPGA后,系統(tǒng)結(jié)構(gòu)清晰,運(yùn)算時(shí)間大幅縮短,參數(shù)調(diào)整靈活。分別使用TI公司的 TMS320F2812芯片和Xilinx公司的XC3SD1800A芯片實(shí)現(xiàn)CZT計(jì)算時(shí)間,如表1所示。
表1 FPGA與DSP實(shí)現(xiàn)CZT運(yùn)算時(shí)間
從表1可以看出,盡管FPGA主頻是DSP主頻的一半,但是其計(jì)算時(shí)間是DSP計(jì)算時(shí)間的1/15。
一個(gè)XC3SD 1800A芯片實(shí)現(xiàn)的、可配置點(diǎn)數(shù)(32點(diǎn)至512點(diǎn))、可配置細(xì)化功數(shù)字頻率區(qū)間(0至2π)、8倍細(xì)化的CZT模塊占用資源,如表2所示。
表2 CZT模塊占用資源表
XC3SD1800A是Xilinx嵌入有乘法器核的產(chǎn)品中資源最少的芯片。從表2看出,LUT使用率僅為27%,Slice使用率僅為32%,DSP48A使用率僅為19%。
圖6、圖7為采樣率為100 kH z,采集頻率為24.219 kHz的數(shù)字信號(hào)。圖8為對(duì)時(shí)域進(jìn)行64點(diǎn)FFT的計(jì)算結(jié)果。圖9為對(duì)圖8中虛線部分內(nèi)的選頻范圍進(jìn)行8倍細(xì)化的CZT結(jié)果。所有計(jì)算均在FPGA芯片(XC3SD1800A)內(nèi)部完成。FFT計(jì)算的頻率為25 kH z,計(jì)算誤差為0.781 kHz;CZT計(jì)算的頻率為24.21875 kHz,計(jì)算誤差為0.00125 kH z。
圖6 輸入信號(hào)實(shí)部
圖7 輸入信號(hào)虛部
圖8 64點(diǎn)FFT計(jì)算結(jié)果
圖9 64點(diǎn)8倍細(xì)化CZT計(jì)算結(jié)果
本文根據(jù)工程應(yīng)用的需要,首先闡述了傳統(tǒng)使用DSP實(shí)現(xiàn)CZT所面對(duì)的不足,然后從CZT的原理出發(fā),提出了基于 FPGA硬件平臺(tái)實(shí)現(xiàn)CZT的方法。試驗(yàn)證明該方法的實(shí)時(shí)性比傳統(tǒng)使用DSP實(shí)現(xiàn)顯著提高,并且易于硬件實(shí)現(xiàn),具有較高的工程應(yīng)用推廣價(jià)值。
[1] 項(xiàng)春,董浩,周敏.基于頻譜校正理論的全息譜研究[J].煤礦機(jī)械,2007,(6):55-58.
[2] 俞寧.CZT-ZDFT算法及實(shí)現(xiàn)[J].武漢水利電力學(xué)報(bào),2001,4(2):126-136.
[3] 王世一.數(shù)字信號(hào)處理[M].北京:北京理工大學(xué)出版社,1986.
[4] 丁康,張曉飛.頻譜校正理論的發(fā)展[J].振動(dòng)工程學(xué)報(bào),2003,3(1):14-22.
[5] 魏紅亮,李明.一種快速的DBS多普勒中心的估計(jì)方法[J].制導(dǎo)與引信,2009,30(1):42-45.