資源描述:
《基于cordic算法的nco實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、基于CORDIC算法的NCO實(shí)現(xiàn)田力,馮琦(西安電子科技大學(xué)電路設(shè)計(jì)研究所,陜西西安710071)摘要:NCO在信號(hào)處理方面有著廣泛的應(yīng)用。而函數(shù)發(fā)生器是NCO中的關(guān)鍵部分,本文基于FPGA用狀態(tài)機(jī)和流水線方法實(shí)現(xiàn)了CORDIC算法,并取代了傳統(tǒng)的ROM查找表法。最后通過QuartusII軟件給出仿真結(jié)果,驗(yàn)證了理論的正確性。關(guān)鍵字:數(shù)字控制振蕩器CORDIC現(xiàn)場(chǎng)可編程門陣列TheimplementationofNCObasedonCORDICalgorithmLITian,QIFeng(Institute
2、ofElectronicCAD,XidianUniversity,Xi’an710071)ABSTRACT:FunctiongeneratoristhemainpartofNCOwhichiswidelyusedinsignalprocessing.AnewCORDICalgorithmimplementedbythestatemachineandpipelinebasedonFPGAisproposedtoreplacethetraditionallook-uptableROMmethodinthispa
3、per.ThesimulatedresultofQuartusIIshowsthatthegiventheoryisefficient.KEYWORDS:NCOCORDICFPGA1.引言數(shù)字控制振蕩器(NCO,numericalcontrolledoscillator)是軟件無(wú)線電、直接數(shù)據(jù)頻率合成器(DDS,Directdigitalsynthesizer)、快速傅立葉變換(FFT,F(xiàn)astFourierTransform)等的重要組成部分,同時(shí)也是決定其性能的主要因素之一,隨著芯片集成度的提高、在信號(hào)
4、處理、數(shù)字通信領(lǐng)域、調(diào)制解調(diào)、變頻調(diào)速、制導(dǎo)控制、電力電子等方面得到越來越廣泛的應(yīng)用。圖1為NCO的基本圖示。系統(tǒng)控制邏輯模塊相位控制字頻率控制字∑相位寄存器∑函數(shù)發(fā)生器相位累加器相位相加器時(shí)鐘圖1數(shù)字控制振蕩器結(jié)構(gòu)圖在系統(tǒng)時(shí)鐘的控制下,相位寄存器以頻率控制字(步長(zhǎng))累加,相位寄存器的輸出與相位控制字相加,然后輸入到函數(shù)發(fā)生器,產(chǎn)生期望的函數(shù)樣值。實(shí)現(xiàn)NCO的關(guān)鍵部分是相位-幅度變換電路,即圖1中的函數(shù)發(fā)生器。傳統(tǒng)的實(shí)現(xiàn)方法是使用查找表,其優(yōu)點(diǎn)是簡(jiǎn)單,準(zhǔn)確,但是缺點(diǎn)也是顯而易見的,存放相位-幅度的查找表RO
5、M的大小和相位精度的位數(shù)成指數(shù)關(guān)系。當(dāng)精度要求很高的時(shí)候需要使用外部的ROM來擴(kuò)展,這樣將會(huì)降低系統(tǒng)的處[1][2]理速度。雖然也有人提出一些改進(jìn)的查找表方式,來壓縮ROM空間,但是,隨著微電子技術(shù)的發(fā)展,使用實(shí)時(shí)計(jì)算來替代查找表的方式是一大趨勢(shì),其能有效的提高系統(tǒng)的處理速度。在實(shí)時(shí)算法中,泰勒級(jí)數(shù)法和反函數(shù)求值法兩種方法相比較,泰勒級(jí)數(shù)法的實(shí)現(xiàn)需要乘法器,在硬件的復(fù)雜性和速度上受到一些限制;反函數(shù)求值法在速度上要比坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(CORDIC,COordinateRotationsDIgitalCom
6、puter)算法慢。而CORDIC算法在硬件實(shí)現(xiàn)上只需要移位和加/減法即可完成復(fù)雜的計(jì)算功能,能很好地兼顧速度、精度、簡(jiǎn)單、高效等方面。2.CORDIC原理[3]CORDIC(COordinateRotationsDIgitalComputer)算法由J.Volder于1959年提出,首先用于導(dǎo)航系統(tǒng),使得矢量的旋轉(zhuǎn)和定向運(yùn)算不需要做查三角函數(shù)表、乘法、開方及反三角[4]函數(shù)等復(fù)雜運(yùn)算。J.Walther在1974年用它研究了一種能計(jì)算出多種超越函數(shù)的統(tǒng)一算法。Y(x1,y1)(x0,y0)θX圖2CORD
7、IC算法坐標(biāo)圖示如圖2所示,初始向量(x,y)旋轉(zhuǎn)θ角度之后得到另一個(gè)向量(x,y),對(duì)于0011此兩向量有簡(jiǎn)單的關(guān)系如下:xx=?=?