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