摘 要: 提出了一種改進(jìn)的向量模式下的CORDIC算法——MV-CORDIC算法,可以用來實(shí)現(xiàn)通信系統(tǒng)中頻偏估計(jì)幅角的計(jì)算,。仿真結(jié)果表明,,該算法相比傳統(tǒng)的CORDIC算法,可以大幅度減少CORDIC算法的迭代次數(shù),。算法輸出幅角的誤差小,,可以利用其實(shí)現(xiàn)頻偏估計(jì)中幅角的計(jì)算。
關(guān)鍵詞: CORDIC,;頻偏估計(jì),;OFDM
正交頻分復(fù)用(OFMD)技術(shù)具有抗多徑、頻譜利用率高等特點(diǎn),,在寬帶無線傳輸領(lǐng)域中得到廣泛的應(yīng)用,。無線局域網(wǎng)(WLAN)標(biāo)準(zhǔn)802.11a/b/g均將OFDM技術(shù)作為其物理層的標(biāo)準(zhǔn)。然而在OFDM系統(tǒng)中,,系統(tǒng)對(duì)載波頻偏極為敏感,。載波頻偏會(huì)破壞載波間的正交性,引入的子信道間的干擾(ICI),,導(dǎo)致各子信道不能正確解調(diào),,帶來嚴(yán)重的誤碼,使系統(tǒng)的性能大幅度下降,。因此,,頻偏估計(jì)算法的設(shè)計(jì)和實(shí)現(xiàn)是OFDM系統(tǒng)中一個(gè)重要的問題,。采用基于訓(xùn)練符號(hào)的時(shí)域相關(guān)算法計(jì)算頻偏時(shí),需要在小數(shù)倍頻偏估計(jì)階段對(duì)頻偏的幅角進(jìn)行計(jì)算[1],。一般采用CORDIC(Coordinate Rotation Digital Compute)[2]算法實(shí)現(xiàn)幅角的計(jì)算,,這種算法的顯著特點(diǎn)是用硬件實(shí)現(xiàn)該算法時(shí)只需要加法器和移位寄存器,因此在現(xiàn)代通信系統(tǒng)中得到了廣泛使用,。但是,,CORDIC算法的迭代次數(shù)和輸入數(shù)據(jù)的字長相同,對(duì)于輸入字長為N的數(shù)據(jù)需要迭代N次才能得到最精確的幅角值,。
隨著超大規(guī)模集成電路VLSI(Very Large Scale Integrated Circuites)的發(fā)展,,提高CORDIC算法的速度和精度,已經(jīng)提出了很多改進(jìn)的CORDIC算法[3-6],,但主要集中在旋轉(zhuǎn)模式中對(duì)CORDIC算法的改進(jìn)。參考文獻(xiàn)[7]提出一種類CORDIC算法來計(jì)算幅角值,,但沒有減少CORDIC算法的迭代次數(shù),。本文提出了一種改進(jìn)的向量模式下的CORDIC算法——MV-CORDIC算法,在滿足一定輸出精度的條件下能有效減少算法的迭代次數(shù),。
1 CORDIC算法
CORDIC是一種在直線,、圓弧和雙曲坐標(biāo)系統(tǒng)下進(jìn)行復(fù)雜計(jì)算的迭代算法。CORDIC只用移位和加法操作就可以完成復(fù)雜運(yùn)算的實(shí)現(xiàn),。在直角坐標(biāo)系統(tǒng)中,,它包括旋轉(zhuǎn)模式(Rotation Mode)和向量模式(Vector Mode)兩種操作模式。旋轉(zhuǎn)模式指的是用一對(duì)初始向量(x0,,y0)和一組角度序列{?茲i}去逼近一個(gè)目標(biāo)向量(xn,,yn)。向量模式用來計(jì)算初始向量(x0,,y0)的模和幅角,。該算法的統(tǒng)一算法模式[8]如式(1)和表1所示。
2 MV-CORDIC算法
CORDIC將簡單的運(yùn)算分解為加法和移位運(yùn)算,,大大減少了運(yùn)算量,,適合FPGA以及硬件邏輯的實(shí)現(xiàn)。但是CORDIC算法是一個(gè)線性收斂和順序執(zhí)行的迭代算法,,即對(duì)N位精度至少需要N次迭代,,第i次迭代只有在第i+1次迭代完成后才能執(zhí)行。這些特性限制了CORDIC算法的計(jì)算速度,。提高CORDIC計(jì)算速度的方法主要有:(1)減少CORDIC算法每次迭代所用的時(shí)間,;(2)減少CORDIC算法的迭代次數(shù)。在旋轉(zhuǎn)模式下有很多算法采用并行方法來加速CORDIC的計(jì)算,。比如并行CODIRC旋轉(zhuǎn)算法[9]和MVR-CORDIC算法[10],。
本設(shè)計(jì)借鑒MVR-CORDIC[10]算法在旋轉(zhuǎn)模式下對(duì)角度處理的思想,,改進(jìn)向量模式下CORDIC的計(jì)算,提出MV-CORDIC算法,,使算法在保證一定輸出精度的前提下迭代次數(shù)變少,。
2.1 算法思路
基于MVR-CORDIC的思想,本設(shè)計(jì)中的算法改變了傳統(tǒng)CORDIC算法中的微循環(huán),,算法的主要特點(diǎn)如下,。
(1)跳過某些微循環(huán),。這樣不僅能減少迭代次數(shù),,還可以提高角度循環(huán)的精度,比如:X0=1,,Y0=1,,按照傳統(tǒng)CORDIC算法迭代7次,最終的幅角值的殘余誤差為0.015,;如果采用本設(shè)計(jì)的算法只需要進(jìn)行一次?琢i=π/4的微循環(huán),,而跳過其他微循環(huán),所得幅角的殘余誤差為0,;
?。?)重復(fù)某些微旋轉(zhuǎn)。傳統(tǒng)CORDIC算法對(duì)基本角度的集合中的每個(gè)元素只能使用一次,,對(duì)某些特殊的X0,、Y0,其幅角為基本角度集的整數(shù)倍時(shí),,本算法進(jìn)行多次相同基本角度的微旋轉(zhuǎn),,這樣也能減少幅角的殘余誤差;
?。?)大大減少了迭代次數(shù),。傳統(tǒng)的CORDIC算法為能達(dá)到一定的精度一般要求迭代次數(shù)Rm等于字長W,而在本算法中,,迭代次數(shù)Rm<<W,。如上所述,本算法的迭代方程式可以改寫為:
3.3 仿真測(cè)試
MATLAB仿真測(cè)試分別使用16 bit定點(diǎn)數(shù)來表示輸入的輻角,。對(duì)10萬組X0,,Y0隨機(jī)數(shù)據(jù)采用不同的迭代次數(shù),得到MV-CORDIC算法和原始CORDIC算法對(duì)比結(jié)果及真實(shí)值的平均精度差,,分別如圖1和表2所示,。可以看到,,MV-CORDIC算法大大降低了算法的迭代次數(shù),,使得系統(tǒng)可以根據(jù)輸出數(shù)據(jù)精度的要求,,選擇更少的迭代次數(shù)來實(shí)現(xiàn)頻偏估計(jì)幅角的計(jì)算。
本文提出了MV-CORDIC算法來實(shí)現(xiàn)通信系統(tǒng)中頻偏估計(jì)幅角的計(jì)算,,以減少CORDIC算法的迭代次數(shù),。通過仿真實(shí)驗(yàn)可以看到,在保證一定精度的情況下,,采用MV-CORDIC算法對(duì)比傳統(tǒng)模式下的CORDIC可以大大地減少迭代次數(shù),。采用MV-CORDIC算法優(yōu)于原始CORDIC算法,可以用于頻偏估計(jì),,提高通信系統(tǒng)的信噪比,。
參考文獻(xiàn)
[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 ′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實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),,2008(8):259-261.
[10] 甘露,吳國綱,,徐政五,,等.改進(jìn)型MVR-CORDIC算法研究[J].電子科大學(xué)報(bào),,2004,33(5):489-491.