摘? 要: 對直接數(shù)字頻率合成器(DDS)中的相位幅度轉換模塊提出了一種基于分段非線性函數(shù)近似的的設計方法。這種方法取代了傳統(tǒng)的ROM查找表的方法,可以避免因采用大容量的ROM而帶來的成本高、功耗大、可靠性下降等缺點。此方法對正弦函數(shù)的第一象限進行分段,在每一段內(nèi)用非線性函數(shù)近似,然后再根據(jù)正弦函數(shù)的對稱性質,重構完整的正弦函數(shù)。此法可以獲得較好的壓縮效果,并且結構簡單,易于實現(xiàn)。
關鍵詞: 直接數(shù)字頻率合成(DDS);分段非線性函數(shù)近似;ROM容量
?
直接數(shù)字頻率合成(DDS)是第三代頻率合成技術,具有頻率分辨率高、頻率切換時間短、相位變化連續(xù)、易于集成等優(yōu)點,被廣泛地應用在通信、雷達、儀器儀表等領域。目前,在采用ROM查表方式的DDS中,為了提高頻譜純度和分辨率需要增加ROM容量(ROM容量為2W×D,W是對ROM尋址的相位位數(shù),D是ROM的輸出位數(shù))。但大容量的ROM會使成本提高、功耗增大、速度降低且可靠性下降,因此在一定頻譜純度和分辨率的前提下研究sin存儲表的壓縮算法,對于降低DDS的存儲容量非常有意義。本文介紹了DDS的工作原理、1/4周期壓縮,提出了用分段非線性函數(shù)近似的方法代替大容量的ROM,并給出了此法在QuartusII開發(fā)環(huán)境下的原理圖及時序仿真圖。
1 DDS的工作原理
DDS的基本結構如圖1所示,它由相位累加器、相位幅度轉換器(常用的相位幅度轉換方法是ROM查表法)、D/A和低通濾波器構成。在時鐘周期的控制下,相位累加器對頻率控制字K進行累加得到N位的相位累加值。N位累加值作為ROM查表的尋址地址,但在實際應用中,相位累加器輸出的N位累加值,并不是全部都用來對ROM尋址,而是截取高W位對其尋址,這樣可以降低對ROM容量的要求。查表輸出它所對應的數(shù)字化幅度值,再經(jīng)過D/A變換完成離散信號到連續(xù)信號的轉變,最后經(jīng)低通濾波器濾波即可得到信號輸出。輸出信號頻率為fo=kfc/2N。
?
2 正弦函數(shù)1/4周期壓縮
由于正弦函數(shù)sin(x)在0~2π上關于x=π奇對稱,即0~π和π~2π區(qū)間相比,其對應位置的幅度值的絕對值相等,符號相反。故將π~2π區(qū)間的相位編碼減去π,求出其幅度值后再加一負號,就相當于直接對π~2π區(qū)間的相位求正弦值。同時,在0~π區(qū)間,sin(x)函數(shù)關于x=π/2偶對稱,故可用0~π/2區(qū)間的幅度值來表示0~π整個區(qū)間的波形。繼而0~2π之間的幅度值完全可以由0~π/2區(qū)間的幅度值來實現(xiàn),這樣大大降低了查表的存儲容量。圖2表示了這種方法的實現(xiàn)框圖。
?
兩個最高有效相位位作解碼象限位,其余的W-2位用來尋址第一象限的正弦查表。最高有效位(MSB)確定結果符號,第二最高有效位確定幅度是增加還是減少。對于第一和第三象限相位,累加器的輸出在第二個MSB(此時其值為0)的控制下“保持原狀”,對于第二和第四象限相位,累加器的輸出在第二個MSB(此時其值為1)的控制下進行二進制求補,從圖形上可以看出此時鋸齒波斜率在第二和第四象限是反轉的。這樣就形成了一個周期的正弦波[1]。
在采用1/4周期壓縮的基礎上,常用的相位幅度轉換方法有ROM查表法、sunderland結構、sinθ-θ法、CORDIC、線性插值、泰勒近似等[3-9]。
3 分段非線性函數(shù)近似算法
3.1 算法提出
當x∈[0,1],對sin(xπ/2)進行連續(xù)等距離的M分段,在每一段內(nèi)用一個二次函數(shù)近似sin(xπ/2)。a、b、c分別為二次項、一次項、常數(shù)項系數(shù),i表示所在分段。分段數(shù)越大,近似誤差就越小,但所需的ROM容量也越大,本文是在M=8的基礎上展開設計的。
目前常用的非線性近似函數(shù)為泰勒二階近似,在Matlab中對八分段的泰勒二階近似和擬合比較,擬合方式的誤差絕對值范圍在1.2×10-4內(nèi),泰勒二階級數(shù)方式的誤差絕對值范圍在1.8×10-4內(nèi),雖然兩者相差不大,但是當對正弦函數(shù)擴大一個較大的倍數(shù)如228后,它們之間的差距就很大了,因此本文采用的是擬合方式近似正弦函數(shù)。
將x在[0,1]均勻八分段,利用Matlab中提供的擬合函數(shù)對sin(xπ/2)進行擬合,得到各段的系數(shù)如表1所示。
本文取W-2=14,也即對x擴大了214倍,那么對于x2就擴大228倍,為了對表達式中的三項擴大相同的倍數(shù),將一次項系數(shù)b擴大214、常數(shù)項系數(shù)c擴大228,則此時各段系數(shù)如表2所示(其中L=214)。
??? 由于最大幅度誤差和無雜散動態(tài)范圍成反向關系,為使每段的最大幅度誤差下降,調(diào)整常數(shù)項系數(shù)后各段系數(shù)情況如表3所示。
??? 這時每段的最大誤差的絕對值e如表4所示。
??? 目前常用的D/A轉換器有8位、10位、12位、16位,此時的誤差情況決定了最高可以采用12位D/A轉換器。仔細分析后發(fā)現(xiàn)前三段的最大誤差的絕對值較大,制約了可輸出的位數(shù)?;谶@樣的情況,考慮將前三段再分別均分成兩段,每段采用適當?shù)姆蔷€性函數(shù)去近似正弦函數(shù)。各段系數(shù)如表5所示。
??? 這時,每段最大誤差絕對值的情況如表6所示,可以滿足16位D/A轉換器(其中1位是符號位,其余15位是數(shù)值位)的條件。
3.2 具體實現(xiàn)
? 相位幅度轉換模塊sin_r_2是根據(jù)函數(shù)表達式計算得來的,因此由乘法器、加法器和存儲各項系數(shù)的模塊等共同構成[2],如圖3所示。
??? 其中sin_c_2是根據(jù)輸入的14位相位值的高位獲得相位所在段落的二次項、一次項、常數(shù)項的系數(shù)(其中二次項系數(shù)存儲的是分子,由于分母是214可以通過右移14位實現(xiàn),故在此存儲的是分子),二次項系數(shù)占15位,一次項系數(shù)占16位,常數(shù)項系數(shù)占26位。lpm_mult0是一個具有四級流水線的14×15乘法器,完成二次項系數(shù)中的分子與輸入的相位的乘法。采用四級流水線是為了獲取高的運算速度,但是運算結果是經(jīng)過4個時鐘周期的延遲才產(chǎn)生的。lpm_mult0運算結果是29位的結果,通過rs14la1模塊完成右移14位,同時左補1位,結果為16位。delay_c1_4將一次項系數(shù)延遲4個時鐘周期。lpm_add_sub0是一個具有二級流水線的16位減法器,它完成了-ax+b中的減法運算。delay_in_6將輸入的14位相位延時6個時鐘周期。lpm_mult1是個具有四級流水線的14×16乘法器,完成(-ax+b)x中的第二個乘法運算。delay_c0_10將常數(shù)項系數(shù)c0延時10個時鐘周期,la4對常數(shù)項c0左補4位0。lpm_add_sub1是一個具有四級流水線的30位減法器,完成(-ax+b)x-c中第二個減法運算。rs13lw2將前一級模塊的30位結果右移13位同時去掉左端的前兩位。這是因為本文設計的相位幅度轉換器,可以滿足后接16位D/A轉換器的要求(其中第一位是符號位,后面15位是數(shù)值位)。30位的計算結果前兩位始終為0,可以將此去掉,再去掉計算結果中的后13位,剩下的15位送往D/A轉換器。這樣就完成了相位幅度轉換。
時序圖如圖4所示,信號in對應sin_c_2中輸入的14位相位,ru1對應sin_r_2輸出的14位相位值out[13:0],m1是lpm_mult0輸出的結果,dc1是delay_c1_4的輸出結果,s1是lpm_add_sub0的輸出結果,ru2是delay_in_6輸出結果,m2是lpm_mult1的輸出結果,dc0是delay_c0_10的輸出結果,out是rs13lw2的輸出結果。從時序圖中可以看出,經(jīng)過14個時鐘周期的延遲,最后輸出正確的結果。
?
3.3 比較
本文設計的相位幅度轉換器主要特點是ROM容量的壓縮。首先在Matlab中仿真得知,在八分段中采用擬合方式近似比采用泰勒二階近似誤差范圍小,所以采用的是擬合方式的函數(shù)近似。其次,通過分析可知八分段的方法中最高可以滿足14位D/A變換的要求,需存儲8×(15+16+26)=456 bit的信息,若采用常規(guī)的ROM查表法在相同條件下(W-2=14,D=11)所需ROM容量為214×11=180 224 bit。再次,為了進一步改善輸出頻率的頻譜特性本文將誤差較大的前三段每段再次均分為兩段,這時就可以滿足16位D/A變換的要求,需存儲11×(15+16+26)=627 bit的信息,若采用常規(guī)的ROM查表法在相同條件下(W-2=16,D=15)所需ROM容量為214×15=245 760 bit??梢娺@種方法只需進一步劃分不符合要求段落的分段就可以獲得更好的頻譜特性,因此具有很強的靈活性。
本文通過仿真比較,提出了一種針對八分段、十一分段的分段非線性函數(shù)近似的方法去實現(xiàn)DDS中的相位幅度轉換器。與過去常規(guī)的ROM查表法相比較,它可以獲得較好的壓縮效果。在QuartusII開發(fā)環(huán)境下搭建了利用此方法所實現(xiàn)的相位幅度轉換器的結構圖,并得到了它的時序仿真圖。通過驗證,本法可以很好地實現(xiàn)相位幅度轉換的功能。在具體的實現(xiàn)中采用(-ax+b)x-c形式,比用-ax2+bx-c形式節(jié)省了一個乘法器,充分利用數(shù)字電路中的右移特性實現(xiàn)除法運算,總共用了兩個乘法器和兩個減法器,結構簡單、靈活,易于實現(xiàn)。
參考文獻
[1] 白居憲.直接數(shù)字頻率合成[M].西安:西安交通大學出版社,2007.
[2] 劉波.精通Verilog HDL語言編程[M].北京:電子工業(yè)出版社,2007.
[3] 徐海燕,田增山.直接數(shù)字頻率合成中的相位雜散抑制方法研究[J].電信交換,2007(4):15-18.
[4] 何方勇,陳建安.基于線性插值的DDFS中的相位-幅度映射研究[J].現(xiàn)代雷達,2006,28(1).
[5] 王春林,吳建輝,葉雙應,等.一種基于非均勻分段線性插值的直接數(shù)字頻率合成器[J].電子器件,2006,29(2).
[6] 木霄易,劉麗蓓,邵丙銑.一種高性能低功耗直接數(shù)字頻率合成器的設計[J].微電子學與計算機,2007,24(1).
[7] LANGLOIS J P M, Al-KHALILI D.Piecewise continuous Linear interpolation of the sine function for Direct Digital Frequency Synthesis[J]. Radio Frequency Inteqrated Circuits(RFIC) Symposium, 2003 IEEE 8-10 June 2003.
[8] LANGLOIS J P M, Al-KHALILI D. A new approach to the Design of Low Power Direct Frequency Synthesizers[C]. IEEE International Frequency Control Symposium and PDA Exhibition 2002.
[9] VANKKA J. Methods of mapping from phase to sine amplitude in direct digital synthesis[J]. IEEE International Frequency Control Symposium, 1996.