基于DDS的函數(shù)信號(hào)發(fā)生器(2011-05-07 14:06:12)
研究了幾天基于DDS技術(shù)的函數(shù)信號(hào)發(fā)生器,,斷斷續(xù)續(xù)獲得了一些收獲,。 DDS-- Direct Digital Frequency Synthesis(直接數(shù)字頻率合成技術(shù)) 至于利用DDS制作函數(shù)信號(hào)發(fā)生器的優(yōu)點(diǎn)我就不說(shuō)了,百度一下,,一切皆了然,。這里介紹一下利用Verilog語(yǔ)言編寫DDS的思想,。當(dāng)然網(wǎng)上也有很多參考資料,都介紹得不錯(cuò),,也有用單片機(jī)做的,,不過(guò)我覺(jué)得利用單片機(jī)來(lái)做對(duì)于低頻來(lái)說(shuō)完全沒(méi)問(wèn)題,但是對(duì)于高頻來(lái)說(shuō)就完全沒(méi)有效果了,。 首先介紹一下DDS的整體思想: 整個(gè)DDS的模擬框圖如下: 其核心就是頻率控制,,相位控制和相位累加。主要參數(shù)有:頻率步進(jìn)精度,、相位步進(jìn)精度,、DAC的位數(shù)以及濾波器的設(shè)計(jì)。那么怎么去確定這些參數(shù)呢,,我個(gè)人理解如下: 1.頻率步進(jìn)精度就決定了程序中相位累加器的位數(shù)(一般介紹都是取24-32位,,但是具體怎么取沒(méi)有明確給出),同時(shí)也要取決于FPGA的時(shí)鐘(這里以50MHz為例) 也就是說(shuō)采用30位的相位累加器可以達(dá)到0.046Hz,。根據(jù)不同的位數(shù)和系統(tǒng)的時(shí)鐘就可以確定頻率的精度了,。 2.相位步進(jìn):相位步進(jìn)主要是調(diào)解輸出波形的相位。這里就還涉及到采樣深度(也就是對(duì)正弦波的采樣點(diǎn)數(shù),,這里以4096為例) 根據(jù)不同的相位精度,,求出X即得到相位控制字。如:相位步進(jìn)5度,,那么計(jì)算出來(lái)X=56.88888,。 3.DAC的選取:根據(jù)要求的輸出幅度的精度和輸出頻率。如:選擇8位的DAC,其電壓精度為,,而選擇電流型DA和選擇電壓型DA則得根據(jù)輸出頻率要求而定,。電流型DAC轉(zhuǎn)換速度不如電流型DAC。 4.濾波器的設(shè)計(jì):濾波器在整個(gè)設(shè)計(jì)過(guò)程中起到非常重要的作用,。前面DAC轉(zhuǎn)換后會(huì)攜帶很多噪聲和雜波,,通過(guò)頻率響應(yīng)較好的濾波器則可以充分的將雜波和噪聲濾除掉,從而得到較好的波形,。 5.涉及的主要計(jì)算公式: N為相位累加器的位數(shù),,F(xiàn)c為系統(tǒng)的時(shí)鐘頻率。 例:Fc=50MHz,,N=30,;Fout=1KHz,則相位累加器每次累加的數(shù)(頻率控制字)M=21474.83648(取21475) 注意:1.由取樣定理,,所產(chǎn)生的信號(hào)頻率不能超過(guò)時(shí)鐘頻率的一半,,在實(shí)際運(yùn)用中,為了保證信號(hào)的輸出質(zhì)量,,輸出頻率不要高于時(shí)鐘頻率的33%,以避免混疊或諧波落入有用輸出頻帶內(nèi),。 2.相位累加器輸出位并不全部加到查詢表,而要截?cái)?。相位截?cái)鄿p小了查詢表長(zhǎng)度,,但并不影響頻率分辨率,對(duì)最終輸出僅增加一個(gè)很小的相位噪聲,。DAC分辨率一般比查詢表長(zhǎng)度小2~4位,。 X為rom表的采樣點(diǎn)數(shù),p為相位,,a為相位控制字,。 即按照要求輸出的相位,計(jì)算出a的值,,將a累加給相位累加器,,即可輸出該相位上的的波形。 |
|
來(lái)自: 敗敗0619 > 《Analog&Digital》