《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > 基于CORDIC的頻偏估計幅角計算算法
基于CORDIC的頻偏估計幅角計算算法
來源:微型機與應用2014年第7期
王建軍,徐 力,安 鵬
(寧波工程學院,,浙江 寧波 315016)
摘要: 提出了一種改進的向量模式下的CORDIC算法——MV-CORDIC算法,,可以用來實現(xiàn)通信系統(tǒng)中頻偏估計幅角的計算。仿真結(jié)果表明,,該算法相比傳統(tǒng)的CORDIC算法,,可以大幅度減少CORDIC算法的迭代次數(shù),。算法輸出幅角的誤差小,,可以利用其實現(xiàn)頻偏估計中幅角的計算,。
關(guān)鍵詞: 軟件 CORDIC 頻偏估計 OFDM
Abstract:
Key words :

摘  要: 提出了一種改進的向量模式下的CORDIC算法——MV-CORDIC算法,可以用來實現(xiàn)通信系統(tǒng)中頻偏估計幅角的計算,。仿真結(jié)果表明,,該算法相比傳統(tǒng)的CORDIC算法,可以大幅度減少CORDIC算法的迭代次數(shù),。算法輸出幅角的誤差小,,可以利用其實現(xiàn)頻偏估計中幅角的計算。
關(guān)鍵詞: CORDIC,;頻偏估計,;OFDM

 正交頻分復用(OFMD)技術(shù)具有抗多徑、頻譜利用率高等特點,,在寬帶無線傳輸領(lǐng)域中得到廣泛的應用,。無線局域網(wǎng)(WLAN)標準802.11a/b/g均將OFDM技術(shù)作為其物理層的標準。然而在OFDM系統(tǒng)中,,系統(tǒng)對載波頻偏極為敏感。載波頻偏會破壞載波間的正交性,,引入的子信道間的干擾(ICI),,導致各子信道不能正確解調(diào),帶來嚴重的誤碼,,使系統(tǒng)的性能大幅度下降,。因此,頻偏估計算法的設(shè)計和實現(xiàn)是OFDM系統(tǒng)中一個重要的問題,。采用基于訓練符號的時域相關(guān)算法計算頻偏時,,需要在小數(shù)倍頻偏估計階段對頻偏的幅角進行計算[1]。一般采用CORDIC(Coordinate Rotation Digital Compute)[2]算法實現(xiàn)幅角的計算,,這種算法的顯著特點是用硬件實現(xiàn)該算法時只需要加法器和移位寄存器,,因此在現(xiàn)代通信系統(tǒng)中得到了廣泛使用。但是,,CORDIC算法的迭代次數(shù)和輸入數(shù)據(jù)的字長相同,,對于輸入字長為N的數(shù)據(jù)需要迭代N次才能得到最精確的幅角值。
 隨著超大規(guī)模集成電路VLSI(Very Large Scale Integrated Circuites)的發(fā)展,,提高CORDIC算法的速度和精度,,已經(jīng)提出了很多改進的CORDIC算法[3-6],但主要集中在旋轉(zhuǎn)模式中對CORDIC算法的改進。參考文獻[7]提出一種類CORDIC算法來計算幅角值,,但沒有減少CORDIC算法的迭代次數(shù),。本文提出了一種改進的向量模式下的CORDIC算法——MV-CORDIC算法,在滿足一定輸出精度的條件下能有效減少算法的迭代次數(shù),。
1 CORDIC算法
 CORDIC是一種在直線,、圓弧和雙曲坐標系統(tǒng)下進行復雜計算的迭代算法。CORDIC只用移位和加法操作就可以完成復雜運算的實現(xiàn),。在直角坐標系統(tǒng)中,,它包括旋轉(zhuǎn)模式(Rotation Mode)和向量模式(Vector Mode)兩種操作模式。旋轉(zhuǎn)模式指的是用一對初始向量(x0,,y0)和一組角度序列{?茲i}去逼近一個目標向量(xn,,yn)。向量模式用來計算初始向量(x0,,y0)的模和幅角,。該算法的統(tǒng)一算法模式[8]如式(1)和表1所示。

2 MV-CORDIC算法
 CORDIC將簡單的運算分解為加法和移位運算,,大大減少了運算量,,適合FPGA以及硬件邏輯的實現(xiàn)。但是CORDIC算法是一個線性收斂和順序執(zhí)行的迭代算法,,即對N位精度至少需要N次迭代,,第i次迭代只有在第i+1次迭代完成后才能執(zhí)行。這些特性限制了CORDIC算法的計算速度,。提高CORDIC計算速度的方法主要有:(1)減少CORDIC算法每次迭代所用的時間,;(2)減少CORDIC算法的迭代次數(shù)。在旋轉(zhuǎn)模式下有很多算法采用并行方法來加速CORDIC的計算,。比如并行CODIRC旋轉(zhuǎn)算法[9]和MVR-CORDIC算法[10],。
本設(shè)計借鑒MVR-CORDIC[10]算法在旋轉(zhuǎn)模式下對角度處理的思想,改進向量模式下CORDIC的計算,,提出MV-CORDIC算法,,使算法在保證一定輸出精度的前提下迭代次數(shù)變少。
2.1 算法思路
  基于MVR-CORDIC的思想,,本設(shè)計中的算法改變了傳統(tǒng)CORDIC算法中的微循環(huán),,算法的主要特點如下。
?。?)跳過某些微循環(huán),。這樣不僅能減少迭代次數(shù),還可以提高角度循環(huán)的精度,,比如:X0=1,,Y0=1,,按照傳統(tǒng)CORDIC算法迭代7次,最終的幅角值的殘余誤差為0.015,;如果采用本設(shè)計的算法只需要進行一次?琢i=π/4的微循環(huán),,而跳過其他微循環(huán),所得幅角的殘余誤差為0,;
?。?)重復某些微旋轉(zhuǎn)。傳統(tǒng)CORDIC算法對基本角度的集合中的每個元素只能使用一次,,對某些特殊的X0,、Y0,其幅角為基本角度集的整數(shù)倍時,,本算法進行多次相同基本角度的微旋轉(zhuǎn),,這樣也能減少幅角的殘余誤差;
?。?)大大減少了迭代次數(shù),。傳統(tǒng)的CORDIC算法為能達到一定的精度一般要求迭代次數(shù)Rm等于字長W,而在本算法中,,迭代次數(shù)Rm<<W,。如上所述,本算法的迭代方程式可以改寫為:

3.3 仿真測試
 MATLAB仿真測試分別使用16 bit定點數(shù)來表示輸入的輻角,。對10萬組X0,,Y0隨機數(shù)據(jù)采用不同的迭代次數(shù),得到MV-CORDIC算法和原始CORDIC算法對比結(jié)果及真實值的平均精度差,,分別如圖1和表2所示,。可以看到,,MV-CORDIC算法大大降低了算法的迭代次數(shù),使得系統(tǒng)可以根據(jù)輸出數(shù)據(jù)精度的要求,,選擇更少的迭代次數(shù)來實現(xiàn)頻偏估計幅角的計算,。

 

 

 本文提出了MV-CORDIC算法來實現(xiàn)通信系統(tǒng)中頻偏估計幅角的計算,以減少CORDIC算法的迭代次數(shù),。通過仿真實驗可以看到,,在保證一定精度的情況下,采用MV-CORDIC算法對比傳統(tǒng)模式下的CORDIC可以大大地減少迭代次數(shù),。采用MV-CORDIC算法優(yōu)于原始CORDIC算法,,可以用于頻偏估計,提高通信系統(tǒng)的信噪比,。
參考文獻
[1] MOOSE P H. A technique for orthogonal frequency division multiplexing frequency offset correction[C]. IEEE Transactions on communications,, 1994.
[2] VOLDER J E. The CORDIC trigonometric computing technique[J]. IRE Transactions on Electronic Computers,,1959,EC-8(3):330-334.
[3] Wu Chengshing,, Wu Anyue. Modified vector rotational CORDIC(MVR-CORDIC) algorithm and its application to FFT[J]. IEEE Transactions on Circuits and Systems,, 2001, 48(6):548-561.
[4] JUANG T B,, HSIAO S F,, TSAI M Y. Para-CORDIC: Parallel CORDIC rotation Algorithm[J]. IEEE Transactions on Circuits and Systems, 2004,,51(8):1515-1524.
[5] HU Y H. CORDIC-based VLSI architecture for digital signal processing[C]. IEEE Signal Processing,,1992.
[6]    KUHLMANN M, PARHI K K. A high-speed CORDIC algorithm and architecture for DSP application[C]. IEEE Workshop Signal Processing Systems(Sips),, Taipei,, Taiwan, 1999.
[7] MAHARATNA K,,  TROYA A,, KRSTI?譩 M, et al. A  CORDIC  like  processor  for computation of arctangent and absolute magnitude of a Vector[C]. IEEE ISCAS &prime;04,, Vancouver (Canada),, May 2004.
[8] WALTHER J S. A unified algorithm for elementary functions[C]. Spring joint computer conference, May 18-20,, 1971.  
[9] 雷元武,,周杰,葛穎增,,等.并行CORDIC算法的研究及FPGA實現(xiàn)[J].計算機工程與科學,,2008(8):259-261.
[10] 甘露,吳國綱,,徐政五,,等.改進型MVR-CORDIC算法研究[J].電子科大學報,2004,,33(5):489-491.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。