一種基于FPGA的正弦波信號發(fā)生器的設(shè)計(jì)
1.5 低通濾波電路
低通濾波器用于濾除階梯信號中的諧波分量。本文采用2階低通濾波電路,階梯信號通過低通濾波,使得輸出信號頻譜純度較好,失真較小。本文引用地址:http://www.ex-cimer.com/article/191487.htm
2 系統(tǒng)關(guān)鍵技術(shù)
DDS(Direct Digital Synthesis)是一種應(yīng)用直接數(shù)字合成技術(shù)來產(chǎn)生信號波形的方法。DDS技術(shù)建立在采樣定理的基礎(chǔ)上,它首先對需要的信號波形進(jìn)行采樣、量化,然后存入存儲器作為待產(chǎn)生信號的數(shù)據(jù)查詢表。在輸出信號波形時(shí),從數(shù)據(jù)表依次讀出數(shù)據(jù),產(chǎn)生數(shù)字信號。
輸入時(shí)鐘頻率和輸出波形信號的頻率關(guān)系如圖4所示。在圖4中To表示輸出波形的周期,Tc為采樣周期,2N為ROM查詢表尋址范圍,K為頻率控制字。由圖可知To=Tc*2N/K,轉(zhuǎn)換為頻率可表示為fo=fc*K/2N,fc為時(shí)鐘信號clk的頻率。
在本設(shè)計(jì)中N=8,因此信號的輸出頻率fo=fc*K/256。
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)主要是在FPGA中通過Verilog硬件語言進(jìn)行相位累加器和ROM查詢表的編程實(shí)現(xiàn),這兩部分采用Quartus軟件和Matlab軟件并行開發(fā)。
3.1 相位累加器的實(shí)現(xiàn)
相位累加器主要用于產(chǎn)生ROM查詢表所需的地址信息。圖5為在Quartus軟件中編程生成的相位累加器符號,相位累加器的輸入信號包括時(shí)鐘信號clk、復(fù)位信號clr和頻率控制字K。輸出信號addr[7…0]為ROM查詢表的輸入地址信號。
相位累加器類似一個(gè)計(jì)數(shù)器。首先,軟件設(shè)置相位累加器的基數(shù)為0,并通過時(shí)鐘信號clk上升沿觸發(fā),基數(shù)與頻率控制字K相加,相加后的值反饋到相位累加器的輸入端作為下一次的基數(shù)。當(dāng)相位累加器的溢出時(shí),—個(gè)完整的階梯正弦信號就從ROM查詢表的輸出端輸出。因此,相位累加器的溢出率就是正弦波信號的輸出頻率。相位累加器的仿真波形如圖6所示。
評論