当前位置: 首页 > news >正文

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出

文章目录

  • Filter Designer的打开
  • 滤波器参数设置
  • 生成matlab代码
  • 生成XILINX Coefficient(.COE) File
  • 实际浮点数的导出
  • 官方使用教程


Filter Designer的打开

打开Filter Designer:

方法一:命令行中输入Filter Designer,再回车打开。

在这里插入图片描述

方法二:APP中调用Filter Designer打开。

在这里插入图片描述

滤波器参数设置

界面的多种滤波器设置选项:

在这里插入图片描述

根据设计需求设置滤波器参数:

在这里插入图片描述

具体界面介绍参看此文章:MATLAB滤波器设计fdatool(filterDesigner)工具箱使用

生成matlab代码

如需要生成MATLAB,配置后可以生成matlab函数在matlab中进行滤波处理。

具体方式为:可以使用File>Generate MATLAB Code生成 MATLAB 代码:有三种生成方式。

  1. 利用Filter Design Function (with System Objects)生成的matlab程序

    这种方式仅生成了系数,系数文件用保存的名字来表示,进行滤波时采用filter函数进行滤波。

  2. 利用Data Filtering Function (with System Objects)生成的matlab程序

    这种方式生成了一个函数,进行滤波时直接调用该函数进行滤波。

多种滤波器的配置界面说明以及生成代码的区别参看:https://blog.csdn.net/QUACK_G/article/details/124433102

在这里插入图片描述

生成XILINX Coefficient(.COE) File

在Targets -> XILINX Coefficient(.coe)File进行导出。.coe文件的格式如下:

在这里插入图片描述

Radix = RADIX;

Coefficient_Width = COEFFICIENT_WIDTH;

CoefData = VECTOR;

RADIX为数据进制类型,包括十进制、二进制、十六进制。

COEFFICIENT_WIDTH为数据对应的二进制位宽。

VECTOR为数据,数据以",“为间隔进行分开,最后以”; "结尾。

在这里插入图片描述

导出时提示错误:Your flter must be a fixed-point single-section, direct-form FIR flter to generate a XILINX cofficient (.COE) file.

在这里插入图片描述

解决办法:设置Filter arithmetic为Fixed-point(定点,由于有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算,所以在导出前要将滤波器的系数配置为定点数,利用设置量化参数(Set Quantization Parameters )将系数改为定点数即可。

在这里插入图片描述

关于FPGA定点数的介绍参考文章:FPGA浮点小数与定点小数的换算及应用

按照上图的系数是以定点十六进制表示的,每个数据长度为16位(由Numerator word length决定),其为实际浮点数据左移16位(由Numerator frac. length决定,需要注意的是在未勾选Best-precision fraction lengths时输出的coe文件仍然按照Numerator frac. length进行量化的,所以建议不勾选Best-precision fraction lengths,进而设置Numerator frac. length)得到,例如实际浮点数据第一个系数为0.002,定点表示为0x0081((int)0.002* 2 ^ 16 = 131 = 0x0081,即0.001左移16位)。

实际浮点数的导出

点击File —> Export导出滤波器系数到matlab的工作区workspace,快捷键Ctrl+E,这种方式导出的是实际浮点数据。

在这里插入图片描述

参考使用fdatool生成Xilinx中FIR滤波器IP核的系数

官方使用教程

Using Filter Designer - MATLAB & Simulink - MathWorks 中国

http://www.lryc.cn/news/229695.html

相关文章:

  • js 深度学习(四)
  • leetcode刷题日记:121. Best Time to Buy and Sell Stock( 买卖股票的最佳时机)
  • Mac 本地部署thinkphp8【部署环境以及下载thinkphp】
  • 【汽车电子】CAN总线分析仪使用介绍(PCAN/同星CAN卡)
  • C //例 7.13 有一个3*4的矩阵,求所有元素中的最大值。
  • 基于SSM的供电所档案管理系统
  • excel用RAND函数生成一个大于0小于1的随机数
  • 详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
  • mysql使用--数据库的基本操作
  • 计算机毕业设计选题推荐-个人记账理财微信小程序/安卓APP-项目实战
  • 如何利用IP代理进行海外推广?
  • 使用FFmpeg转封装为hls(m3u8)流
  • npm install导致的OOM解决方案
  • HTTP和HTTPS详解
  • 设计模式之模版方法(TemplateMethod)
  • 为什么数据安全很重要?哪些措施保护数据安全?
  • git push 操作代码回退
  • ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?
  • 【链接装载与库】 Linux共享库的组织
  • 大模型时代的机器人研究
  • devops步骤 -- jenkins安装
  • docker命令大全
  • 【EI会议征稿】第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024)
  • 算法岗面经
  • Vue 事件修饰符
  • FD-Align论文阅读
  • bug:Junit5报错,@SpringBootTest没有运行
  • Clickhouse学习笔记(4)—— Clickhouse SQL
  • Centos, RockyLinux 常用软件安装汇总
  • Lua更多语法与使用