怎么将matlab滤波器系数导出_matlab与FPGA数字信号处理系列(1)——通过matlab工具箱设计FIR数字滤波器...

edf166dff29f058d4dd647c599e266f9.png

以99阶FIR低通滤波器为例,学习使用matlabfdatool工具箱设计滤波器,并将滤波器系数导出到.coe文件,联合Vivado进行FPGAFIR滤波器设计。

本文滤波器参数为:低通FIR滤波器窗函数设计,采用布莱克曼窗99阶抽样频率32MHz通带频率1.5MHz使用窗函数时截止频率不需要设定,根据选定的窗函数和阶数决定截止频率

1. 打开matlab

a59eff81164e02b26896fa1657638f51.png

2.命令行输入fdatool,回车,打开fdatool滤波器设计工具箱

打开后的初始界面如下:
1处选定滤波器类型(低通、高通、带通、带阻);
2处选择要设计IIR(无限冲激响应)滤波器还是FIR(有限冲击响应)滤波器,并且选择使用哪种方法设计对应的滤波器
3处设计滤波器的阶数,一般阶数越多滤波效果越好,但是系数对应的也越多,在FPGA硬件实现的时候会占用更多的资源,设计时要综合考虑;

5ff843c7b1c23af80bcf929d160a57a4.png

3.设计所需滤波器

低通(Lowpass)FIR滤波器,窗函数设计(Window),采用布莱克曼窗(Blackman),99阶(会有100个系数,这个是固定的,N阶FIR需要N+1个系数),抽样频率32MHz通带频率1.5MHz,使用窗函数时截止频率不需要设定,选定的窗函数和阶数已经限定了截止频率。

按照上图设定参数后,点击Design Filter。

c1045a254ac390a7e50be5f86a2aa2db.png


设计完成后,黄色框内显示幅频响应曲线,可以看到,使用Fs=32MHz的抽样频率,显示的频率为0~Fs/2即0-16MHz的幅频响应,大概在2MHz左右幅度下降为原来的-60dB以下,换算成幅度即1/1000以下(-60dB=20log(1/1000))。

4.参数量化

使用16位的滤波器参数,定点数表示。
点击左侧第三个框,进行参数量化,在FPGA中计算浮点数是很麻烦的事情,并且浮点数的操作在射频输出时会影响功放性能,此处设置为定点数(一般都是设为定点数处理,设成浮点数可以试一下,是无法导出为Xilinx设计所需的.coe文件)。这里进行量化时就会引入量化误差,位数越少误差越大,但是位数越多在FPGA硬件中所需的资源也越多,设计中也是需要综合考虑,此处选择16位定点数量化(Fixed-point)。

5.导出参数

(1)导出参数到matlab

回到设计界面(不回去也不影响导出参数,此处为了更方便观看滤波器的参数),再点击 Export,即可导出参数到 matlab,导出一个名为 Num 的数组,名字可以自己修改,在命令行输入 Num 再回车即可观察系数。

(2)导出参数到Xilinx的存储文件(.coe文件)

点击 Targets -> XILINX Coeffient(.coe) File,

导出的参数共有 100 个,可以发现这样设计出来的时对称结构的FIR滤波器,第一个参数和第 100 个参数一样,第 2 个和第 99 个一样,依次对应。

7f1e9e987b88733124c2162cd24f80f8.png

作者:FPGA探索者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UGUI 合批原理

转自: UGUI合批原理笔记 - 赵青青 - 博客园 UGUI合批规则图解_时光不染-CSDN博客_ugui合批规则 合批的过程# 网格更新机制# Cavans.SendWillRenderCanvas m_LayoutRebuildQueuem_GraphicRebuildQueueCanvas.BuildBatch 更新所有DrawCall WaitingForJob 子线程网格…

vb.net 设置打印纸张与页边距_装订文档时不想让文字被挡住?在Excel中你可以这样设置打印!...

平时我们在打印文档的时候,通常会把文档左侧的页边距设置的大一点,这样在装订的时候显得美观一点。但如果我们进行双面打印时,文档左右两边的页边距刚好相反,装订时第2页的文本很容易被挡住,这样子反而更难装订了。那么…

CPU Cache原理与示例

转自这篇 CPU Cache,估计也没人看 基础知识 首先,我们都知道现在的 CPU 多核技术,都会有几级缓存,老的 CPU 会有两级内存(L1 和 L2),新的CPU会有三级内存(L1,L2&#x…

python集合的基本操作不包括_Python基础知识储备,List集合基本操作大盘点

List列表是Python中最基本的数据结构,也是Python中使用频率最高的数据类型,List列表中的元素不需要具有相同类型,使用起来非常方便。现在就来体验一下List列表的基本操作。 list集合基本操作 List的基本操作(,copy&…

mysql blob hex_数据库的完整备份与恢复 quot;--hex-blobquot; - - ITeye博客

闲言少絮,这个程序利用MySql数据库自带小程序进行数据库的备份和还原。这两个程序分别是:mysql.exe和mysqldump.exe。这两个程序在您安装Mysql数据库的时候会自动安装到数据库的bin目录。这两个程序存在的目录为:C:\Program File\MySQL\MySQL…

android中怎么保存checkbox中的checked属性_Vue 精粹:v-model指令在组件中怎么玩

最近在写组件的时候,遇到了 v-model 的使用问题,在 Vue 官方文档中,有两小端内容是关于 v-model 指令在组件中的使用,查阅文档后,依然不得要领,最后几番折腾,理论结合实践,终于领悟其精髓&#…

linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书

购买SSL证书要想使用https访问你的网址,首先得拥有颁发的SSL证书。我使用的是免费版,有效期为一年,过期后再重新申请。申请SSL证书购买后,可在搜索框输入证书关键字进入到控制台。点击证书申请,按照提示填写完相关信息…

mysql rank函数_Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别。我们新建一张Order表并添加一些初始数据方便我们查看效果。表结构和初始数据Sql附上表结构和初始数据图:一、ROW_NUMBERrow_number的用途的非常广泛,排序最好用他…

git2.29.2.2怎么安装_MySQL5.5怎么安装

安装MySQL5.5的步骤:1、 官网下载mysql5.5下载地址:http://dev.mysql.com/downloads/mysql/5.5.html#downloads2、 安装mysql5.5注意,安装之前,请关闭杀毒软件。1)、 打开下载的mysql-5.5.53-winx64.msi2) 、点击下一步3)、 选中复…

未声明spire。它可能因保护级别而不可访问_信息系统安全:访问控制技术概述...

1.访问控制基本概念身份认证技术解决了识别“用户是谁”的问题,那么认证通过的用户是不是可以无条件地使用所有资源呢?答案是否定的。访问控制(Access Control)技术就是用来管理用户对系统资源的访问。访问控制是国际标准ISO7498-2中的五项安全服务之一&…

c++反汇编与逆向分析技术揭秘_C++反汇编与逆向分析技术揭秘

一、单类继承在父类中声明为私有的成员,子类对象无法直接访问,但是在子类对象的内存结构中,父类私有的成员数据依然存在。C语法规定的访问限制仅限于编译层面,在编译过程中进行语法检查,因此访问控制不会影响对象的内存…

std::atomic原子操作

第十一节std::atomic原子操作_HITXJ的博客-CSDN博客_std::atomic用法

php与mysql列表_PHP+Mysql+jQuery实现的查询和列表框选择

本篇文章主要介绍PHPMysqljQuery实现的查询和列表框选择,感兴趣的朋友参考下,希望对大家有所帮助。本文讲解如何通过ajax查询mysql数据,并将返回的数据显示在待选列表中,再通过选择最终将选项加入到已选区,可以用在许多…

range函数python2和3区别_range函数python2和3区别

range函数是一个用来创建算数级数序列的通用函数,返回一个[start, start step, start 2 * step, ...]结构的整数序列;py2中的range()函数用法:(推荐学习:Python视频教程) range()返回的是一个列表>>&…

Unity SRP自定义渲染管线 -- 2.Custom Shaders

本章将接着上一篇文章,在初步实现一个渲染管线后来创建自定义的shader。上一篇文章的链接 https://blog.csdn.net/yinfourever/article/details/90516602。在本章中,将完成以下内容: 写一个HLSL Shader定义constant buffer(常量缓…

tcp 三次握手与四次挥手_TCP三次握手与四次挥手详解

TCP报文结构源端口和目的端口:各占2个字节,分别写入源端口号和目的端口号。序号:占4个字节。序号使用mod运算。TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。故该字段也叫做“报文段序号”。确认序…

网关和路由器的区别_5G工业路由器与5G DTU的区别介绍详解

5G工业路由器和5G DTU都是实现无线网络数据传输功能,而两者间的区别主要从使用方法、外观接口以及应用环境等方面区分,今天给大家介绍5G工业路由器和5G DTU的一些不同点。使用方法的不同:5G工业路由器:5G路由器可对以太网、现场总线通信协议进…

7628刷breed_自制各类路由原厂直刷Breed的文件,无需修改mac无需重刷无线

本帖最后由 showme99 于 2017-3-25 16:35 编辑在原厂页面直接选择相应的刷机文件刷机,文件很小256K,大约十秒左右就自动进入Breed后直接刷入dd-wrt,opentwrt,gargoyle等固件即可。无需在Breed里设置MAC地址,也无需刷入ART无线文件&#xff0c…

c语言获取系统剩余内存_C语言编程中的“堆”和“栈”七大不同之处

更多精彩,请点击上方蓝字关注我们!对于编程初学者来说会接触到一些难以理解的名称,比如堆(heap)、栈(stack)、堆栈(stack)等。初学开发过程中往往让人混淆不清。今天我们来谈谈堆和栈的具体区别,来帮助初学者理清思路。堆和栈的区…

sql between包括两端吗_SQL大全

作者:静默虚空排版:MarkerHub原文:https://juejin.im/post/5c7e524af265da2d914db18f本文针对关系型数据库的一般语法。限于篇幅,本文侧重说明用法,不会展开讲解特性、原理。一、基本概念数据库术语数据库(database) -…