對(duì)被噪聲污染的正弦波信號(hào)進(jìn)行頻率估計(jì)是信號(hào)參數(shù)估計(jì)中的經(jīng)典問(wèn)題,,目前國(guó)內(nèi)外已提出不少方法,。文獻(xiàn)給出了在高斯白噪聲中對(duì)正弦波信號(hào)頻率進(jìn)行最大似然估計(jì)算法,該算法能夠達(dá)到卡拉美-羅限(CRB),,但計(jì)算量大,,實(shí)現(xiàn)困難。FFT頻率估計(jì)方法具有速度快,、便于實(shí)時(shí)處理的特性而得到了廣泛應(yīng)用,。但FFT頻率估計(jì)方法得到的是離散頻率值,當(dāng)信號(hào)頻率與FFT離散頻率不重合時(shí),,由于FFT的“柵欄”效應(yīng),,信號(hào)的實(shí)際頻率應(yīng)位于兩條譜線之間。顯然僅僅利用FFT幅度最大值估計(jì)信號(hào)頻率難以滿足精度要求,,因此各種插值算法應(yīng)運(yùn)而生,。文獻(xiàn)給出了Rife算法,在對(duì)輸入信號(hào)進(jìn)行一次FFT運(yùn)算后,,利用最大譜線及其相鄰的一根次大譜線進(jìn)行插值來(lái)確定真實(shí)頻率位置,。當(dāng)信號(hào)的真實(shí)頻率處于兩相鄰量化頻率之間的中心區(qū)域時(shí),Rife算法精度很高,,但是在FFT量化頻率附近的誤差卻較大,。文獻(xiàn)提出了一種修正Rife算法,通過(guò)對(duì)信號(hào)進(jìn)行頻移,,使新信號(hào)的頻率位于兩個(gè)相鄰量化頻率點(diǎn)的中心區(qū)域,,然后再利用Rife算法進(jìn)行頻率估計(jì)。文獻(xiàn)提出了基于傅里葉系數(shù)插值迭代的頻率估計(jì)方法,,該方法能夠有效提高精度,,但需要多次串行迭代,不利于發(fā)揮FPGA并行處理的優(yōu)勢(shì),。本文分析了以上3種算法的特點(diǎn),,并以之為基礎(chǔ)結(jié)合FPGA的并行處理優(yōu)勢(shì),提出了一種利用信號(hào)FFT插值系數(shù)的幅度和相位信息來(lái)構(gòu)造頻率修正項(xiàng)的新算法,。
1 基于FFT插值的正弦波頻率估計(jì)法
1.1 算法原理
單一頻率正弦信號(hào)表示為:
式中:A,,f0,θ分別為正弦信號(hào)的幅度,、頻率和初相,;fs為采樣頻率。目前基于FFT的正弦信號(hào)頻率估計(jì)分為2個(gè)過(guò)程來(lái)實(shí)現(xiàn):粗測(cè)頻和精測(cè)頻,。粗測(cè)頻通過(guò)直接觀察FFT幅譜最大值點(diǎn)m來(lái)完成,,受觀測(cè)時(shí)長(zhǎng)T的限制,,誤差范圍為±l/(2T)。假設(shè)為信號(hào)頻率的真實(shí)值,,δ為信號(hào)頻率與其FFT幅度最大處對(duì)應(yīng)頻率的相對(duì)偏差,,m,與δ的關(guān)系如式(2)所示:
考慮到FPGA并行計(jì)算的特點(diǎn),,利用流水線結(jié)構(gòu)同時(shí)計(jì)算多個(gè)Xm+p,,Xm+p-1值,將串行迭代變?yōu)椴⑿械?,其運(yùn)算步驟歸納如下:
本文提出的算法分為粗測(cè)頻(步驟1)和精測(cè)頻(步驟2,,3),頻率估計(jì)值為粗測(cè)結(jié)果與精測(cè)結(jié)果之和,。
1.2 算法分析
本文算法與文獻(xiàn)提到的算法主要區(qū)別在于步驟3,。算法將正弦波信號(hào)所在頻段[m-1,m+1]細(xì)化為5個(gè)子頻段,,如圖1所示,,并根據(jù)δ1值的大小判斷信號(hào)譜線位置,,使信號(hào)的頻率位于某子頻段的中心區(qū)域再進(jìn)行頻率估計(jì),。
該算法也可認(rèn)為是對(duì)Rife算法的一種修正,通過(guò)適當(dāng)增加運(yùn)算量提高了估計(jì)精度,。當(dāng)p=O及p=1時(shí),,該算法退化為Rife算法。
與MRife算法相比:MRife算法是通過(guò)對(duì)原始信號(hào)進(jìn)行平移,,然后對(duì)平移后的信號(hào)做FFT,,重新用Rife算法計(jì)算δ。從式(3)可以發(fā)現(xiàn)“信號(hào)平移+FFT”與Xm+p時(shí)域運(yùn)算是一致的,,所不同的是,,由于計(jì)算單個(gè)Xm+p只需N次復(fù)數(shù)乘法和N次復(fù)數(shù)加法,運(yùn)算量比“信號(hào)平移+FFT”小,,因此本文算法可同時(shí)計(jì)算多個(gè)Xm+p,,Xm+p-1,以提高估計(jì)精度,。
2 算法硬件實(shí)現(xiàn)
本文算法充分利用了FPGA并行計(jì)算的優(yōu)點(diǎn),,在FPGA實(shí)現(xiàn)時(shí)采用流水線模式,經(jīng)過(guò)固有時(shí)間后,,每個(gè)時(shí)鐘周期可以輸出一個(gè)指定操作的結(jié)果,,提高了算法的運(yùn)算速度。
從前面的分析可知,,整個(gè)測(cè)頻算法主要包括粗測(cè)頻和精測(cè)頻2個(gè)部分:首先對(duì)信號(hào)作FFT運(yùn)算并進(jìn)行譜峰搜索得到峰值位置,;再通過(guò)插值FFT運(yùn)算得到頻率偏差δ1,,δ2;粗測(cè)頻部分可以直接調(diào)用相關(guān)FPGA的FFT庫(kù)函數(shù)完成,。從式(3)可知精測(cè)頻部分需要大量計(jì)算三角函數(shù),,本文采用查表法來(lái)實(shí)現(xiàn)。整個(gè)算法流程如圖2所示,。
3 仿真分析
信噪比定義為:,,σ為噪聲均方誤差。對(duì)正弦波信號(hào),,在相位,、幅度和頻率3個(gè)參數(shù)均是未知的情況下,頻率估計(jì)的方差下限為:
式中N為樣本數(shù),。在仿真中設(shè)fs=167 MHz,,N=512,因此兩條譜線間的頻率差為△f=fs/N?,F(xiàn)取fi=45.5△f+(i-1)△f/20(i=l,,2,…,,21)的正弦波,,即對(duì)應(yīng)FFT后峰值位置與信號(hào)真實(shí)峰值偏差δ為[-0.5,0.5],。對(duì)每個(gè)頻率fi的取值分別作l 000次Monte Carlo試驗(yàn),,計(jì)算δl,δ2的均方根誤差(RMSE),,定義比率R=RMSE/CRB,,仿真結(jié)果如圖3、圖4所示,。RSN取-20 dB~0 dB,,步長(zhǎng)為0.5 dB,分別做1 000次Monte Carlo試驗(yàn),,計(jì)算新算法的歸一化頻率估計(jì)均方誤差,,仿真結(jié)果如圖5所示。
仿真結(jié)果表明δ2不隨被估計(jì)信號(hào)的頻率分布而產(chǎn)生波動(dòng),;當(dāng)RSN>-14 dB時(shí),,新算法頻率估計(jì)值的方差在整個(gè)頻段都接近卡拉美-羅限,具有穩(wěn)定的性能,。
4 結(jié)論
本文在分析Rife,,MRife和傅里葉系數(shù)插值迭代3種算法的基礎(chǔ)上,將串行迭代變?yōu)椴⑿械?,由此得出了一種快速頻率估計(jì)算法,,并分析了新算法與前3種算法的異同,。計(jì)算機(jī)仿真結(jié)果證實(shí)新算法能夠快速、高精度估計(jì)單頻信號(hào)的頻率,,便于工程實(shí)現(xiàn),,適合應(yīng)用在雷達(dá)、電子對(duì)抗等對(duì)處理實(shí)時(shí)性要求非常高的領(lǐng)域,。