基於CORDIC演算法的高速高精度DDS研究與實現

2022-11-11 19:21:02 字數 4711 閱讀 5300

務1li5,tb

基於cordic演算法的高速高精度dds研究與實現

湯文亮(華東交通大學軟體學院,南昌330013)

摘要:針對基於查詢表方法不能實現高速高精度dds,提出了一種優化的基於cordic演算法實現高速

高精度dds的方法。介紹了cordic演算法實現dds中相位到幅度轉換的原理,對基於cordic演算法的dds實現進行了較詳細的描述,並在fpga上採用流水線優化方法實現了cordic演算法,

最後在fpga上實現了乙個高速高精度dds,實驗結果表明,設計實現的ddss… ̄穩定高速的工

作。關鍵詞演算法;fpga;查詢表;流水線技術

中圖分類號:tp391文獻標識碼:a文章編號上)一0104一o3

0引言直接數字頻率合成(dds)是一種訊號頻率合成技術,它具有頻率解析度高、轉換速度快、相位

值計算逼近的方法。這些固定的角度與計算基數

有關,運算只有移位和加減。傳統上計算三角函式和其他一些硬體不易實現的函式,一般使用查表

連續等許多優點,並朝著高頻率、多功能、多通道、低功耗等方向發展。dds系統主要由相位累加器、相位幅度轉換電路和數模轉換電路等部分組成。它通過相位累加器將相位按頻率調節控制字指定的步長進行累加,再由相位一幅度轉換電路將瞬時相位轉換為其對應的正弦值或余弦值序列輸出,最後經由數模轉換電路和低通濾波,即可得到模擬正弦波或余弦波訊號。

dds傳統採用查詢表方法實現,但其存放相位到幅度轉換的查詢表rom的大小和相位精度的位數成指數關係。當精度要求很高的時候需要大

法、多項式展開或近似的方法 。這些方法不能兼顧速度、精度、簡單性等方面的要求。cordic演算法正是為解決這種問題而產生的。它從演算法本

身入手,將複雜的演算法分解成一些在硬體中容易實現的基本演算法,如加法、移位等,從而使得這些演算法在硬體上可以得到較好的實現。

如圖1所示,假設直角座標系內有乙個向量a(xa,xa),逆時針旋轉9角度後得到另乙個向量

b(xa,xa)。▲ty

6//容量rom,使系統的處理速度降低。因此,採用查表法方法無法設計高速、高精度的dds。採用

j,3,,a

cordic演算法來實現超函式時¨衛j,則無需使用乘法器,它只需要乙個最小的查詢表(lut),利用簡單的移位和相加運算,即可產生高精度的正余弦波形,尤其適合於fpga的實現。採用cordic演算法能實現高速高精度的dds。本文先介紹cordic演算法

i一▲/

//|。,∥』

這個過程可以用矩陣形式表示如下:

原理,再詳細講述基於cordic演算法的dds實現。

阱ybco…so-s瑚inol ̄x

8ecoso提出來,式(1)可以重新表示為:

cos。

1cordic演算法

cordic演算法是voider於1959年在美國航空

『-t舢

控制系統的設計中提出來的,它是一種用於計算運算函式的迴圈迭代演算法。從廣義上講它是乙個數

ljltane

1jlj一

收稿日期

作者簡介:湯文亮(1969一),男,江西南昌人,副教授,研究方向為分布式感測器網路、資訊保安。11041第33卷

第3期2011-3(上)

騫、i訇秒似

b(xa,xa),如圖2所示。其中第次旋轉的角度為0t,那麼第i次旋轉的表示式為:

…ix =cos0

{=sin。

lz =0

(10)

協。幢]

從式(8)、(9)和(10)可以看出,給適當初值,通過本演算法可以計算出c0sine和sine,這就是cordic演算法的旋轉模式。

到此為止沒有任何簡化,為了便於硬體實現限制即的值可以存放在

乙個小的查詢表中。通過一系列連續的小角度旋

轉,可以得到任意小的旋轉角度。旋轉角度總和為o: o令當檔six-1;時表示向量是

,2基於cordic演算法的dds實現

cordic旋轉的移位相加流水結構,每一級流逆時針旋轉,當時表示向量是順時針旋轉。這時式(3)變為:…]

式(4)中cos0i為:

鋤(5)

隨著旋轉次數的增加,該式收斂為乙個常數k:

k=兀(6j

式中k是乙個常數增益,暫時不考慮這個增益

因子,式(4)可以寫成:2=

。jl。si21且 j

式(7)就是cordic的迭代式,它只需要通過移

位和相加就可以完成向量旋轉。

設z 是a,bn向量的夾角,要使a旋轉到b,則

si的符號由第i次旋轉時的角度zi決定,z=z0一藝0

,它們的關係如下:zi<o時時特殊情況下,z0<0時,si=一l;zi0時,si=+1)。向量a向量b逼迫的精度由迭代的次數決定,

迭代的次數越多,逼迫的精度就越高。迭代n次(n一。。)得到的最終結果為:

(c。se一ne)

(8)=

去z =zo一0

對於一組特殊的初始值:

{i。=k:

0(9)

lz。=e

得到的結果為:

水線單元只需3個加減法器、2個移位暫存器和1個係數儲存器,非常節省資源,如需提高精度,只

需簡單地增加流水單元即可,擴充套件性很好。這種流水線結構在正常工作時只需乙個時鐘週期就可

輸出乙個資料,可實現高速實時處理,非常適合於在fpga中實現。圖3是dds頂層電路設計圖,頻率控制字暫存器將頻率控制字送入相位累加

器,相位累加器對系統時鐘進行計數,每到達輸

入頻率控制字的值,即對相位進行累加,隨後將

累加值的高16位送入相位相加器,與相位控制字暫存器接收到的初始相位進行相加,得到當前的

相位值。然後把當前相位值的最高位用作象限判

、l{口目

r●,●

定,並把低15位擴充套件1位符號位用於基於cordic的函式發生器。相正弦

撇一瓤一+ 一螽_+ 一【輸出reset酬]q

l6頻率控制字il

余弦輸出

clkl6

圖3 dds】頁層電路設計例

針對迭代結構的缺點,我們設計中可以採用

進製鏈和流水線技術相結合的方法,採用該方法實現的相位累加器既能保證具有較高的資源利用

率,又能大幅提高系統的效能和速度。cordic演算法採用流水線型設計。該設計有兩個優點:第一,

它的移位暫存器進行迭代法比可變移位寄存

器簡單的多。第二,它沒有在角計算中儲存常量的rom,可以用硬體直接來實現。因此在實際設

計中,採用流水線型設計的cordic運算單元正常工作時只需乙個時鐘週期就能輸出乙個資料,為數

【下轉第188頁】

第33卷

第3期2011-3(上)[1o51

j、§:!

【5】萬健如,裴瑋,張國香.統一電能質量調節器同步無差拍控

制方法研究[j].中國電機工程學報

[13]公茂忠,劉漢奎,顧建軍,等.併聯型有源電力濾波器參考電

流獲取的新方法[j].中國電機工程學報

【8]巫付專,萬健如,沈虹.基於upqc主電路容量最小的控制

策略的研究[j].電力系統保護與控制葉忠明,董伯藩,錢照明.諧波電流的提取方法比較【j】.電力

系統自動化

[15]金義雄,程浩忠,嚴健勇,等.改進粒子群演算法及其在輸電

網規劃中的應用[j1.中國電機工程學報

[10]趙曉,付青.基於瞬時無功理論的諧波檢測方法研究.現代

電子技術

【l1】王曉鈺,劉進軍,何益巨集,等.用於通用電能質量控制器的一

種簡單補償策略和統一控制方法[j].電工技術學報,2004.

】086一】091.

離『 島『{&●婦靠● 島『 島i 高『 島● 矗『毒翕『.毫『島● 矗『{彘『 翕} 出『盤『島『 蠡『 盎『出『

【上接第105頁】

據實現高速實時處理提供了前提。塊用hdl語言編寫,在下進行了功能**,**結果圖如圖4所示。

幽3**和實現結果

在quartusii開發環境中,使用基於查詢表和基於c0rdic演算法實現dds的方法設計實現乙個相同指標要求的dds系統,並進行效能指標分析。

{:窿簍怒臻舞慧圓簍蘧簧

本設計的dds的相位累加器位數為30位,正弦值量化位數為8位。使用該兩種方法實現的dds,其

圖4 dss輸出正弦訊號**圖

正弦值輸出精度很相近,基於cordic演算法實現的dds比基於查詢表實現的dds執行速度快4倍多,其最高工作時鐘頻率如表in示。

表1執行速度效能對比

4 結論

本**分析了c0rdic演算法實現dds中相位到幅度轉換的原理,詳細講述了一種優化的基於

cordic演算法實現高速高精度dds的方法。最後在fpga上實現了乙個產生正弦/余弦訊號高速高精度

idds

』最(大i's延)時最鐘高頻工率(作m時h)z

36.58

27dds,該ddst ̄常適用於在軟體無線電中進行高速高精度的數字調製解調。

基於查詢表實現的

參考文獻:

l13基於cordic演算法實 8.78現的dds

【l】李滔,韓月秋.基於流水線cordic演算法的三角函式發生

器[j】.系統工程與電子技術

【2]周柱,張煒.基於cordic的優化的直接數字頻率合成器

[j1.電子工程師

當本設計的dds系統使用系統時鐘為100m,輸出訊號頻率的頻率解析度為0.096hz。輸出頻率時輸出頻率時

當頻率控制字為20c4a8時,輸出正弦波的週期為500ns,即正弦波的頻率為2mhz;當頻率控制字為106254時,輸出正弦波的週期為1000ns,即正弦波的頻率為1mhz,**正確。本設計的所有模

[1881第33卷

第3期2011—3(上)

基於遺傳演算法的高速列車執行多目標優化

摘要 隨著我國高速鐵路的迅速發展,人們不僅要求列車安全 正點 執行過程舒適的同時,能耗和執行時間達到鐵路運營部門和旅客都可以接受的程度。同時也對列車的低能耗和舒適性提出了更高的要求。針對這一情況,本文將遺傳演算法運用於列控系統中對高速列車的執行過程進行優化。通過研究列車的運動方程和約束條件,對列車的...

基於Cadence的高速PCB設計

1引言隨著人們對通訊需求的不斷提高,要求訊號的傳輸和處理的速度越來越快.相應的高速pcb的應用也越來越廣,設計也越來越複雜.高速電路有兩個方面的含義 一是頻率高,通常認為數位電路的頻率達到或是超過45mhz至50mhz,而且工作在這個頻率之上的電路已經佔到了整個系統的三分之一,就稱為高速電路.另外從...

基於圖形計算器的演算法實現與演算法初步教學

作者 楊一奮 數學教學通訊 初等教育 2014年第12期 摘 要 作為一種實現演算法的有力工具,圖形計算器不但可以將演算法化的思路落到實處,更可以在視覺化的基礎上提供分析演算法的通道.文章從例項出發,詳解了演算法實現和演算法分析的具體操作,並提出基於圖形計算器的手持特點,可以使 演算法 成為學生主動...