數(shù)字控制振蕩器(NCO)的FPGA實(shí)現(xiàn)
相位累加器可完成相位累加,即每來1個(gè)時(shí)鐘就累加1次φ=φ+△φ,且采用流水線方式工作。本設(shè)計(jì)采用QUARTUS II中IP核自帶的一種32位累加器來實(shí)現(xiàn)相位的累加。
邏輯轉(zhuǎn)換完成后,可采用小表結(jié)構(gòu)功能塊把相位累加器產(chǎn)生的最高2位信號(hào)轉(zhuǎn)換為地址控制信號(hào)和象限轉(zhuǎn)換控制信號(hào)。其中地址控制信號(hào)是根據(jù)最高兩位信號(hào)來控制地址從0開始遞增方式產(chǎn)生還是從2L開始以遞減方式產(chǎn)生。
正弦表是每來一個(gè)時(shí)鐘輸出一個(gè)大于零的正弦值數(shù)據(jù),這些數(shù)據(jù)可作為象限變換器的輸入,由象限變換器完成數(shù)據(jù)的象限變換。其轉(zhuǎn)換原則是:象限控制信號(hào)根據(jù)正弦信號(hào)的對(duì)稱性把查表得到的數(shù)據(jù)轉(zhuǎn)換為正負(fù)數(shù)據(jù),并對(duì)于正弦信號(hào)的1、2象限數(shù)據(jù)進(jìn)行加零操作,而對(duì)3、4象限的數(shù)據(jù)進(jìn)行求補(bǔ)運(yùn)算。余弦數(shù)據(jù)也同樣,在1、4象限對(duì)數(shù)據(jù)進(jìn)行加零操作,2、3象限數(shù)據(jù)進(jìn)行求補(bǔ)運(yùn)算。
4 仿真結(jié)果
利用上述小表結(jié)構(gòu)實(shí)現(xiàn)的NCO可以輸出多種頻率信號(hào)并減少資源消耗,影響系統(tǒng)輸出頻率的因素主要是工作頻率和器件性能。
圖1所示是整個(gè)NCO在QUARTUS II中的仿真波形圖。本文引用地址:http://2s4d.com/article/191276.htm
在圖1所示的波形圖中,CLK是時(shí)鐘輸入頻率(為65.6 MHz),CLR為系統(tǒng)復(fù)位信號(hào),相位累加器的位數(shù)L為32位,輸出信號(hào)幅度位數(shù)為12位(包括符號(hào)位),相位寬度為12位,這樣,由式(5)便可得到頻率控制字FCW為269591793,圖1中的COS_OUT與SIN_OUT是系統(tǒng)輸出信號(hào),頻率為4.08 MHz。
由式(11)、(12)、(13)可得,此系統(tǒng)的信噪比和SFDR分別為74 dB和84 dB。
圖2所示是將波形文件中的正弦余弦數(shù)據(jù)讀入MATLAB中所顯示出來的波形。
5 結(jié)束語(yǔ)
本文通過分析數(shù)控振蕩器的實(shí)現(xiàn)原理和性能,給出了通過FPGA來實(shí)現(xiàn)NCO的具體方法,同時(shí)通過QUARTUSⅡ中的仿真驗(yàn)證了本設(shè)計(jì)的正確性。結(jié)果證明,用該方法設(shè)計(jì)的NCO可以輸出多種頻率的信號(hào),同時(shí)也可以減少資源消耗。
fpga相關(guān)文章:fpga是什么
低通濾波器相關(guān)文章:低通濾波器原理
評(píng)論