基于Taylor級數近似補償的改進(jìn)數控振蕩器實(shí)現
二階泰勒補償實(shí)現的原理如下:假設相位累加器輸出的相角 為N bits的,把相角 分成三部分,即N=j+k+2。由于CORDIC能計算相角的范圍為[-99.9°, 99.9°]之間,這是由CORDIC算法本身所決定的,這樣就必須通過(guò)三角關(guān)系把輸入相角轉換到[-99.9°, 99.9°]之間,本文利用輸入相角的高兩位來(lái)判斷相角的轉換。然后再把接下的(N-2)bits的數據分成j bits和k bits兩部分,中間j bits作為CORDIC的輸入相角 ,后k bits作為后續二階泰勒補償模塊的輸入數據。在這里并沒(méi)有把整個(gè)(N-2)bits的角度 作為CORDIC的輸入,而是只取了前j bits,這樣就會(huì )很大程度的降低模塊的占用資源,同時(shí),減少輸入數據的位寬就會(huì )減少迭代的次數。由于這樣只取 的高 1位作為CORDIC的輸入,這樣產(chǎn)生的截斷舍入誤差會(huì )影響到整個(gè)數控振蕩器的SFDR,為了補償這部分的損失,本文采取二階泰勒級數來(lái)補償這部分損失,對于低k bits的角度(-)用來(lái)作為二階泰勒級數補償的輸入相角。利用二階泰勒級數補償(公式8),可以計算出比較準確的正余弦值。
本文引用地址:http://dyxdggzs.com/article/110914.htm仿真結果
為了驗證結果有可比性,驗證性能時(shí)采用無(wú)雜散動(dòng)態(tài)范圍值(SFDR)這一公認指標進(jìn)行衡量。在頻域中,SFDR是衡量一個(gè)信號失真特性的有效方法,SFDR為定義在一定頻率范圍內的信號與第二大頻率成分的功率差。在驗證性能時(shí),用Matlab對基于CORDIC算法的改進(jìn)數控振蕩器進(jìn)行仿真,在仿真時(shí)采取了定點(diǎn)化仿真,輸入相位位數為22bits,輸出的正余弦值的位寬為20bits,對于本文提的方法的具體參數設定如下:CORDIC的輸入位寬k=10bits,累加器位寬N=22bits,采樣頻率,輸出正余弦信號的頻率,仿真的結果如圖2(b)所示,從圖中可以看出本文提出的方法的SFDR值可以達到114.5dB,輸出信號的頻譜能量主要集中在10MHz附近,但第二大頻率成分的尖峰出現0Hz附近,這個(gè)尖峰是未補償盡殘余雜散頻譜,它與主頻譜幅度相差近115dB,對數控振蕩器的性能影響很小。并且,隨著(zhù)累加器位寬和輸出信號位寬的增加,數控振蕩器的SFDR值會(huì )進(jìn)一步提高,本文的實(shí)現方法在輸出正余弦值位寬為24bits時(shí),它的SFDR值可以達到134dB。
圖2(a)所示的是基于傳統CORDIC算法實(shí)現的數控振蕩器,它的SFDR值達到66.5dB。從圖2可以看出改進(jìn)方法提高SFDR值近48dB。本文的改進(jìn)方法與其他的實(shí)現方法的性能比較見(jiàn)表1,從表中可以看出本文提出的改進(jìn)方法比參考文獻提出的實(shí)現方法的輸出信號SFDR值都要高,所以,本文提出的方法輸出信號頻譜的純度要優(yōu)于其他方法。
評論