《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 無線局域網(wǎng)中CORDIC算法的應(yīng)用與FPGA實(shí)現(xiàn)
無線局域網(wǎng)中CORDIC算法的應(yīng)用與FPGA實(shí)現(xiàn)
2015年微型機(jī)與應(yīng)用第21期
王水魚,,丁 洋
(西安理工大學(xué) 自動(dòng)化與信息工程學(xué)院,,陜西 西安 710001)
摘要: 隨著無線技術(shù)的發(fā)展,,人們對(duì)無線網(wǎng)絡(luò)的需求越來越大。特別是近幾年來,,在局域網(wǎng)通信中,,WiFi技術(shù)的引入以及其地位的不斷提高,引起人們對(duì)無線局域網(wǎng)通信中傳輸速度的研究不斷深入,。而在對(duì)其探索與設(shè)計(jì)中,,對(duì)于信號(hào)的偏移角度值的計(jì)算(CORDIC)也一直進(jìn)行著調(diào)整與優(yōu)化。因此,,本文以無線局域網(wǎng)中利用CORDIC算法實(shí)現(xiàn)數(shù)字控制振蕩器(NCO)作為研究重點(diǎn),,并利用FPGA對(duì)其進(jìn)行實(shí)現(xiàn)與分析。
Abstract:
Key words :

  摘  要: 隨著無線技術(shù)的發(fā)展,,人們對(duì)無線網(wǎng)絡(luò)的需求越來越大,。特別是近幾年來,在局域網(wǎng)通信中,,WiFi技術(shù)的引入以及其地位的不斷提高,,引起人們對(duì)無線局域網(wǎng)通信中傳輸速度的研究不斷深入。而在對(duì)其探索與設(shè)計(jì)中,,對(duì)于信號(hào)的偏移角度值的計(jì)算(CORDIC)也一直進(jìn)行著調(diào)整與優(yōu)化,。因此,本文以無線局域網(wǎng)中利用CORDIC算法實(shí)現(xiàn)數(shù)字控制振蕩器(NCO)作為研究重點(diǎn),,并利用FPGA對(duì)其進(jìn)行實(shí)現(xiàn)與分析,。

  關(guān)鍵詞: 無線局域網(wǎng);CORDIC算法,;NCO,;FPGA

0 引言

  1957年J.Volder引入了坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(Coordinate Rotation Digital Computer)算法,從而開始利用CORDIC算法[1]計(jì)算角度的偏移,。在上個(gè)世紀(jì),,由于技術(shù)上的限制與落后,,利用普通方法去計(jì)算角度比較困難,,所以使用CORDIC變得非常必要,,從而使CORDIC算法得到了推廣與應(yīng)用。

  現(xiàn)如今,,WiFi技術(shù)已成為人們生活中不可或缺的一部分,,人們對(duì)它的依賴使得更多的人開始不斷地對(duì)其進(jìn)行研究與創(chuàng)新。在WiFi通信中,,所需信息由于一些噪音干擾會(huì)丟失理想的同步特性,,角度偏移是其中最大的問題,因此如何能夠快速準(zhǔn)確地得到需要的角度偏移信息,,進(jìn)一步消除偏移帶來的負(fù)面影響是這項(xiàng)技術(shù)的關(guān)鍵,,從而將CORDIC算法引入NCO[2]中變得非常必要。

  1 CORDIC算法的原理

  設(shè)一個(gè)矢量(Xi,,Yi)旋轉(zhuǎn)一個(gè)角度?茲可以得到一個(gè)新的矢量(Xj,,Yj)。那么這種旋轉(zhuǎn)關(guān)系可以用如下式(1)表示:

  1.png

001.jpg

  旋轉(zhuǎn)示意圖如圖1所示,。通過迭代的方式,,可以用式(2)表示迭代過程:

  2.png

  取每個(gè)累加步進(jìn)值為:I_N8AZ%V1HF}N`U([A8]TTR.jpg,那么總的選擇角度為:51~7)}IVF~~W09AKH_F3F2A.jpg,,其中Sn={-1,,+1},這里假設(shè)Sn為每次迭代所產(chǎn)生的小角度旋轉(zhuǎn)的方向,。通過這個(gè)步驟,,上面的式(2)可以表示為下式(3):

 JDEGM~Y{})C(7)R({~E9(6H.jpg

2 CORDIC算法在無線局域網(wǎng)中的應(yīng)用

  在無線局域網(wǎng)通信中,接收信息的準(zhǔn)確無誤是無線技術(shù)的前提,,但是在傳輸過程中,,信息會(huì)受到白噪聲等一些因素的干擾,變得延遲與失真,,因此解決這些不利影響得到通信需要的正確信息便成了無線技術(shù)的核心,。

  在信息進(jìn)行無線傳輸時(shí),時(shí)頻同步有效地解決了信息失真延遲帶來的影響,,特別是在所需信息發(fā)生角度偏移時(shí),,能有效地去除偏移角度的影響,從而達(dá)到同步效果,。而同步的關(guān)鍵就在于是否能夠正確求得偏移的角度,,因此CORDIC算法的使用無疑是無線通信中必不可少的一部分。在此基礎(chǔ)上,,既要實(shí)現(xiàn)占用資源的減少,,又要達(dá)到精度與速度的要求,偽旋轉(zhuǎn)方法從而得到廣泛應(yīng)用,。

  利用CORDIC算法[3]求得的偏移角度值,,可以用來實(shí)現(xiàn)數(shù)字下變頻中的數(shù)字控制振蕩器(NCO)[4]的設(shè)計(jì),,通過逐次逼近的方法實(shí)現(xiàn)三角函數(shù)的計(jì)算,從而便可以在后續(xù)設(shè)計(jì)中去除掉偏移載波帶來的影響,,達(dá)到時(shí)頻同步的要求,。用此方法實(shí)現(xiàn)NCO的最大優(yōu)勢(shì)在于僅做加減和移位運(yùn)算,結(jié)合流水線,,便可以在每一個(gè)時(shí)鐘周期輸出一個(gè)經(jīng)過n次迭代的結(jié)果,,而對(duì)于旋轉(zhuǎn)的精度要求,一般情況下,,旋轉(zhuǎn)10次便可以滿足無線局域網(wǎng)傳輸?shù)木纫?,旋轉(zhuǎn)次數(shù)越高,精度越高,,得到的結(jié)果更加趨近于真實(shí)值,。

3 算法在FPGA上的實(shí)現(xiàn)

  利用上述CORDIC方法[5],可以將乘以的正切項(xiàng)變成移位操作,,通過一次次的移位與疊加逐漸逼近最終需要達(dá)到的旋轉(zhuǎn)角度,。該算法僅利用加法和移位兩種運(yùn)算通過迭代方式進(jìn)行矢量旋轉(zhuǎn)[6],因此很適合在FPGA中實(shí)現(xiàn),,它可以用來實(shí)現(xiàn)數(shù)字下變頻中的NCO,、混頻器和坐標(biāo)變換等功能[7]。

  通過對(duì)式(5)的算法實(shí)現(xiàn),,采用流水線的設(shè)計(jì)方式,,在FPGA中進(jìn)行設(shè)計(jì),利用FPGA自身內(nèi)部的BRAM資源進(jìn)行存儲(chǔ),,最后利用Verilog語言進(jìn)行實(shí)現(xiàn),,從而達(dá)到NCO設(shè)計(jì)的目的。

  其主要硬件資源占用如圖2所示,。

002.jpg

  從圖2可以看到,,使用CORDIC算法,基本不占用FPGA內(nèi)部的BRAM資源,,大大節(jié)約了硬件資源,。

  4 驗(yàn)證

  RTL電路的仿真結(jié)果如圖3所示。

003.jpg

  在MATLAB上進(jìn)行仿真,,并與RTL電路仿真結(jié)果進(jìn)行比對(duì),。MATLAB仿真結(jié)果如圖4所示。

004.jpg

  如圖3,,在輸入周期性三角波后,,通過CORDIC方法可以得到兩個(gè)周期性波形,分別是所需要的sin與cos周期函數(shù),通過此NCO的產(chǎn)生,,可以在后續(xù)設(shè)計(jì)中去除掉頻偏帶來的影響,;在圖4中,通過MATLAB的仿真可以產(chǎn)生對(duì)應(yīng)的sin和cos波形,,與圖3相比,,仿真結(jié)果一致,,可以證明利用FPGA設(shè)計(jì)的方案是正確可行的,。

5 結(jié)論

  NCO的設(shè)計(jì)是基于查找表的NCO,這種方式的固有特點(diǎn)決定了不僅需要大量的FPGA資源,,而且混頻器在實(shí)現(xiàn)過程中需要占用一定的乘法器資源,,這對(duì)乘法器資源有限的FPGA而言很不利。

  基于CORDIC算法的NCO,,通過一系列固定的與運(yùn)算基數(shù)相關(guān)的角度不斷偏擺來逼近所需的旋轉(zhuǎn)角度,,其硬件結(jié)構(gòu)簡(jiǎn)單,易于并行化處理,。所以,,在無線局域網(wǎng)通信中,利用CORDIC算法實(shí)現(xiàn)NCO是非常高效的,,并且通過這種算法,,可以有效快速地達(dá)到預(yù)期目的,從而證明本方案是正確可行的,。

參考文獻(xiàn)

  [1] 楊宏,,李國(guó)輝,劉立新.基于FPGA的CORDIC算法的實(shí)現(xiàn)[J].西安郵電學(xué)院學(xué)報(bào),,2008,,13(1):75-77.

  [2] 陸鵬威,梅杓春.基于CORDIC算法實(shí)現(xiàn)三角函數(shù)的運(yùn)算[J].國(guó)外電子測(cè)量技術(shù),,2008,,27(1):10-11.

  [3] 姚亞峰,付東兵,,楊曉非.高速CORDIC算法的電路設(shè)計(jì)與實(shí)現(xiàn)[J].半導(dǎo)體技術(shù),,2008,33(4):346-348.

  [4] 曹劍英.基于擴(kuò)展CORDIC算法的正切余切函數(shù)的設(shè)計(jì)[J].赤峰學(xué)院學(xué)報(bào),,2013(22):5-6.

  [5] 耿丹.CORDIC算法研究與實(shí)現(xiàn)[J].遙測(cè)遙控,,2007,28(Z1):39-42.

  [6] TIEMEY J,, RADER C M,, GOLD B. A digital frequency synthesizer[C]. IEEE Transactions on Audio Electroacoustics, 1971:48-57.

  [7] 鄭辛星,余紅英,,楊杰.基于FPGA的CORDIC算法研究[J].蕪湖職業(yè)技術(shù)學(xué)院學(xué)報(bào),,2013,15(3):38-39.


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