<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于FPGA的FIR濾波器設計與仿真

          基于FPGA的FIR濾波器設計與仿真

          作者: 時間:2011-05-19 來源:網(wǎng)絡 收藏

          5 驗證
          為了驗證設計的正確性,必須對設計進行全面充分的功能和時序,功能仿真一般用Mentor公司的Modelsim來進行,時序仿真使用QuartusII軟件。Altera公司提供的QuartusII軟件除了具有強大的編譯綜合功能之外,還提供了一定的波形(時序)仿真功能。因其輸入和輸出都是以波形的形式給出的,雖然看起來如同邏輯分析儀的輸出形式,比較直觀,但是難以對隨機信號進行輸入;隨機信號的輸出也難以分析,這就給我們的驗證工作帶來了很大的障礙。下面我們利用MATLAB與QuartusII實現(xiàn)聯(lián)合仿真。
          5.1 產(chǎn)生向量仿真文件
          在MATLB中生成OuartusII仿真所需的輸入文件*.vec。QuartusII仿真文件有兩種格式,即*.vwf格式和*.vec格式。前者是在Quart-usII中通過波形編輯器生成的。當方針輸入數(shù)據(jù)復雜時,用波形輸入的方法難以勝任,特別是在數(shù)字信號處理領域,大多數(shù)仿真輸入數(shù)據(jù)要疊加噪聲,采用波形輸入方式是不現(xiàn)實的。后者是按一定格式要求的文本文件輸入方式,可以利用任何文本編輯器產(chǎn)生,只要符合對仿真文件的格式要求即可。
          這里的仿真輸入數(shù)據(jù)是在兩個不同頻率上的正弦波,頻率分別為23Hz、58Hz。把這兩個信號疊加在一起作為輸入信號,用MATLAB軟件生成仿真所需的vec文件。濾波器的截止頻率為40Hz。
          在對仿真參數(shù)進行設置時,將仿真向量文件指向由MATLAB生成的文件,即可將MATLAB中生成的仿真信號導入之中進行仿真了。
          5.2 驗證輸出結果
          用QuartusII軟件中的選項將仿真向量文件指向由MTLAB生成的*.vec文件,進行仿真。
          將仿真結束后生成的波形文件,另存為*.tbl格式文件,以數(shù)據(jù)文件輸入的方式將此*.tbl文件中的仿真輸出信號的數(shù)值導入至MATLAB中,并進行頻譜分析驗證數(shù)字的正確與否,并分析其性能優(yōu)劣。

          本文引用地址:http://www.ex-cimer.com/article/187517.htm

          e.JPG


          圖1是輸入信號的時域和頻域圖形,以及經(jīng)過理想的低通濾波后得到的結果。低通濾波用MATLAB實現(xiàn)??梢钥闯鼋?jīng)過濾波后,23Hz的頻率成分被保留下來,而58Hz的頻率成分被濾掉。圖2是同一輸入信號的時域和頻域圖形,以及經(jīng)過實現(xiàn)的數(shù)字濾波器低通濾波后的結果。

          6 結束語
          從這兩幅圖中,我們可以看到用實現(xiàn)的FIR濾波器,得到了和理論上濾波相似的結果,證明了設計的可行性及正確性。如果需要不同的濾波器,我們只要改變輸入到ROM中的初始化文件數(shù)據(jù)即可。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();