基于FPGA的高精度相位差測量算法實(shí)現(xiàn)
摘要:首先介紹了兩種高精度相位差測量算法,一種是基于直接數(shù)字頻率合成(DDS)的相關(guān)測量法,另一種是基于快速傅里葉變換(FFT)的FFT測量法。其次,通過理論仿真分析兩種算法在不同信噪比和數(shù)據(jù)長度下的性能,并在此基礎(chǔ)上給出了硬件平臺的設(shè)計(jì)方案。最后,基于高性能的FPGA芯片XC5SX95T,搭建了硬件實(shí)驗(yàn)平臺,完成了兩種相位差測量算法的硬件實(shí)現(xiàn)。經(jīng)過實(shí)測,該硬件平臺能夠達(dá)到良好的相位差測量精度。
關(guān)鍵詞:相位差;相關(guān);FFT;FPGA
0 引言
兩個(gè)同頻信號的相位差測量在工程上有著廣泛的應(yīng)用。近年來,精密測量、雷達(dá)定位、目標(biāo)識別等領(lǐng)域的高速發(fā)展對相位差測量精度和速度都提出了很高的要求。目前,理論上比較成熟的相位差測量算法主要利用相關(guān)原理和快速傅里葉變換(FFT)原理。但由于硬件環(huán)境的復(fù)雜性和不穩(wěn)定性,傳統(tǒng)硬件測量的精度往往大大低于軟件計(jì)算精度,而高性能FPGA芯片的發(fā)展為硬件提高相位差測量算法的精度提供了新的方向。
本文首先介紹了兩種相位差測量算法,一種是基于直接數(shù)字頻率合成(DDS)的相關(guān)測量法,另一種是基于快速傅里葉變換的FFT測量法。在軟件仿真的基礎(chǔ)上,利用高性能的FPGA芯片搭建硬件實(shí)驗(yàn)平臺,完成了兩種算法的硬件實(shí)現(xiàn)。
1 算法原理和理論仿真
1.1 相關(guān)測量法
首先在接收端利用本振信號與接收信號進(jìn)行相關(guān),再經(jīng)過數(shù)字低通濾波器濾除高頻分量,分別得到兩路接收信號的相位信息,最后相減得到相位差。由于噪聲與本振信號相關(guān)性很小,所以能夠很好地加以抑制。設(shè)被測信號為:
式中:f0為被測信號頻率;φ1,φ2分別為兩路信號的相位。兩路信號的相位差△φ=φ1-φ2,即為所求。
式中,a1為相關(guān)后輸出信號的幅度,由于兩路本振信號的幅度一致,故相關(guān)后輸出信號的幅度也可認(rèn)為相等,通過低通濾波器濾除高頻分量后可得:
1.2 FFT測量法
假設(shè)兩路接收信號同式(1),式(2)所示,則信號Si(n)(i=1,2)在經(jīng)過FFT之后得到離散頻譜Si(k),其頻率所在點(diǎn)的譜線的實(shí)部和虛部分別包含了信號相位的余弦信息和正弦信息?;诳焖俑道锶~變換的FFT測量法正是利用這兩項(xiàng)信息分別求得兩路被測信號的相位值,最后相減得到相位差。由于噪聲是寬帶的,在被測信號頻率點(diǎn)處的噪聲干擾影響并不大,不會產(chǎn)生很大干擾。FFT是離散傅里葉變換(DFT)的快速算法,根據(jù)DFT的原理:
式中:i=1,2;k0可通過在FFT頻譜上搜索最大值的方法確定。最后將兩路被測信號的相位差值相減即可得到相位差△φ:
1.3 理論仿真
在PC環(huán)境下用Matlab軟件仿真兩種相位差測量算法的性能,分別就以下兩種情況進(jìn)行性能仿真:一是白噪聲干擾條件下,二是不同數(shù)據(jù)長度N條件下,這兩項(xiàng)指標(biāo)分別決定了測量算法的高精度和實(shí)時(shí)性。假設(shè)兩信號的相位差△φ為30°,被測信號頻率f0為1 MHz,數(shù)字采樣頻率fs為8MHz。
仿真結(jié)果如圖1所示,其中圖1(a)是在不同信噪比白噪聲干擾條件下兩種測量法的仿真結(jié)果比較;圖1(b)是在不同數(shù)據(jù)長度N條件下兩種測量法的仿真結(jié)果比較。
仿真結(jié)果表明,在較低信噪比高斯白噪聲干擾條件下,F(xiàn)FT測量法對白噪聲的抑制能力要強(qiáng)于相關(guān)測量法,在高信噪比時(shí)兩種算法均可達(dá)到較高測量精度,其性能也趨于一致。在不同信號數(shù)據(jù)長度N條件下,相關(guān)測量法的精度隨著N的增加而提高,F(xiàn)FT測量法在N等于2的整數(shù)次冪的時(shí)候,其測量精度要高于相關(guān)測量法,在N不等于2的整數(shù)次冪的時(shí)候會發(fā)生由數(shù)據(jù)截?cái)嘁鸬念l譜泄漏,使其性能變差,這是因?yàn)橐c硬件實(shí)現(xiàn)相統(tǒng)一,對所有數(shù)據(jù)長度均作2的整數(shù)次冪的FFT運(yùn)算,所以在硬件實(shí)現(xiàn)的時(shí)候,F(xiàn)FT長度N應(yīng)該控制在2的整數(shù)次冪。
2 硬件實(shí)現(xiàn)
2.1 系統(tǒng)構(gòu)建
如圖2所示,本實(shí)驗(yàn)平臺由信號生成端和信號接收端兩部分組成。信號生成端由一塊FPGA芯片控制兩塊數(shù)模轉(zhuǎn)換(D/A)芯片生成兩路相位不同的中頻信號,其中兩路信號的相位差由相位控制端進(jìn)行實(shí)時(shí)控制。信號接收端使用兩塊模數(shù)轉(zhuǎn)換(A/D)芯片分別接收兩路中頻信號后傳至FPGA芯片進(jìn)行相位差的測量,測量得到的相位差由數(shù)據(jù)輸出端實(shí)時(shí)輸出。信號生成端與信號接收端之間用導(dǎo)線連接。
本平臺使用的FPGA芯片是Xilinx公司的Virtex-5系列的XC5SX95T芯片;D/A芯片使用AD公司的AD9957芯片,A/D芯片采用AD公司的AD94 61芯片;數(shù)據(jù)輸出端使用ChipScope在線調(diào)試軟件。中頻信號頻率設(shè)定為70 MHz。A/D芯片采樣頻率為32 MHz,則根據(jù)帶通采樣定律,輸入接收端FPGA芯片的數(shù)字信號的頻率分量主要有38 MHz和6 MHz。本實(shí)驗(yàn)就是利用6 MHz的頻率分量進(jìn)行相位差測量的。
相關(guān)測量法和FFT測量法在FPGA內(nèi)部的硬件實(shí)現(xiàn)流程圖如圖3所示,其中圖3(a)是相關(guān)測量法的硬件實(shí)現(xiàn)流程圖,圖3(b)是FFT測量法的硬件實(shí)現(xiàn)流程圖。
Xilinx公司為硬件工程師提供了大量預(yù)先設(shè)計(jì)好、經(jīng)過嚴(yán)格測試和優(yōu)化過的電路功能模塊(IP Core),這大大降低了硬件設(shè)計(jì)的繁瑣程度。本實(shí)驗(yàn)中相位差算法的硬件實(shí)現(xiàn)就充分運(yùn)用了這一優(yōu)勢。圖3硬件實(shí)現(xiàn)流程圖中的DDS模塊、低通濾波器模塊和FFT模塊都可以通過調(diào)用IP Core來實(shí)現(xiàn),而反正切模塊可以通過調(diào)用坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算(CORDIC)模塊來實(shí)現(xiàn)。
2.2 測量結(jié)果
在硬件實(shí)現(xiàn)過程中,為了防止頻率泄漏,固定數(shù)據(jù)長度和FFT變換長度N為2 048。為了比較硬件測量結(jié)果與軟件計(jì)算結(jié)果的性能,將經(jīng)過A/D芯片接收的數(shù)字信號導(dǎo)出至Matlab軟件進(jìn)行理論相位差值計(jì)算,所得到的結(jié)果與ChipSeope顯示的硬件測量相位差值結(jié)果進(jìn)行比較。圖4顯示了在發(fā)射端相位差一定的條件下,兩種算法各自的硬件測量結(jié)果與理論計(jì)算結(jié)果的誤差曲線。
實(shí)驗(yàn)結(jié)果表明,F(xiàn)FT測量法的精度比相關(guān)測量法的精度要稍微高,無論是FFT測量法還是相關(guān)測量法,硬件測試的結(jié)果與理論計(jì)算的結(jié)果非常接近,誤差很小。該硬件實(shí)驗(yàn)平臺可實(shí)現(xiàn)中頻信號的高精度相位差測量。
3 結(jié)論
首先對比了相關(guān)法和FFT法這兩種相位差測量算法的性能,得出FFT測量法對白噪聲的抑制能力要強(qiáng)于相關(guān)測量法,在高信噪比時(shí)兩種算法均可達(dá)到較高測量精度。通過對不同數(shù)據(jù)長度的信號進(jìn)行仿真分析,得出為了防止硬件實(shí)現(xiàn)上頻譜泄漏造成的FFT測量法性能的下降,需要在硬件實(shí)現(xiàn)的時(shí)候控制信號數(shù)據(jù)長度N為2的整數(shù)次冪。然后,在基于高性能的FPGA芯片XC5SX95T的基礎(chǔ)上,搭建了硬件實(shí)驗(yàn)平臺,通過硬件實(shí)測,得出對于中頻信號兩種算法硬件實(shí)測結(jié)果與理論仿真結(jié)果之間的誤差很小,都具有很高的精度。該實(shí)驗(yàn)平臺可實(shí)現(xiàn)高精度的相位差測量,在工程應(yīng)用中,可以根據(jù)信號的特點(diǎn)以及工程的實(shí)際需求選擇運(yùn)用這兩種方法。