基于DDS的AM調(diào)制_第1頁
基于DDS的AM調(diào)制_第2頁
基于DDS的AM調(diào)制_第3頁
基于DDS的AM調(diào)制_第4頁
基于DDS的AM調(diào)制_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、南京理工大學電子工程與光電技術(shù)學院基于DDS的fM調(diào)制器的設(shè)計姓名 俞鋒學號 0704220253指導老師 蔣立平設(shè)計時間 2010.3.82010.3.14摘要:實驗利用Quartus II 軟件實現(xiàn)直接數(shù)字頻率合成,具有頻率字和相位字的控制功能,從而改變頻率和相位。還具有相位清零功能以及波形切換功能。并且通過修改存儲器ROM 中的數(shù)據(jù)來提高精度和設(shè)計圖形。本文主要介紹實驗中功能實現(xiàn)的方案,原理,以及相關(guān)操作。還有實驗中遇到的問題和解決方法。關(guān)鍵字:數(shù)字頻率合成 頻率字 相位字 精度提高 Abstract The experiment is to design the Direct Digi

2、tal Synthesizer (DDS) with the Quartus II. The designed synthesizer should be able to change the phase and frequency ,and it also can set the phase to zero or change the waves. In addition, we can set the data in the ROM to improve the accuracy of the DDS and design special figures.The text is mainl

3、y to introduce the methods, principle, and operations. We also talk about the problems and solutions in the experiment.Key words Direct Digital Synthesizer frequency phase improve accuracy目 錄1引言 (4)2設(shè)計要求 (6)3工作原理介紹 (7)4各個子模塊設(shè)計原理 (8) 41 頻率預(yù)置與調(diào)節(jié)電路 (8) 4. 2 累加器模塊 (9) 43 波形存儲模塊 (11) 44 D/A轉(zhuǎn)化器與低通濾波器 (12)

4、 45 調(diào)制與解調(diào)電路 (13) 4. 6 顯示測頻模塊 (15) 4. 61 測頻模塊 (15) 4. 62 顯示模塊 (17) 4. 7 脈沖發(fā)生電路 (18)5仿真結(jié)果 (20)6設(shè)計結(jié)論和感想 (22)7實驗總結(jié) (23)8參考文獻 (24)引言DDS 同DSP(數(shù)字信號處理)一樣,是一項關(guān)鍵的數(shù)字化技術(shù)。DDS是直接數(shù)字式頻率合成器(Direct Digital Synthesizer)的英文縮寫。與傳統(tǒng)的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時間等優(yōu)點,廣泛使用在電信與電子儀器領(lǐng)域,是實現(xiàn)設(shè)備全數(shù)字化的一個關(guān)鍵技術(shù)。 DDS的性能特點:DDS在相對帶寬、頻率轉(zhuǎn)

5、換時間、高分頭放力、相位連續(xù)性、正交輸出以及集成化等一系列性能指標方面遠遠超過了傳統(tǒng)頻率合成技術(shù)所能達到的水平,為系統(tǒng)提供了優(yōu)于模擬信號源的性能。(1) 輸出頻率相對帶寬較寬 輸出頻率帶寬為50%fs(理論值)。但考慮到低通濾波器的特性和設(shè)計難度以及對輸出信號雜散的抑制,實際的輸出頻率帶寬仍能達到40%fs。 (2) 頻率轉(zhuǎn)換時間短 DDS是一個開環(huán)系統(tǒng),無任何反饋環(huán)節(jié),這種結(jié)構(gòu)使得DDS的頻率轉(zhuǎn)換時間極短。事實上,在DDS的頻率控制字改變之后,需經(jīng)過一個時鐘周期之后按照新的相位增量累加,才能實現(xiàn)頻率的轉(zhuǎn)換。因此,頻率時間等于頻率控制字的傳輸,也就是一個時鐘周期的時間。時鐘頻率越高,轉(zhuǎn)換時間越

6、短。DDS的頻率轉(zhuǎn)換時間可達納秒數(shù)量級,比使用其它的頻率合成方法都要短數(shù)個數(shù)量級。 (3) 頻率分辨率極高 若時鐘fs的頻率不變,DDS的頻率分辨率就是則相位累加器的位數(shù)N決定。只要增加相位累加器的位數(shù)N即可獲得任意小的頻率分辨率。目前,大多數(shù)DDS的分辨率在1Hz數(shù)量級,許多小于1mHz甚至更小。(4) 相位變化連續(xù) 改變DDS輸出頻率,實際上改變的每一個時鐘周期的相位增量,相位函數(shù)的曲線是連續(xù)的,只是在改變頻率的瞬間其頻率發(fā)生了突變,因而保持了信號相位的連續(xù)性。正文1、 設(shè)計要求1. 基本設(shè)計要求a) 利用QuartusII軟件和SmartSOPC實驗箱來實現(xiàn)DDS調(diào)制器的設(shè)計;b) DD

7、S中的波形存儲器模塊用Altera公司的Cyclone系列FPGA芯片中的RAM實現(xiàn),RAM結(jié)構(gòu)配置成21210類型;c) 具體參數(shù)要求:頻率控制字K取4位;基準頻率fc=1MHz,由實驗板上的系統(tǒng)時鐘分頻得到;d) 系統(tǒng)具有清零和使能的功能;e) 利用實驗箱上的D/A轉(zhuǎn)換器件將ROM輸出的數(shù)字信號轉(zhuǎn)換為模擬信號,能夠通過示波器觀察到正弦波形;f) 通過開關(guān)(實驗箱上的Ki)輸入DDS的頻率和相位控制字,并能用示波器觀察加以驗證;2. 提高部分設(shè)計要求a) 通過按鍵(實驗箱上的Si)輸入DDS的頻率和相位控制字,以擴大頻率控制和相位控制的范圍;(注意:按鍵后有消顫電路)b) 能夠同時輸出正余弦

8、兩路正交信號;c) 在數(shù)碼管上顯示生成的波形頻率;d) 充分考慮ROM結(jié)構(gòu)及正弦函數(shù)的特點,進行合理的配置,提高計算精度;e) 設(shè)計能輸出多種波形(三角波、鋸齒波、方波等)的多功能波形發(fā)生器;f) 自行添加其他功能。2、 工作原理介紹在進行正式的實驗操作前,我們需要先了解DDS的具體實現(xiàn)原理,方能進行設(shè)計。圖1 DDS實現(xiàn)的原理圖根據(jù)以上的原理圖,下面以正弦波為例,對各個部分進行簡單介紹。波形存儲器,即為ROM,用于存儲波形數(shù)據(jù)。將一個周期內(nèi)的正弦波,分為2N份,取每一點坐標下的正弦值,在將數(shù)據(jù)進行處理,擴展到0到2D-1中的取值。完成以上過程即完成了ROM數(shù)據(jù)的配置。N位是ROM的地址線寬度

9、,即ROM中存有2N數(shù)據(jù);D位是ROM的數(shù)據(jù)線寬度,即ROM輸出的數(shù)據(jù)范圍是0到2D-1,這與以上ROM的數(shù)據(jù)配置相互對應(yīng)。如果對ROM中數(shù)據(jù)逐一取值,輸出的為階梯波,但是通過D/A轉(zhuǎn)換即可恢復正弦波形,累加器就是用于此。但ROM中的數(shù)據(jù)也可以間隔取值,這樣會減少采樣點的個數(shù),但因為系統(tǒng)時鐘頻率fc=1MHz足夠大,遠遠大于Nyquist頻率,所以減少采樣點,對恢復波形沒有影響,但是可以縮短一個波形的輸出時間(即TS),這樣就能提高輸出波形頻率。即通過改變數(shù)據(jù)取樣間隔,從而改變輸出頻率,達到頻率可控。頻率控制字K就用于改變采樣間隔,頻率控制字決定了累加器每次相加的數(shù)值,即在ROM中每個幾個數(shù)據(jù)

10、取出一個輸出,這樣就達成了頻率控制。總體電路圖如下:圖2 DDS調(diào)制器總體電路圖3、 各個子模塊設(shè)計原理:(1) 頻率預(yù)置與調(diào)節(jié)電路作用:實現(xiàn)頻率控制量的輸入;不變量K被稱為相位增量,也叫頻率控制字。圖3 頻率控制字電路圖中ENP使能端接k5開關(guān)??刂齐娐凡捎醚h(huán)計數(shù)方式,不再另外設(shè)置清零端。當k5置1時,74163開始加計數(shù)。當k5置0時,74163處于保持狀態(tài)。此時可由測頻電路顯示的頻率換算出頻率字。(2) 相位累加器相位累加器由12位的加法器和12位的寄存器組成,其原理圖如下所示:圖4 相位累加器相位累加器的作用是在頻率為1MHz的時鐘的作用下,進行相位累加,當相位累加器累加滿量時就會產(chǎn)

11、生一次溢出,完成一個周期性的動作。其中的加法器用VHDL語言編寫,寄存器則由硬件實現(xiàn)。具體實現(xiàn)如下:1、加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_signed.all;entity adder isport(op: in signed (14 downto 0);result: out signed (14 downto 0);end adder;architecture beh of adder issignal p: signed (14 down

12、to 0);beginP=001110111110001;result=OP+P;end beh;2、 寄存器圖5 寄存器內(nèi)部電路op211.0端輸入的頻率字,控制步長,addr11.0端輸入的是寄存器中輸出的,這樣可以通過寄存器的clk脈沖控制地址線上的數(shù)值以步長為間隔變化,這樣就可根據(jù)步長對ROM中的數(shù)據(jù)進行采樣。采用寄存器是考慮到result11.0端輸出的數(shù)據(jù)時間不統(tǒng)一,這樣將影響到取樣,并且要將數(shù)據(jù)進行累加時也需要脈沖,這就要由累加器提供,這也說明了寄存器的作用。對累加器進行波形仿真如下圖6 累加器仿真波形圖(3) 波形存儲器其作用是進行波形的相位-幅值轉(zhuǎn)換。原理是: ROM的N位地

13、址 把0O360O的正弦角度離散成具有2N個樣值的序列;ROM的D位數(shù)據(jù)位則2N個樣值的幅值量化為D位二進制數(shù)據(jù)。 圖7 音頻信號封裝模型 圖8 調(diào)制信號封裝模型圖9 音頻信號發(fā)生電路圖10 調(diào)制信號發(fā)生電路由電路圖可以看出音頻信號和調(diào)制信號采用同樣的發(fā)生方法,其結(jié)構(gòu)類似。故分析時,僅以音頻信號為例。音頻信號發(fā)生電路主要由三部分組成:頻率控制字、累加器、記錄正弦波的ROM。頻率控制字與總電路中的頻率控制字類似。不同的是為了更好的進行控制,增加了一個清零開關(guān)。電路結(jié)構(gòu)如左圖示。累加器結(jié)構(gòu)如前,不再作說明。電路中使用的正弦波利用MATLAB軟件生成波形并導入ROM中。MATLAB軟件用到的公式如下

14、:a) T=2*pi/4096;t=0:T:2*pi;/正弦波 A=(1+sin(t)*1023/2; B=round(A);b) T=2*pi/4096;t=0:T:2*pi-T;/方波 A=(1+square(t)*1023/2; B=round(A);c) T=2*pi/4096;t=0:T:2*pi-T;/鋸齒波 A=(1+sawtooth(t)*1023/2; B=round(A);d) T=2*pi/4096;t=0:T:2*pi-T;/三角波 A=(1+square(t,0.5)*1023/2; B=round(A);另外,通過更改參數(shù)可以形成二分之一的正弦波及四分之一的正弦波。

15、本例實驗中時間有限,僅以正弦波為例設(shè)計。其余波形僅作理論分析,不另作硬件仿真。(4) D/A轉(zhuǎn)化器與低通濾波器D/A轉(zhuǎn)換器的作用有二。其一是把已經(jīng)合成的正弦波的數(shù)字量轉(zhuǎn)換成模擬量。 其二則是是濾除生成的階梯形正弦波中的高頻成分,將其變成光滑的正弦波,充當?shù)屯V波器。(5) 調(diào)制與解調(diào)電路調(diào)制解調(diào)部分電路圖如下圖示:圖11 調(diào)制解調(diào)電路該部分電路有3個模塊組成:mul、adder、mul10。其中mul模塊接音頻信號,mul10則接調(diào)制信號。adder模塊則與74163組合使用,控制m的取值范圍,使之產(chǎn)生或不產(chǎn)生過調(diào)制。各模塊均由VHDL語言編寫,具體實現(xiàn)如下:mul模塊LIBRARY ieee

16、;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.aLL;USE ieee.std_logic_signed.all;USE ieee.std_logic_unsigned.all;ENTITY mul ISPORT (X:IN signed (9 downto 0);y:IN STD_LOGIC_VECTOR(3 downto 0);clk:in std_logic;result: OUT signed (14 downto 0);END mul;ARCHITECTURE mul_arch OF mul IS SIGNAL p: si

17、gned (4 downto 0);BEGINp= signed (0&y); PROCESS (clk) BEGIN IF (clkevent and clk=1) THEN result=X*p;END IF;END PROCESS;END mul_arch;adder模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_signed.all;entity adder isport(op: in signed (14 downto 0);result: out s

18、igned (14 downto 0);end adder;architecture beh of adder issignal p: signed (14 downto 0);beginP=001110111110001;result=OP+P;end beh;mul10模塊LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.aLL;USE ieee.std_logic_signed.all;USE ieee.std_logic_unsigned.all;ENTITY mul10 ISPORT (x:IN sig

19、ned (9 downto 0);y:IN signed (14 downto 0);clk:in std_logic;result: OUT signed (9 downto 0);END mul10;ARCHITECTURE mul10_arch OF mul10 ISSIGNAL p: signed (24 downto 0);BEGIN PROCESS (clk)BEGIN IF (clkevent and clk=1) THEN P=X * Y;result=P(24 downto 15);END IF;END PROCESS;END mul10_arch;(6) 顯示測頻電路顯示測

20、頻電路用于測量信號頻率,并將結(jié)果數(shù)字化顯示在數(shù)碼管中。其外部模塊如下圖: 圖12 顯示測頻電路模塊 圖13 測頻模塊其中,測頻模塊封裝于顯示測頻模塊中。下面我們將對這兩個模塊進行分析。1) 測頻模塊測頻電路用于測量發(fā)生波形的頻率,其原理圖如下:圖14 測頻電路原理圖原理波形圖如下:圖15 原理波形圖而其實際電路采用如下方式實現(xiàn):圖16 實際測頻電路圖測頻電路由計數(shù)器和寄存器兩部分組成。先對單位時鐘clk1進行二分頻,在二分頻反相后的結(jié)果處于高電平時,就使得計數(shù)器的使能端有效,計數(shù)器開始計數(shù),當二分頻反相結(jié)果出現(xiàn)下降沿時,計數(shù)器的結(jié)果就被寄存器鎖存后通過顯示電路輸出。電路中存在反相器會有延時效應(yīng)

21、,但是延時時間很短,只要小于待測信號周期即可,而根據(jù)最后的實驗結(jié)果可知,測得的頻率最高只是幾千,所以反相器的延時效應(yīng)對實驗沒有太大影響。2) 顯示模塊顯示模塊內(nèi)部電路圖如下:圖17 顯示模塊內(nèi)部電路在顯示模塊內(nèi)部,testfrequency模塊為測頻電路的封裝,lpm_mux4為一28選4器件。m6模塊為用觸發(fā)器組成的模7計數(shù)器,配合74138構(gòu)成掃頻電路。seg為用VHDL語言編寫的譯碼顯示模塊。現(xiàn)將各模塊內(nèi)部電路顯示如下:圖18 模7計數(shù)模塊內(nèi)部電路Seg模塊采用語言編寫,設(shè)計為16進制顯示,單管顯示為0F:library ieee;use ieee.std_logic_1164.all;

22、entity seg isport(bcd_led: in std_logic_vector(3 downto 0);ledseg: out std_logic_vector(6 downto 0);end seg;architecture beh of seg isbegin with bcd_led selectledseg=1000000 when 0000,-0 1111001 when 0001,-1 0100100 when 0010,-2 0110000 when 0011,-3 0011001 when 0100,-4 0010010 when 0101,-5 0000010

23、when 0110,-6 1011000 when 0111,-7 0000000 when 1000,-8 0010000 when 1001,-9 0001000 when 1010,-10 0000011 when 1011,-11 1000110 when 1100,-12 0100001 when 1101,-13 0000110 when 1110,-14 0001110 when 1111,-15 1111111 when others;end beh;(7) 脈沖發(fā)生電路此電路實際上是分頻電路,把系統(tǒng)提供的48MHz頻率的時鐘信號分頻得到實驗中用到的各種頻率的時鐘信號。電路如下

24、: 圖19 脈沖發(fā)生電路圖中三個模塊為語言模塊,內(nèi)部實現(xiàn)方式一致,僅參數(shù)有所變動?,F(xiàn)將48M分頻即kcoun1模塊內(nèi)部展開:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY kcoun1 ISPORT(A :IN std_logic; B :buffer std_logic);END kcoun1;ARCHITECTURE kcoun1_arc OF kcoun1 ISSIGNAL counter :std_logic;BEGINPROCESS(A)VARIABLE counter1:

25、integer RANGE 0 TO 48000000;CONSTANT md :integer := 24000000;BEGINIF(Aevent AND A=1)THENIF (counter1 = md) THENcounter1 :=0;counter = NOT counter;B 1時,波形將產(chǎn)生過調(diào)制。其中一種過調(diào)制波形截圖如下:圖20 過調(diào)制波形(注:此時需要修改音頻和載波模塊內(nèi)部累加器的參數(shù)。)另外,通過多次硬件仿真可以發(fā)現(xiàn),仿真結(jié)果會出現(xiàn)相移和噪聲,現(xiàn)截圖如下。如何減小這一影響也是研究的方向。5、 設(shè)計過程中出現(xiàn)的問題及解決方法由于在做DDS實驗之前,已經(jīng)有做過EDA實驗,所以基本的操作問題都已經(jīng)不再出現(xiàn),主要的問題是在于原理圖的設(shè)計細節(jié)。1. ROM中參數(shù)錯誤在完成ROM參數(shù)設(shè)定,將ROM與累加器連好先后進行電路編譯時卻報了錯,最后發(fā)現(xiàn)是ROM中參數(shù)設(shè)定出現(xiàn)了錯誤,本應(yīng)該是0-1023,但在excel中利用公式計算而使得1024出現(xiàn)了,從而會報錯。最后將512該成511.5即可,重新編譯即可通過。2. 提高精度后,波形錯誤在進行sin信號精度提高的時候,開始在sin_rom中存放的是sin信號前半部分的數(shù)據(jù),用result11作為切換正反相脈沖,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論