基于FPGA的數字鎖相環(huán)平臺的搭建
基于鎖相環(huán)的理論,以載波恢復環(huán)為依托搭建數字鎖相環(huán)平臺,并在FPGA中實(shí)現鎖相環(huán)的基本功能。
本文引用地址:http://dyxdggzs.com/article/201612/326341.htm在FPGA中實(shí)現鎖相環(huán)的自動(dòng)增益控制,鎖定檢測,鎖定時(shí)間、失鎖時(shí)間的統計計算,多普勒頻偏的估計。
通過(guò)USB接口與電腦實(shí)現通信來(lái)交換有關(guān)鎖相環(huán)的參數。電腦傳遞鎖相環(huán)所需的參數(如等效噪聲帶寬等),FPGA將鎖相環(huán)的結果傳遞給電腦(如鎖定時(shí)間,多普勒頻率等)。
二、設計任務(wù)
鎖相環(huán)的輸入具有自動(dòng)增益控制AGC模塊,這樣可以允許一定動(dòng)態(tài)范圍的信號輸入,也減少了輸入環(huán)路信噪比的大幅波動(dòng),從而減少了環(huán)路噪聲帶寬的大幅波動(dòng)。
基于VHDL語(yǔ)言實(shí)現數字鎖相環(huán),混頻基于CORDIC算法,相位提取模塊是修正的反正切相位提取,環(huán)路濾波器采用理想的二階環(huán),NCO采用32位的累加器。設計完先進(jìn)行Modelsim仿真,后利用ISE自帶的CHIPSCOPE下載調試。
具有鎖定檢測模塊,當環(huán)路鎖定時(shí),通過(guò)LED燈或數碼管給出鎖定指示。
通過(guò)鎖定指示的輸出信號,來(lái)控制一個(gè)實(shí)時(shí)時(shí)鐘,這樣可以統計鎖定時(shí)間和失鎖時(shí)間,所記錄的時(shí)間存入兩個(gè)FIFO。
設計USB通信模塊,使得設計的鎖相環(huán)可以同電腦進(jìn)行通信,將接收電腦傳給FPGA的環(huán)路參數,同時(shí)將檢測的鎖定時(shí)間和失鎖時(shí)間,鎖定指示,多普勒頻偏估計等傳輸給電腦。
利用MATLAB GUI設計一個(gè)控制面板,通過(guò)控制面板可以隨時(shí)改變鎖相環(huán)的環(huán)路參數,也可以接收鎖相環(huán)通過(guò)USB傳輸給電腦的鎖相環(huán)的結果。
三、設計原理
隨著(zhù)數字技術(shù)的發(fā)展,現在出現了很多資源豐富的可編程器件,像FPGA、DSP、專(zhuān)用集成電路等,基于軟件無(wú)線(xiàn)電的通信系統,一般采用數字鎖相環(huán)。數字鎖相環(huán)具有鎖定精度高,跟蹤帶寬大,參數可以在不修改硬件電路的前提下進(jìn)行修改等種種的優(yōu)點(diǎn)。目前,數字鎖相環(huán)廣泛應用于通信、航天等領(lǐng)域。針對具體的應用,數字鎖相環(huán)可以用于載波跟蹤,相位提取等。本設計就是以載波回復環(huán)為依托進(jìn)行的數字鎖相環(huán)設計。
(1)、鎖相環(huán)的基本框架
鎖相環(huán)是一個(gè)頻率與相位的同步控制系統。它的工作過(guò)程可用下圖表示
上面的鎖相環(huán)是一般模擬鎖相環(huán)所必需包含的環(huán)路組成,包括鑒相器、環(huán)路濾波器、壓控振蕩器。而對于利用軟件來(lái)實(shí)現的全數字鎖相環(huán),必須在FPGA內部實(shí)現鎖相環(huán)的鑒相器、環(huán)路濾波器、壓控振蕩器等部件。
(2)、本設計所要實(shí)現的鎖相環(huán)的基本框架
本設計中,鑒相器有CORDIC混頻器加上修正的arctan相位提取器組成,環(huán)路濾波器有理想二階環(huán)組成,NCO由32位的數字累加器組成。
下面就比較重要的幾個(gè)模塊進(jìn)行介紹
1、數字前端AGC模塊
數字前端模塊的框圖如下:
數字前端模塊接收來(lái)自ADC的采樣數據,然后分成兩路輸出給載波恢復模塊。輸入到ADC的模擬信號頻率為

,ADC的采樣頻率為。這種IQ采樣過(guò)程把ADC的輸出數據頻譜搬移到
附近。在數字前端模塊中,把輸入的數據分成I、Q兩路,然后數字混頻到基帶。這個(gè)數字混頻只是簡(jiǎn)單的乘上頻率為

序列,不會(huì )產(chǎn)生二次頻,因此后續不需要濾波處理。信號處理過(guò)程的數學(xué)表達式如下,假定ADC的中頻輸入信號為一簡(jiǎn)單的正弦波:

ADC的輸出為:

經(jīng)奇偶分離和數字混頻后,輸出的I、Q兩路信號分別為:

這兩路信號在頻域上存在2F1頻率附近的頻譜,因此必須把這個(gè)頻譜消除掉。本設計采用了直接抽去掉0的方法,抽取后I,Q兩路信號的數據速率從4F1降到了2F1。
經(jīng)抽取后的兩路信號分別為:


從上兩式可見(jiàn),直接抽取的方法會(huì )使I、Q兩路信號之間存在一個(gè)跟采樣頻率及多普勒頻偏有關(guān)的固定相位偏差

但是由于

因此這個(gè)偏差非常小,在本設計中就不考慮這個(gè)固定偏差了。于是


其中和
都為零均值的高斯噪聲,且互不相關(guān),方差為
,其中
是單邊帶噪聲功率譜密度。
一般載波跟蹤環(huán)要工作在很大的動(dòng)態(tài)范圍下,為了使環(huán)路帶寬和阻尼系數變化范圍不要太大,從而使環(huán)路處于正常的工作狀態(tài)下,必須控制環(huán)路內的信號強度,因為環(huán)路帶寬和阻尼系數與信號強度有關(guān)。
AGC使信號可以保持一個(gè)近乎恒定的信號強度,增大了環(huán)路的動(dòng)態(tài)范圍,影響的是信號的功率或幅度,而對于相位幾乎沒(méi)有影響。AGC是采用了相干AGC的處理方法,由于它對于相位無(wú)影響,它的作用只是輸出一個(gè)幅度盡量恒定的信號,因此這里就不討論AGC的算法了。2、CORDIC 混頻器
CORDIC是一種迭代的算術(shù)計算算法,通過(guò)相位旋轉的方式能求各種基本函數的值?;谝莆?相加方式實(shí)現的CORDIC算法是一種高效的硬件處理算法,非常適合在FPGA中應用。直角坐標系中,旋轉矢量[x, y]和相位 的關(guān)系圖如下:
其方程如下:

上式可改寫(xiě)為:

如果把旋轉的角度限定為

,即

,
上式中與正切相乘的算法就簡(jiǎn)化為移位操作,因此迭代的旋轉算法可以表示為:

其中:

以上方程在硬件中實(shí)現非常簡(jiǎn)單,因為乘 操作可以通過(guò)右移來(lái)實(shí)現。
把增益因子從迭代方程中移除,基于移位-相加的CORDIC算法方程如下:

其中:

以上方程在

范圍內的任意角度都能收斂。如果要在整個(gè)直角坐標系上工作,還必須把

映射到

。此外,還必須補償增益因子,定義為:

其中n是CORDIC算法的迭代計算次數。的值取決于迭代次數n,在n確定的情況可以視為一個(gè)常數。當n趨于無(wú)窮大時(shí),
的值為0.60725。因為
和
是常數,可以預先存在一個(gè)很小的查找表里。
3、環(huán)路設計及分析
基于跟蹤性能和穩定性的折中考慮,接收機一般采用二階環(huán)。在本設計中,我們采用了理想型積分環(huán)路濾波器。理想型積分環(huán)路濾波器的鎖相環(huán)有更佳的跟蹤性能,在固定頻偏下,無(wú)穩態(tài)相位誤差。
一階理想型積分環(huán)路濾波器的數字域表達式:





四、設計仿真
用MATLAB軟件搭建鎖相環(huán)的核心仿真平臺,包括中頻欠采樣,數字前端分成I、Q兩路信號,AGC,CORDIC混頻,積分抖落濾波器,修正的正切相位提取器,環(huán)路濾波器,NCO,鎖定檢測等。
(1)、系統框圖
(2)、仿真結果
1、AGC的仿真,輸入AGC的I、Q兩路信號幅度為0.01V Vpp,從仿真圖中可用看出AGC輸出的幅度為1V Vpp,鎖定時(shí)間在3ms左右。
2、相位誤差以及多普勒頻偏的估計的仿真,在仿真中我們設定的多普勒頻偏為1kHz,從下圖的仿真結果鎖定后的相位誤差非常小,所得到的多普勒頻偏的估計也恰好為1KHz。
評論