摘 要:闡述了兩種DDS的原理,頻率合成方式(DDFS)和直讀方式(DDWS),給出了FPGA實現方式,分析了DDS的幾個關鍵的技術指標,并通過Matlab仿真。頻率合成方式是比較常用的DDS產生方式,對它做了詳細的原理性介紹和實現說明,重點通過仿真詳細對比了兩種實現方式在性能指標上的優劣,為后人的選擇提供技術參考。
關鍵詞:頻率合成方式; 直讀方式; 帶外抑制比; 信噪比
中圖分類號:TN911 文獻標識碼:A
文章編號:1004-373X(2010)13-0204-03
Two Kinds of DDSs Implementing with FPGA
ZHAO Fei, GUO Wei
(Center for Space Science and Applied Research, Chinese Academy of Sciences, Beijing 100190, China)
Abstract: The principle of two kinds of DDSs (DDFS and DDWS) is elaborated. The implementation mode of FPGA is offered. Several critical qualifications of DDSs are analyzed and simulated with Matlab. The principle and implementation of DDFS are introduced in detail since DDFS is widely used to generate DDS. The advantages and disadvantages of the two implementaion modes are compared with their qualifications. Those qualifications can be used for reference for someone who works in the field of DDSs.
Keywords: DDFS; DDWS; SFDR; SNR
0 引 言
DDS(Direct Digital Frequency Synthesizers)廣泛應用于雷達系統、數字通信、電子對抗、電子測量等民用軍用設備中。它是隨著半導體技術和數字技術的快速發展而發展起來的新型的頻率合成技術,與傳統的VCO+PLL的模擬方式產生所需頻率相比,DDS技術具有頻率分辨率高,相位噪聲低,帶寬較寬,頻譜純度好等優點。這些技術指標在一個系統中是至關重要的,決定著一個系統的成敗。
1 DDS的基本原理
1.1 頻率合成方式的基本原理
DDFS是根據余弦函數相位和幅值的對應關系,從相位出發,由不同的相位給出不同的電壓幅值,再經過D/A變換和濾波最后得到一定頻率和調頻率的模擬信號[1]。由此可見,DDS有很多功能模塊組成[2],如圖1所示。
若相位累加器有N位,時鐘頻率為fclk,頻率控制字為FCW。N位的相位累加器可以對時鐘頻率進行2N分頻,所以DDS的精度[3]可以達到:
Δf=fclk/2N
(1)
圖1 DDS原理流程圖
頻率控制字是用來控制累加器的步進的,累加器的步進為Δθ=FCW*12N。假設初始的相位偏移 ΔΦ=0,則經過N個時鐘周期后相位累加器的輸出θ=2π*FCW*N*(1/2N)。在相位步進Δθ 時,完成2π的相位變化即為完成一個輸出周期,所以20/Δθ*Tclk=To,即:
fo=fclk2N*FCW
(2)
可見調節FCW可以任意地按照要求改變輸出頻率,這就達到了頻率合成的目的。
1.2 直讀方式DDS的原理
直讀法(DDWS)工作流程是,把所需要的DDS的波形,直接用Matlab抽樣量化,然后把量化的數據直接存儲到FPGA的BlockRAM[4]中,再在時鐘頻率的控制下直接從BlockRAM中讀取數據,D/A后輸出原來波形。
2 數字實現
2.1 DDFS的數字實現
由于D/A之前都是數字部分,為了分析其原理數字控制的實現過程,參考如圖2所示結構。
圖2 累加器
相位累加器是由一個加法器和一個寄存器構成,假設累加器位數N=6,那么000000代表0弧度,000001代表弧度,相應的000010代表 (2π/64)*2弧度,111111代表(2π/64)*63弧度。若頻率控制字FCW=000011,并且累加器中的初始相位為0,則經過N=21個時鐘周期后形成的二進制序列為000000,000011,…,111111,對應的相位分別為0,(2π/64)*3,…,(2π/64)*63。當第22個時鐘周期到來時,加法器溢出,所有位數重置為0,另一個循環周期開始[5]。查找表可以用FPGA中BlockRAM做成,前面的二進制序列作為地址,相位對應的幅度值作為地址對應的值存儲起來,這樣在時鐘頻率的控制下通過二進制序列可從BlockRAM中讀取相應的幅值,經過D/A后就為所需要的模擬波形。圖3為FPGA綜合后的RTL級電路圖[6]。
圖3 合成方式DDS的RTL級電路圖
2.2 DDWS的數字實現
DDWS的數字實現較為簡單,把通過Matlab抽樣量化后的數據直接保存為.BAT數據格式,然后在FPGA中用IP核[7]的BlockRAM生成一個ROM,把數據存儲進去,這樣就可以根據時鐘要求輸出需要的數據了。
圖4為FPGA仿真后的RTL級電路圖。
圖4 直讀方式RTL級電路圖
3 DDS的性能指標
3.1 頻率分辨率
對于頻率合成方式的DDS,只要是累加器的位數足夠多,理論上可以達到任意無限高的頻率分辨率。由式(1),若N=39,fclk=1,分辨率可達到0000 18 Hz。但是對于直讀方式,分辨率是受到硬件D/A速度限制的,一般如果用四倍的頻率速度采集和恢復,分辨率只能達到025 Hz[8]。
3.2 SFDR
最常用的評價DDS工作性能的參數是帶外抑制比[9](SFDR),它是指有效信號的頻譜幅度與噪聲頻譜幅度的最大值之差。實際的頻譜合成方式的DDS在累加器的輸出和查找表之間還有個相位折斷的過程。若累加器的輸出A為N位,查找表的輸入B為M位,一般情況下N>M,這是為了節約查找表的空間。正是由于這種相位折斷才降低了SFDR,使得DDS的性能變壞。以上參數都是可以根據實際的要求估算出來的,例如要產生一個4 MHz、分辨率為04 Hz、帶外抑制比為60 dB的正弦信號,時鐘頻率為100 MHz。那么根據式(2),可以得到N=11;根據實際經驗,查找表的每位可以產生6 dB的抑制比,所M=60/6=10 b。由于直接讀取法DDS不存在相位折斷的問題,所以往往能得到比較好的SFDR。
3.3 信噪比
由于SFDR只與最大噪聲的頻譜幅度有關,所以相同的SFDR可能有不同的頻譜純度,為此引入了另外一個DDS的性能指標——信噪比[10](SNR)。信噪比是指信號功率和噪聲功率之比,由于涉及到所有的噪聲,所以跟頻譜純度息息相關,對于頻率分辨率高的DDS,噪聲的能量較低,信噪比較大,頻譜純度好。
4 Matlab仿真結果
根據兩種DDS的FPGA的仿真數據,可以通過Matlab仿真輸出波形,如圖5,圖6所示。
圖5 直讀方式頻譜
圖6 頻率合成方式頻譜
可以根據圖很明顯地看出以上三個性能參數的比較情況,直讀DDS的SFDR要大得多,而且頻譜純度也好,合成方式的頻率分辨率高。
5 結 語
從以上比較可以發現直讀方式是實際應用中非常好的選擇,但是對于這種方式,只能輸出有限的預先設定好的頻率和調頻率,不具有通用性適合用在特定的場合。而頻率合成的DDS能合成任意頻率和調頻率,也能通過一定的措施達到所需指標,所以這種原理是一種通用的原理,被科研工作者和DDS制造商廣泛采用。在雷達系統(比如高度計、散射計)中,往往只需要某一種或者幾種特定的調頻率、帶寬、頻率的DDS,所以可以較多地采用直讀方式。
參考文獻
[1]白居憲.直接數字頻率合成[ M] .西安:西安交通大學出版社,2007.
[2]焦安群,郜麗鵬.線性調頻信號源的研制[ J] .應用科技,2009,36(5):27-30.
[3]王美妮.基于FPGA的DDS的研究設計與實現[ D] .大連:大連海事大學,2006.
[4]田耘,徐文波.XILINX FPGA開發實戰[ M] .北京:清華大學出版社,2008.
[5]ARTHER TOROSYAN. Direct digital frequency synthesizers: complete analysis and design guidelines[ M] . California: University of California, 2004.
[6]田耘,徐文波.FPGA開發指南[ M] .北京:人民郵電出版社,2008.
[7]華清遠見培訓中心.FPGA應用開發入門與典型實例[ M] .北京:人民郵電出版社,2008.
[8]JOHN G PROAKIS.數字信號處理:原理、算法與應用[ M] .張曉林,譯.北京:電子工業出版社,2004.
[9]IAN G CUMMING,FRANK H WONG.合成孔徑雷達成像:算法與實現[ M] .洪文,胡東輝,譯.北京:電子工業出版社,2007.
[10]樊昌信,張甫翊,徐炳祥,等.通信原理[ M] .北京:國防工業出版社,2002.