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

文章目录

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


Filter Designer的打开

打开Filter Designer:

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第1张图片

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第2张图片

滤波器参数设置

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第3张图片

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第4张图片

具体界面介绍参看此文章: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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第5张图片

生成XILINX Coefficient(.COE) File

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第6张图片

Radix = RADIX;

Coefficient_Width = COEFFICIENT_WIDTH;

CoefData = VECTOR;

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

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

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第7张图片

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第8张图片

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

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第9张图片

关于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,这种方式导出的是实际浮点数据。

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出_第10张图片

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

官方使用教程

Using Filter Designer - MATLAB & Simulink - MathWorks 中国

你可能感兴趣的:(数字信号处理,matlab,Filter,Designer,fdatool,coe文件)