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