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

article/2025/11/8 12:13:32

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

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

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

40782d11d3be8f7ea566a915ea5274e4.png

587cb4e3413e8712e4253af081eb90bd.png

點擊 step1

c0818d1668db41145dc969c6edcde521.png

40ce268ccde5e97fbc3b40d98a943f6b.png

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

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

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

fe06267380fa2409e1c48fdffc2b1d3a.png

其中 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 文件:

efe6e188595c75e8dec9943cf7527ac2.png

98d554c0812680ce590cb4c251dd7c15.png

42f3c9ec9d21ff4bd92a092defeb9b71.png

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

4.2 Quartus II 仿真與 MATLAB 繪圖

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

413bbf984a56ddfa9ec36216877970f6.png

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

3c20fb720144635563fe22b3d04e38d7.png

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

f9e061b92b291ef7e6a916cdbc1c4f36.png

ae6196aea63b91bf86bb947e95c8d76e.png

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

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

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

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


http://chatgpt.dhexx.cn/article/ujuVxPpw.shtml

相关文章

安装Quartus II教程

下载Quartus安装包,给大家一个11.3版本的安装包 链接:https://pan.baidu.com/s/1eXtjL2JZVGV1RBC0VozqVQ?pwdhmnv 提取码:hmnv 1.打开安装程序,点击next 2.点击接受,下一步 3.选择安装路径,这里最好选择…

Quartus II 仿真

Quartus II 使用university program VWF仿真 1.File->new->university program VWF->OK打开仿真页面 2.edit->insert->insert node or bus或者直接双击左边空白地方弹出insert node or bus对话框。 3.node finder->list-> >> ->OK->OK 4.设…

QuartusII9.0--项目文件的新建

第一步:打开QuartusII软件,界面如下: 第二步:选择File->New Project Wizard菜单项,则弹出New Project Wizard:Indroduction对话框,如下图所示: 单击Next按钮,则进入项目工程的目…

Quartus II报错

使用如下电路语句创建异步时序实现D触发器时 一直报错 Error (10200): Verilog HDL Conditional Statement error at flip_flop.v(9): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct 在网上…

【QuartusII】0-创建工程模板

一、创建工程 1、激活安装quartus II软件后,打开即见如下界面 2、在菜单栏 “File -> New Project Wizard…”中,进入创建工程流程 3、第一部分,如下图,配置路径、项目名称、以及顶层文件(类似C语言的main&#xf…

quartus II 18.1 Qsys简单操作步骤

1.建立工程 2.选择芯片时,在界面device and pin options中的unused pins选择as input tri-stated ; 3.创建NiOS II软核处理系统 ,18.1在tools->platform designer 4.出现该界面,选择file->save->nios2_small 保存成功后找到下面nio…

Quartus II18.0安装教程

试装系统:win10 64bit 安装包路径和安装路径最好都不要出现中文,一般选择默认安装在C盘。 1. 解压安装包。 2. 在安装软件前,请确认你需要安装的器件,根据安装包中器件库下载地址.txt中的地址进行器件库下载,器件库下载…

Quartus ii 软件的使用

一、开发工程 1.新建工程 选择一个路径作为工程存放位置,然后在工程文件夹创建4个子文件夹,分别命名为: doc、par、rtl和sim。 doc文件夹用于存放项目相关的文档, par文件夹用于存放Quartus软件的工程文件,rtl文件夹…

一、Quartus II软件的使用

使用流程图总结图: 一、打开软件 二、新建工程 1、创建目录 2、创建工程 选择【 File】→【 New Project Wizard…】来新建一个工程 三、设计输入 【 File】→【 New】 输入代码: module flow_led(input sys_clk , // 系统时钟input sys_rs…

Quartus II12.0安装教程

安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 1.鼠标右击【Quartus II 12.0】压缩包选择【解压到Quartus II 12.0】。 2.双击打开解压后的【Quartus II 12.0】文件夹。 3.双击打开【Quartus】文件夹。 4.鼠标右击【1…

Quartus II 使用详解

今天早上做了《计算机组成原理》课的第一次实验。 在这介绍一下QuartusⅡ如何使用,希望能帮到有需要的人。 1、新建工程项目。 2、填写项目存储路径和工程名,不要出现中文路径。 3、添加已存在文件(可选),在【File na…

Quartus II 13.1的安装及使用

Quartus II的安装及使用 前言一、Quartus II的下载二、Quartus II的安装三、Quartus II的注册四、Quartus II的使用(一)相关驱动的配置(二)使用流程的认识(三)使用过程1.新建工程2.设计输入3.配置工程4.分析…

Quartus II11.0安装教程

安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 1.鼠标右击【Quartus II 11.0】压缩包选择【解压到Quartus II 11.0】。 2.双击打开解压后的【Quartus II 11.0】文件夹。 3.双击打开【Quartus】文件夹。 4.鼠标右击【1…

Quartus II 安装

本次介绍使用的 Quartus 版本为 10.1。 目前 Quartus II 官网已经没有 13.1 以下版本的安装包,大家可以安装 13.1 以上版本的软件。功能都是大同小异,下载地址:FPGA Software Download Center 下载 13.1 以上的 quartus II 时,官…

Quartus II的基本使用及仿真

1.概述 本文描述的是如何利用QuartusII建立工程并进行基本的仿真操作。 2.建立工程及添加Vreilog文件 2.1 建立工程 1.打开Quartus II,File>>New proje Wizard… 2. 设置工程路径和工程名。 3.是否要添加verilog文件?否的话直接点击next。 4.选…

Quartus-II入门(全加器)

文章目录 前言一、相关概念1.半加器2.全加器 二、原理图输入实现全加器1.半加器实现2.半加器仿真3.全加器实现4.硬件下载 三、总结参考链接 前言 在做这里的学习之前,需要先把Modelsim SE 安装好,Quartus-II及其固件库等,这个实验本身并不复杂…

Quartus-II入门

目录 一、新建工程二、实验设计(一)设计D触发器(二)调用D触发器电路 参考文献 ①在 Quartus-II 中自己用门电路设计一个D触发器,并进行仿真,时序波形验证 ②在 Quartus-II 中直接调用一个D触发器电路&#…

Verilog学习之路(1)— Quartus II 13.0下载安装和HelloWorld

Verilog学习之路(1)— Quartus II 13.0下载安装和HelloWorld 一、前言 Quartus II是Altera的FPGA设计工具, 二、安装包下载 百度云链接地址:https://pan.baidu.com/s/1VtDVKaiUDgbZI1vICS9jlw 提取码:ac9r 其他相…

嵌入式语音识别系统是什么

随着人工智能行业的兴起,对人工智能技术的研发,我们周身慢慢涌现了人工智能的身影,它可以化身为你的爱车,在沙漠、森林或小巷中风驰电掣;它可以是智慧公正的交警,控制红绿灯、缓解交通的拥挤;它…

基于STM32的嵌入式语音识别模块设计实现

介绍了一种以ARM为核心的嵌入式语音识别模块的设计与实现。模块的核心处理单元选用ST公司的基于ARM Cortex-M3内核的32位处理器STM32F103C8T6。本模块以对话管理单元为中心,通过以LD3320芯片为核心的硬件单元实现语音识别功能,采用嵌入式操作系统μC/OS-…