接上文  基於Quartus II和MATLAB的FIR濾波器設計與仿真(一):

3  QuartusII 調用 IP 核生成 FIR 濾波器模塊

在 Quartus II 中, Altera 提供了一系列可供用戶免費使用的 IP 核, FIR濾波器就包含其中,所以只需要在 Quartus II 中調用 FIR 濾波器 IP 核,導入在 2.1 生成的濾波器系數並設置端口性質即可生成 FIR 濾波器模塊。調用 FIR濾波器 IP 核的設置過程如下圖所示:

點擊 step1

接着點擊step2,勾選所有選項即可,也可不勾選。最后點擊step3 generate 生成模塊。

注意:1.在導入濾波器系數時,要檢查系數文件.txt文件的格式,Quartus II 9.0只支持一行只有一個數據,並且最后沒有分號;2.如果點擊step3  generate后進度條卡住不動可以嘗試打開任務管理器找到“quartus_map”或者類似的任務項然后結束任務即可。

由於在 2.1 中對濾波器系數和輸入信號的值進行了 12 位量化處理,所以把濾波器的系數和輸入數據位寬設置為 12,如圖設置完參數后即可生成濾波器模塊,生成的濾波器模塊如下圖所示:

其中 ast_sink_data[11..0]和 ast_source_data[21..0]分別表示數據輸入端口與數據輸出端口, clk 為輸入時鍾信號端口。    4 Quartus II 仿真 FIR 濾波器

4.1 生成一個 ROM 模塊存儲輸入數據

本文需要在 Quartus II 中導入 2.2 在 MATLAB 中生成的濾波器輸入信號作為仿真的數據輸入,所以需要調用 IP 核生成一個 ROM 模塊存儲導入的輸入數據,再連接 ROM 模塊和 FIR 濾波器模塊進行仿真。在調用 ROM 模塊之前首先需要導入輸入數據保存為.mif 文件,之后再在調用 IP 核時加載.mif 文件把輸入數據存入 ROM 中,相當於調用ROM生成一個正弦信號發生器,生成過程如下圖所示:

首先新建一個文件保存為.mif 文件:

圖中 address[6..0]為地址輸入端口, clock 為時鍾輸入端口, q[11..0]為數據輸出端口,輸出存在 ROM 中的數據 。

4.2 Quartus II 仿真與 MATLAB 繪圖

Quartus II 中可以通過建立一個.vwf 文件作為輸入激勵做時序仿真。本文也以這種形式利用 Quartus II 仿真。首先我們連接以上建立的兩個模塊,連接成為一個完整的濾波器。 系統連接圖如下所示:

圖 12 中端口 q[11,,0]作用在於測試 ROM 輸出的數據是否與導入的輸入數據一致。 Quartus II 中仿真的波形如下圖所示:

經過核對, q[11..0]輸出的數據與 MATLAB 中產生的輸入數據是一致的,證明ROM 模塊是無誤的。從圖 13 中我們也可以看出, 該 FIR 濾波器也會有一段時間的延時,這與 MATLAB 中的仿真結果是一致的。由於 Quartus II 中只能顯示低電平和高電平,無法繪制正弦函數波形,所以本文選擇將波形文件中的輸出數據導出到 MATLAB 中繪圖觀察結果。在MATLAB 中繪制的圖如下所示:

由圖我們就可以看到橫坐標 0-29 對應的是 FIR 濾波器的延時,是正常的,而橫坐標 29-46 對應的波形是失真的波形,失真原因還有待深入研究, 橫坐標46 之后對應的波形則與 MATLAB 仿真波形一致,是正確的,並且在濾波之后的信號中還存在 1000Hz 附近頻率的噪聲。仿真結果表明,該設計整體式可行的,主要存在的問題就是正確輸出之前

的一段輸出失真原因有待深入研究,在取輸出信號時也要注意處理這段失真波形。

注意:1.由於數據量不大,我是直接將Quartus II中的輸出數據手動輸入到MATLAB中建立一個新的變量然后繪圖的,直接導入數據到MATLAB中網上也有教程,但由於采樣點數的不同可能導致繪制的圖和MATLAB中原來繪制的輸入波形不好對比頻率。

2.注意到在輸出波形的前面一段有明顯的失真,經過驗證是因為我輸入和輸出都設置為了無符號變量,而實際輸出是有正有負的,所以導致出現了太大的數,后面我也改設成有符號數驗證過是無誤的,因為當時沒有截圖保存所以沒有上傳圖片,大家可以自行嘗試。

quartus ii matlab,基於Quartus II和MATLAB的FIR濾波器設計與仿真(二)相关推荐

  1. matlab fir工具箱,用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法

    摘  要 介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法.FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗 ...

  2. matlab ellip,IIR濾波器設計(調用MATLAB IIR函數來實現) | 學步園

    % IIR濾波器設計 % 目的:設計一個採樣頻率為1000Hz.通帶截止頻率為50Hz.阻帶截止頻率為100Hz的低通濾波器,並要求通帶最大衰減為1dB,阻帶最小衰減為60dB. clc;clear; ...

  3. 直接反投影 matlab,濾波反投影重建算法(FBP)實現及應用(matlab)

    濾波反投影重建算法實現及應用(matlab) 1. 濾波反投影重建算法原理 濾波反投影重建算法常用在CT成像重建中,背后的數學原理是傅立葉變換:對投影的一維傅立葉變換等效於對原圖像進行二維的傅立葉變換 ...

  4. NIOS II 创建示例设计_Quartus II 9.0

    安装设计文件 在继续之前,您必须安装 Quartus II 软件和 Nios II 嵌入式设计套件. 分析系统要求 本部分介绍的教程示例设计的系统要求.设计的目标如下: 有关这些和其他组件,完整详细信 ...

  5. 基於IIS的WCF的分布式多層架構開發實現

    曾用.NET Remoting,基於IIS,為公司實現過分布式多層架構,客戶端采用Web Browser瀏覽,當時,公司領導告訴我可能會有多臺中間服務器用於系統,又不想每臺電腦的去安裝程序,所以,我最 ...

  6. python笑傲江湖统计字数_基於Python的tf-idf算法实现:以《笑傲江湖》为例

    连结Jasonnor/tf-idf-python​github.com 简介 tf-idf(term frequency-inverse document frequency)是一种用於信息检索与文字 ...

  7. php complex,PHP復雜的基於角色的訪問控制列表

    I have already made the database and the php code needed to implement this customized ACL system. No ...

  8. linux下复制catalog信息指令,基於Linux下catalog方式的 Oracle 備份策略(RMAN)

    --********************************** --基於Linux下 Oracle備份策略(RMAN) --********************************* ...

  9. MFSK调制与相干解调-MATLAB基带仿真

    MFSK调制与相干解调-MATLAB基带仿真 MFSK调制原理 发送信号形式:(等概) s 1 = ( E , 0 , - , 0 ) s_{1}=(\sqrt{\mathcal{E}}, 0, \l ...

最新文章

  1. 从0设计一个基于Redis的锁服务
  2. 解决XP系统下HTTP 错误 403.9 - 禁止访问:连接的用户过多的问题
  3. Android读取短信和联系人
  4. df -h 显示100%的解决办法
  5. 找最大重复次数的数和重复次数(C++ Pair)
  6. 【知了堂学习笔记】MySQL数据库常用的SQL语句整理
  7. 定位系统服务器,android系统定位服务器地址
  8. 图解TCPIP-ARP
  9. eclipse 安装python开发工具 PyDev
  10. word2007里插入分节符
  11. Android 动态壁纸
  12. pyspark系列6-Spark SQL编程实战
  13. 最全的CDR抠图教程
  14. java 输出大写字母与小写字母
  15. jike1901666
  16. TF-IDF算法java实现【转载】
  17. C#编程基础(初级)(五)——函数,结构函数,委托
  18. 什么是signal(SIGCHLD, SIG_IGN)函数
  19. 基于Seq2Seq的问答摘要与推理问题方案
  20. 推荐5个有趣又实用的机器学习项目,AI初学者也能玩起来!

热门文章

  1. Java高级编程知识—8.2、Map接口
  2. Mac如何修改host文件
  3. Web3音乐应用Melody,开启唱歌打金模式
  4. [原创]双硬盘四系统安装全功略
  5. Kubernetes实战实现 Guestbook 留言板-简易版详解
  6. 锐捷(十八)锐捷三层交换机实现不同vlan间的通信
  7. JAVA 中的文件IO使用outputstreamwriter writer 出现乱码的问题。
  8. 蓝桥杯算法训练 星际交流java
  9. 你面试过程中的内心独白(推荐传阅)
  10. 2022年Java面试题最新整理,附白话答案