劉 剛,蔣偉進(jìn),董 胡,鐘新躍
(1.長沙師范學(xué)院 信息與工程系,湖南 長沙410100;2.湖南商學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,湖南 長沙 410205)
數(shù)字下變頻中基于CORDIC算法的NCO設(shè)計(jì)
劉 剛1,蔣偉進(jìn)2,董 胡1,鐘新躍1
(1.長沙師范學(xué)院 信息與工程系,湖南 長沙410100;2.湖南商學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,湖南 長沙 410205)
在數(shù)字下變頻中傳統(tǒng)數(shù)字控制振蕩器(Numerically Controlled Oscillator,NCO)模塊都是基于查找表結(jié)構(gòu)的,該結(jié)構(gòu)在FPGA內(nèi)部實(shí)現(xiàn)需要占用大量ROM資源,針對這一問題,提出采用坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算(Coordinate Rotation Digital Computer,CORDIC)算法進(jìn)行NCO設(shè)計(jì),相比傳統(tǒng)的NCO設(shè)計(jì),該方法具有輸出信號頻譜純度高、能夠直接混頻而不需要乘法器等優(yōu)點(diǎn)。設(shè)計(jì)中采用變象限映射方法解決CORDIC算法無法全周期覆蓋的問題,采用流水線技術(shù)解決串行迭代帶來難以實(shí)時輸出的問題。經(jīng)過Modelsim仿真分析,實(shí)際輸出值與理論值之間的相對誤差在10-4~10-5數(shù)量級范圍內(nèi),滿足數(shù)字下變頻中NCO的性能需要。
數(shù)字下變頻;坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算方法;流水線;數(shù)字控制振蕩器;現(xiàn)場可編程門陣列
在軟件無線電接收機(jī)中,數(shù)字下變頻器是把ADC數(shù)字化后的高速數(shù)字中頻信號變?yōu)榈退俚幕鶐盘?,便于后續(xù)的相關(guān)處理。數(shù)字下變頻器在這里起到前端ADC和后端通用DSP器件之間的橋梁作用,其性能的優(yōu)劣會對整個軟件無線電系統(tǒng)的性能產(chǎn)生直接的影響[1]。因此,數(shù)字下變頻技術(shù)成為軟件無線電接收機(jī)的關(guān)鍵技術(shù)之一,成為制約軟件無線電性能的重要器件之一[1]。文獻(xiàn)[2-3]中采用基于多相濾波結(jié)構(gòu)來設(shè)計(jì)實(shí)現(xiàn)數(shù)字下變頻器,雖然在一定程度上能夠節(jié)省FPGA內(nèi)部資源和實(shí)現(xiàn)高速數(shù)據(jù)流下數(shù)字下變頻,但在性能上還有較大的提升空間,因?yàn)橹挥懈倪M(jìn)和優(yōu)化數(shù)字下變頻中NCO這一核心模塊才能大幅度提高數(shù)字下變頻的性能。傳統(tǒng)的數(shù)字下變頻的NCO是基于查找表的形式實(shí)現(xiàn)的[4],這種方法雖然在FPGA內(nèi)部實(shí)現(xiàn)起來方便簡單,但同時也存在占用大量ROM資源,需要復(fù)雜的乘法計(jì)算,以及輸出信號頻譜雜散較大而導(dǎo)致的精度不高等缺點(diǎn)。而基于CORDIC算法實(shí)現(xiàn)的NCO就能很好地克服上述缺點(diǎn)[5-6],因此本文重點(diǎn)研究應(yīng)用于數(shù)字下變頻的CORDIC算法的設(shè)計(jì)與實(shí)現(xiàn)。
綜上,現(xiàn)階段我國體育旅游產(chǎn)業(yè)市場有著巨大潛力,對體育旅游專業(yè)方向的復(fù)合應(yīng)用型人才有相當(dāng)大的需求。為滿足龐大的市場人才需求,體育旅游專業(yè)人才的培養(yǎng)成為我國體育旅游產(chǎn)業(yè)可持續(xù)發(fā)展不容忽視的課題。
1.1 數(shù)字下變頻結(jié)構(gòu)
開溝誘筍。第1次翻耕后,沿林地水平帶開溝,溝寬50 cm、深30 cm,于溝中填埋林下剩余物粉碎料,然后覆土。目的是利用有機(jī)質(zhì)廢料的保濕、透氣等特點(diǎn),誘導(dǎo)竹鞭,促其筍芽萌發(fā)生長。兩溝間隔以120~150 cm為宜。
數(shù)字下變頻采用的結(jié)構(gòu)如圖1所示,該結(jié)構(gòu)由混頻模塊和抽取濾波模塊組成?;祛l模塊實(shí)現(xiàn)的功能是把數(shù)控振蕩器NCO產(chǎn)生的正余弦本振信號分別與采樣信號相乘實(shí)現(xiàn)混頻,產(chǎn)生I和Q兩路信號[7]。抽取濾波模塊實(shí)現(xiàn)的功能是首先把混頻后的信號進(jìn)行抽取降速處理,然后通過低通濾波器濾除無用的諧波分量,得到I和Q兩路數(shù)字基帶信號[8]。數(shù)字下變頻就是基于這種方式來完成對數(shù)字信號的降頻處理。

圖1 數(shù)字下變頻結(jié)構(gòu)
從式(6)可以看出,每一次旋轉(zhuǎn)實(shí)現(xiàn)只需進(jìn)行簡單的移位和相加操作,易于在FPGA內(nèi)部實(shí)現(xiàn)。為了便于追蹤累加旋轉(zhuǎn)角度,引入角度累加器方程:
CORDIC算法原理如圖2所示。

圖2 CORDIC算法原理
設(shè)有一個向量A(x0,y0)經(jīng)逆時針旋轉(zhuǎn)角度θ得到向量B(x1,y1),根據(jù)極坐標(biāo)變換規(guī)則可得[9]:
(1)
旋轉(zhuǎn)角度θ也可以通過經(jīng)過多次旋轉(zhuǎn)小角度θn而得,則單次旋轉(zhuǎn)變化表達(dá)式為:
在這股全民P圖的浪潮中,可以看到,個體在參與該事件的過程中,完全是以一種消遣性的態(tài)度來主導(dǎo)政治事件的走向。而個體對政治事件的消遣性行為,消費(fèi)了該事件的政治性,使得事件走向了娛樂化。無獨(dú)有偶,會理縣人民政府居然利用“懸浮照”事件,順勢推廣了縣里的旅游業(yè),反過來消費(fèi)了網(wǎng)民。在消費(fèi)主義思潮影響下,個體和組織以消遣性態(tài)度參與政治活動,將政治事件推向了娛樂化的軌道。
(2)
由于CORDIC算法是進(jìn)行多次迭代運(yùn)算來完成相幅轉(zhuǎn)換的,且下一次迭代旋轉(zhuǎn)方向需根據(jù)上一次迭代后的剩余旋轉(zhuǎn)角度值來進(jìn)行判斷,所以在數(shù)字下變頻中高精度NCO要求下的CORDIC算法的多次迭代會導(dǎo)致難以實(shí)時輸出[15]。為此本設(shè)計(jì)根據(jù)數(shù)字下變頻的需要采用流水線技術(shù)來解決上述問題。它使得每個迭代運(yùn)算單元在一個時鐘周期內(nèi)并行工作,雖然經(jīng)過n個時鐘周期才有第一個計(jì)算值輸出[16],但后面所有的計(jì)算值都只需要一個時鐘周期輸出,相比沒有采用流水線技術(shù)的CORDIC算法在計(jì)算速度上提高了n倍[17]。
(3)
為了便于硬件實(shí)現(xiàn),令θn=arctan(2-n),則式(3)可變?yōu)椋?/p>
(4)
由于經(jīng)過N次小角度旋轉(zhuǎn),角度θ與單次旋轉(zhuǎn)角度θ執(zhí)行結(jié)果一樣,所以利用式(4),式(1)也可等價為:
(5)

(6)
1.2 CORDIC算法的基本原理
zn+1=zn-δnθn。
(7)
當(dāng)初值(x0,y0,z0)分別對應(yīng)于(K,0,θ)時,經(jīng)過n次迭代旋轉(zhuǎn)后,角度累加器zn+1趨于0時,對應(yīng)的xn,yn就分別為cosθ和sinθ。CORDIC算法就是通過這種方式來完成正余弦計(jì)算的。
1.3 NCO基本原理
基于CORDIC算法的NCO結(jié)構(gòu)如圖3所示,其主要思想是通過不斷周期性地相幅轉(zhuǎn)換來實(shí)現(xiàn)正余弦信號的,輸入的頻率控制字和相位控制字分別控制相位增量和初始相位,從而起到控制輸出信號的頻率和初相位的作用[11]。
賦礦層礁灰?guī)r礁灰?guī)r存在許多孔隙,如沉積物原生孔洞(隙)、砂(礫)之間空隙、巖石(層)之間差異收縮裂(空)隙、層間裂隙等,這些孔洞(隙)成為儲礦空間含礦。
1.2.1 一般治療 予嚴(yán)格單間隔離、心電監(jiān)護(hù)、持續(xù)鼻導(dǎo)管吸氧、物理降溫及營養(yǎng)支持,烏司他丁減輕炎癥反應(yīng),丙種球蛋白增加抵抗力,喜炎平注射液及連花清瘟膠囊清熱解毒;并加用莫西沙星抗細(xì)菌治療,療程6 d;因1,3-β-D葡聚糖檢測試驗(yàn)(G試驗(yàn))陽性,加用伏立康唑抗真菌治療,療程9 d。

圖3 基于CORDIC算法的NCO結(jié)構(gòu)
基于CORDIC算法的NCO與傳統(tǒng)的NCO在結(jié)構(gòu)上類似,主要區(qū)別是前者通過移位相加的方式進(jìn)行相幅轉(zhuǎn)化計(jì)算,而后者是把相位累加器輸出的實(shí)時相位作為查找表的地址,而查找表中對應(yīng)地址的內(nèi)存單元儲存值就是該相位對應(yīng)的正余弦幅度值,是通過不斷向查找表取值輸出來完成相幅轉(zhuǎn)換的。采用CORDIC算法來完成數(shù)字下變頻中的NCO模塊相比于基于查找表的NCO,除了前面提及的優(yōu)點(diǎn)外,它還能在CORDIC模塊內(nèi)與接收的輸入信號x(n)直接相乘,這樣使得其在完成NCO的同時完成了混頻的功能[13]。

(8)
式中,f0為系統(tǒng)輸出頻率;FW為頻率控制字的值;N為頻率控制字的二進(jìn)制位寬;fs為系統(tǒng)的工作頻率。
NCO輸出的頻率與頻率控制字之間的關(guān)系為[12]:
回到家里,一股無名火就上來了,其實(shí)也就是一種怨氣。下面是空的,難道上面還不許往里塞東西嗎?她就大嚼了一頓黃瓜,還啃了一堆野桃子,脖子一伸一縮的,被撐得不能動彈了。紅琴仰面躺在木床上,屋子里異常地靜謐,一只烏鴉在門口的樹枝上棲息著,聒噪了兩聲,忽然展翅飛走了。它飛了一陣子,又落到了遠(yuǎn)處的田塍上??諘绲奶镆吧?,稻子剛剛收割掉,偶爾也有幾只青蛙不甘寂寞地叫兩聲,打破這鄉(xiāng)野獨(dú)有的恬靜。
表1 CORDIC算法輸出端的象限映射表

最高兩位所處象限映射后角度值?正弦輸出值余弦輸出值001θcos?sin?012θ-90°-sin?cos?103θ-180°-cos?-sin?114θ-270°sin?-cos?
式中,δn為單次旋轉(zhuǎn)方向,當(dāng)逆時針旋轉(zhuǎn)時,δn=1;當(dāng)順時針旋轉(zhuǎn)時,δn=0。提取cosθn,式(2)也可寫為[10]:
設(shè)計(jì)采用Altera的CycloneII系列EP2C8Q208C8芯片完成設(shè)計(jì),通過編譯后進(jìn)行仿真測試,仿真結(jié)果如圖4所示。

圖4 Modelsim仿真結(jié)果
從圖4可以看出,本設(shè)計(jì)能夠?qū)崟r輸出2路正余弦信號,且可通過改變頻率控制字來控制輸出信號的頻率。該仿真前面4個頻率控制字分別為h0080、h0100、h0180和h0200,當(dāng)系統(tǒng)工作時鐘為100 MHz時,其輸出信號頻率分別對應(yīng)為195.312 5 kHz、390.625 kHz、585.937 5 kHz和781.25 kHz。相幅轉(zhuǎn)換的實(shí)際值和理論值的對應(yīng)關(guān)系如表2所示[7]。
表2 輸出的實(shí)際值和理論值的比較

輸入角度/(°)余弦實(shí)際值余弦理論值相對誤差3056754567563.524×10-54546336463411.079×10-4200-61582-615843.248×10-5260-11373-113806.151×10-432050209502031.195×10-4
從表2中比較分析看出,輸出結(jié)果與理論值之間相對誤差在10-4~10-5數(shù)量級范圍內(nèi),基本上滿足數(shù)字下變頻模塊中的NCO的需要。
本文采用基于CORDIC算法在FPGA內(nèi)部設(shè)計(jì)實(shí)現(xiàn)數(shù)字下變頻中的NCO模塊,通過對CORDIC算法理論分析,采用變象限和流水線方法對其進(jìn)行優(yōu)化改進(jìn),并運(yùn)用Verilog語言在FPGA內(nèi)部實(shí)現(xiàn)。通過對該設(shè)計(jì)進(jìn)行Modelsim仿真分析,其結(jié)果滿足設(shè)計(jì)需要,解決了傳統(tǒng)基于查找表結(jié)構(gòu)的NCO在FPGA內(nèi)部占用大量的ROM資源的問題,并具有較高的精度和速度。
“啊,嘴巴再張大一點(diǎn)……”醫(yī)生檢查完妍妍的扁桃體,又拿起聽診器,仔細(xì)地聽了又聽。妍妍一聲不響,乖巧地聽醫(yī)生指揮。收起聽診器,醫(yī)生一邊拿起筆飛快地在病歷卡上寫診斷書,一邊慢悠悠地抬起頭,對妍妍說:“小朋友,以后要多吃米飯,多吃水果和蔬菜,這樣你才會長得更高!”頓了頓,然后又說,“不用開藥?!卞牬罅搜劬?,不可思議地看著醫(yī)生。
[1] 李漢波.基于FPGA平臺數(shù)字信道化接收機(jī)的開發(fā)與研制[D].西安:西安電子科技大學(xué),2009.
[2] 陶杰,李駿,張水興,等.DMR系統(tǒng)中數(shù)字下變頻技術(shù)分析[J].無線電工程,2014,44(8):34-37.
[3] 劉二平,劉曉杰.基于多相濾波的高效數(shù)字下變頻設(shè)計(jì)[J].無線電工程,2016,46(8):23-26.
[4] 楊豪,顏青,馬舜堯.基于進(jìn)位鏈優(yōu)化方法的高速NCO設(shè)計(jì)[J].無線電工程,2014,44(1):72-74,80.
[5] 王頂,劉太君,葉焱.基于改進(jìn)CORDIC算法的數(shù)字預(yù)失真實(shí)現(xiàn)[J].無線電通信技術(shù),2014,40(3):68-71.
[6] 顧明超,李倩.寬帶數(shù)字下變頻器的FPGA實(shí)現(xiàn)[J].無線電通信技術(shù),2014,40(5):69-72.
[7] 郭勇,梅大成,邢丹.基于CORDIC算法數(shù)字下變頻器設(shè)計(jì)[J].計(jì)算機(jī)與信息技術(shù),2007(11):15-18.
[8] 許彥輝,年夫順,許建華,等.基于CORDIC算法實(shí)現(xiàn)數(shù)字下變頻[J].信息系統(tǒng)工程,2011(4):15-18.
[9] 祁艷杰,劉章發(fā).基于Parallel_CORDIC的高精度高速度直接數(shù)字頻率合成器的FPGA實(shí)現(xiàn)[J].電子學(xué)報,2014,42(7):1392-1397.
[10] 張朝柱,韓吉南,燕慧智.高速高精度固定角度旋轉(zhuǎn)CORDIC算法的設(shè)計(jì)與實(shí)現(xiàn)[J].電子學(xué)報,2016,44(2):485-490.
[11] 侯武威,袁安民,趙穎輝.基于CORDIC算法的數(shù)字下變頻技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(9):35-37.
[12] 閆溫合,胡永輝,李瑾琳,等.應(yīng)用于數(shù)字下變頻中CORDIC算法的FPGA實(shí)現(xiàn)[J].時間頻率學(xué)報,2014,37(1):34-40.
[13] 郭連平,田書林,王志剛,等.并行數(shù)字下變頻中的NCO實(shí)現(xiàn)研究[J].儀器儀表學(xué)報,2012,33(5):998-1004.
[14] 任小西,沈建龍.低時延-消耗的CORDIC算法及結(jié)構(gòu)的研究[J].計(jì)算機(jī)科學(xué),2014,41(8):25-29.
[15] 吉煒寰,鄒玉煒,黃磊.基于全流程并行加速的改進(jìn)數(shù)字下變頻器設(shè)計(jì)[J].電子器件,2017,40(1):142-146.
[16] 謝建華,阮圓,孫鋒.基于CORDIC算法的流水線型DDS設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,(29):286-287.
[17] 王佳琪,熊先越.基于FPGA的流水線CORDIC算法的DDFS設(shè)計(jì)[J].光通信技術(shù),2012,36(4):61-62.
DesignofNCOBasedonCORDICAlgorithminDigitalDown-conversion
LIU Gang1,JIANG Wei-jin2,DONG Hu1,ZHONG Xin-yue1
(1.DepartmentofInformationandEngineering,ChangshaNormalUniversity,ChangshaHu’nan410100,China; 2.CollegeofComputerandInformationEngineering,HUNANUniversityofCommerce,ChangshaHu’nan410205,China)
In digital down conversion,the traditional NCO module is based on look-up table structure,which takes up a large amount of ROM resources in FPGA.In order to solve this problem,this paper uses the Coordinate Rotation Digital Computer (CORDIC) algorithm for NCO design.Compared to the traditional NCO design,this method has high spectral purity,can be directly mixing without multiplier.In the design,a variable quadrant mapping method is adopted to solve the problem that CORDIC algorithm can not be covered by full cycle.The pipeline technology is used to solve the problem that the serial iteration is difficult to output in real time.The results of Modelsim simulation analysis show that the relative error between the actual output value and the theoretical value is 10-4-10-5,which satisfies the performance requirement of NCO in digital down-conversion.
digital down-conversion;CORDIC algorithm;pipeline;NCO;FPGA
10.3969/j.issn.1003-3106.2017.12.16
劉剛,蔣偉進(jìn),董胡,等.彈性拓?fù)淇刂萍夹g(shù)研究[J].無線電工程,2017,47(12):71-74.[LIU Gang,JIANG Weijin,DONG Hu,et al.Design of NCO Based on CORDIC Algorithm in Digital Down-conversion[J].Radio Engineering,2017,47(12):71-74.]
TN911
A
1003-3106(2017)12-0071-04
2017-03-27
國家部委基金資助項(xiàng)目。
劉剛男,(1981—),碩士,講師。主要研究方向:基于FPGA的軟件無線電和5G通信。
蔣偉進(jìn)男,(1965—),碩士,教授。主要研究方向:計(jì)算社會學(xué)、管理系統(tǒng)模擬、復(fù)雜系統(tǒng)建模和仿真、信息系統(tǒng)安全、云計(jì)算與大數(shù)據(jù)技術(shù)研究。