數頻率校正的FPGA實現
O 引言
在無線電接收機系統中,由于會受到發射機運動、接收機運動和標準頻率隨時間動態變化等因素的影響,其接收機接收信號往往會發生頻率偏移,因而需要進行頻偏校正。在擴頻通信系統中,頻偏校正電路能消除中頻偏移對接收機擴頻碼的捕獲以及數據解調性能的影響,從而提高接收機的性能。
頻偏校正電路中通常需要根據給定相位產生余弦信號和正弦信號,其中最重要的實現技術是CORDIC (Coordinate Rotation Digital Computer,坐標旋轉數字計算機)算法。本文將詳細分析CORDIC算法的原理及其FPGA實現方法。
1 CORDIC算法的基本原理
在直角坐標系統中,假設有一向量(x,y),按逆時針方向旋轉φ度得到向量(x1,y1),則兩向量的代數關系為:
在式(1)中,如果讓旋轉的角度φ滿足條件:tanφ=±2-i,則式(1)中的乘法操作就可以轉換為移位操作,從而很容易在FPGA中實現。圖l所示是直角坐標下的向量旋轉示意圖。若需要旋轉的角度為θ,那么就可以通過n次旋轉一系列預定角度αi來完成。
(2)式中,di表示每次旋轉的方向為αi。由于每次旋轉都為預定角度值,所以cosαi為常數,而n次旋轉中每次迭代的處理可表示為:
一般情況下,當旋轉的次數足夠大時,Ki一般為常數。由于在實現時,可在最終的計算結果中再乘以這一常數,所以,可以去掉式(3)中的Ki,這樣,迭代方程就僅含移位和加法運算,從而大大的簡化了FPGA的實現復雜性。由于還需要一個方程決定di的符號,引入變量zi表示每次旋轉預定角度的累加值:
這樣,CORDIC算法的迭代方程可表示為:
其最終結果為:
在頻偏校正電路中,通常需要根據給定相位θ產生余弦信號cosθ和正弦信號sinθ。為了產生標準且無放大的正弦和余弦信號,可令輸入向量的y分量(即yo)為0,x分量(即xo)為1/An,這樣,式(6)就可簡化為:
可見,經過上述處理就可將輸入相位zo轉換為標準的正弦和余弦信號。
評論