基于Matlab/DSP Builder任意波形信號發(fā)生器的兩種設(shè)計
0 引言
在當(dāng)今的科技信息社會中,尤其是在電子設(shè)計和信號測試系統(tǒng)中,通常需要一些復(fù)雜、特定頻率的信號,通常的信號發(fā)生器難以滿足要求,市場上出售的一些任意信號發(fā)生器的價格昂貴,體積較大,不能滿足實際的需要。
Altera DSP Builder是一款系統(tǒng)級的設(shè)計工具,依賴于Mathworks公司的數(shù)學(xué)分析工具Matlab/Simulink,可以在Sireulink中進(jìn)行圖形化設(shè)計和仿真,同時又可以通過signalCompiler把Matlab/Simulink的模型文件(.mdl)轉(zhuǎn)換成相應(yīng)的硬件描述語言VHDL,本文用兩種方法,即傳統(tǒng)型的任意信號發(fā)生器和基于直接數(shù)字頻率合成(DDS)的任意信號發(fā)生器,在DSPBuilder的開發(fā)工具下實現(xiàn)任意信號發(fā)生器的設(shè)計,不涉及到編程,操作簡單。
1 傳統(tǒng)型任意信號發(fā)生器的設(shè)計
1.1 設(shè)計原理
傳統(tǒng)型任意信號發(fā)生器原理比較簡單,將時鐘源作為地址發(fā)生器(計數(shù)器)的輸入時鐘,通過改變時鐘源的頻率,可以實現(xiàn)調(diào)整地址發(fā)生器(計數(shù)器)產(chǎn)生地址的變化速率,從而達(dá)到改變輸出波形與輸出頻率的目的。當(dāng)?shù)刂钒l(fā)生器輸出值等于待生成波形數(shù)據(jù)存儲器中波形數(shù)據(jù)的地址時,待生成波形數(shù)據(jù)存儲器將輸出此數(shù)據(jù)到高速D/A轉(zhuǎn)換,將其變?yōu)槟M信號,經(jīng)低通濾波器后輸出所需波形。D/A的輸出頻率fuot與待生成波形數(shù)據(jù)存儲器的波形數(shù)據(jù)點數(shù)N以及時鐘源的頻率fclk關(guān)系為:
由式(1)可知,只要改變數(shù)據(jù)波形點數(shù)N就能控制輸出信號的頻率。
1.2 系統(tǒng)設(shè)計
根據(jù)圖1所示的原理框圖,在Matlab/DSP Builder平臺上,建立傳統(tǒng)型任意信號發(fā)生器的Simulink模型,如圖2所示。
在圖2中,Increment Decrement模塊起到一個地址發(fā)生器的作用,隨著時鐘的輸入不斷累加輸出,ROM模塊存放待生成信號的波形數(shù)據(jù),輸入模塊input通過produt模塊控制信號的輸出。
利用Matlab強大的仿真功能,方便、快捷地生成給定頻率、周期、脈寬的任意波形數(shù)據(jù),但生成的數(shù)據(jù)通常是浮點型的,要將其轉(zhuǎn)換為十六進(jìn)制的Hexadecimal(Itel-Form)File(.hex)格式的文件,然后將*.hex文件添加到ROM存儲器中,設(shè)置系統(tǒng)模型的參數(shù),就可以得到任意信號波形。
2 基于DDS的任意信號發(fā)生器的設(shè)計
2.1 設(shè)計原理
基于DDS的任意信號發(fā)生器結(jié)構(gòu)框圖如圖3所示。由圖3可以看出,相位累加器在系統(tǒng)時鐘的控制下以頻率控制字長的步長進(jìn)行累加,輸出的線性相位序列和相位控制字相加后對待生成波形數(shù)據(jù)ROM查表尋址,待生成波形數(shù)據(jù)ROM查找表輸出相應(yīng)波形的離散序列,再由DAC將其轉(zhuǎn)換為模擬量,把存入的數(shù)據(jù)重新整合起來。此過程實際完成了相位到幅度的轉(zhuǎn)換。
設(shè)系統(tǒng)時鐘為fclk,頻率輸入字為Freword,相位輸入字為Phaseword,N是相位累加器的數(shù)據(jù)位寬(頻率輸入字的數(shù)據(jù)位寬),相位調(diào)制器的位寬為M,則DDS的輸出信號頻率為:
輸出信號的相移為:
由式(2)和式(3)可知,改變頻率輸入字和相位輸入字就可以分別控制輸出信號的頻率和相位。
評論