matlab与FPGA数字滤波器设计、FPGA数字信号处理系列(1)——通过matlab的fdatool工具箱设计FIR数字滤波器

Matlab滤波器设计——fdatool工具箱使用教程

下一讲:matlab与FPGA无线通信、FPGA数字信号处理系列(2)——Vivado调用IP核设计FIR滤波器

MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列 汇总

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

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

1. 打开matlab

在这里插入图片描述

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

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

3.设计所需滤波器

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

     按照上图设定参数后,点击Design Filter。
在这里插入图片描述
     设计完成后,黄色框内显示幅频响应曲线,可以看到,使用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 个一样,依次对应。
在这里插入图片描述
下一讲:matlab与FPGA无线通信、FPGA数字信号处理系列(2)——Vivado调用IP核设计FIR滤波器

MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列 汇总

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章