基于FPGA的FIR濾波器設(shè)計與仿真
5 仿真驗證
為了驗證設(shè)計的正確性,必須對設(shè)計進(jìn)行全面充分的功能仿真和時序仿真,功能仿真一般用Mentor公司的Modelsim來進(jìn)行,時序仿真使用QuartusII軟件。Altera公司提供的QuartusII軟件除了具有強大的編譯綜合功能之外,還提供了一定的波形(時序)仿真功能。因其輸入和輸出都是以波形的形式給出的,雖然看起來如同邏輯分析儀的輸出形式,比較直觀,但是難以對隨機信號進(jìn)行輸入;隨機信號的輸出也難以分析,這就給我們的驗證工作帶來了很大的障礙。下面我們利用MATLAB與QuartusII實現(xiàn)聯(lián)合仿真。
5.1 產(chǎn)生向量仿真文件
在MATLB中生成OuartusII仿真所需的輸入文件*.vec。QuartusII仿真文件有兩種格式,即*.vwf格式和*.vec格式。前者是在Quart-usII中通過波形編輯器生成的。當(dāng)方針輸入數(shù)據(jù)復(fù)雜時,用波形輸入的方法難以勝任,特別是在數(shù)字信號處理領(lǐng)域,大多數(shù)仿真輸入數(shù)據(jù)要疊加噪聲,采用波形輸入方式是不現(xiàn)實的。后者是按一定格式要求的文本文件輸入方式,可以利用任何文本編輯器產(chǎn)生,只要符合對仿真文件的格式要求即可。
這里的仿真輸入數(shù)據(jù)是在兩個不同頻率上的正弦波,頻率分別為23Hz、58Hz。把這兩個信號疊加在一起作為輸入信號,用MATLAB軟件生成仿真所需的vec文件。FIR濾波器的截止頻率為40Hz。
在對仿真參數(shù)進(jìn)行設(shè)置時,將仿真向量文件指向由MATLAB生成的文件,即可將MATLAB中生成的仿真信號導(dǎo)入之中進(jìn)行仿真了。
5.2 驗證輸出結(jié)果
用QuartusII軟件中的選項將仿真向量文件指向由MTLAB生成的*.vec文件,進(jìn)行仿真。
將仿真結(jié)束后生成的波形文件,另存為*.tbl格式文件,以數(shù)據(jù)文件輸入的方式將此*.tbl文件中的仿真輸出信號的數(shù)值導(dǎo)入至MATLAB中,并進(jìn)行頻譜分析驗證FIR數(shù)字濾波器設(shè)計的正確與否,并分析其性能優(yōu)劣。本文引用地址:http://m.butianyuan.cn/article/187517.htm
圖1是輸入信號的時域和頻域圖形,以及經(jīng)過理想的低通濾波后得到的結(jié)果。低通濾波用MATLAB實現(xiàn)??梢钥闯鼋?jīng)過濾波后,23Hz的頻率成分被保留下來,而58Hz的頻率成分被濾掉。圖2是同一輸入信號的時域和頻域圖形,以及經(jīng)過FPGA實現(xiàn)的FIR數(shù)字濾波器低通濾波后的結(jié)果。
6 結(jié)束語
從這兩幅圖中,我們可以看到用FPGA實現(xiàn)的FIR濾波器,得到了和理論上濾波相似的結(jié)果,證明了設(shè)計的可行性及正確性。如果需要不同的濾波器,我們只要改變輸入到ROM中的初始化文件數(shù)據(jù)即可。
評論