温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何通过matlab的fdatool工具箱设计FIR滤波器

发布时间:2021-12-30 17:55:46 来源:亿速云 阅读:1975 作者:小新 栏目:互联网科技

这篇文章给大家分享的是有关如何通过matlab的fdatool工具箱设计FIR滤波器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

通过matlab的fdatool工具箱设计FIR滤波器

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

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

1. 打开matlab

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

如何通过matlab的fdatool工具箱设计FIR滤波器 

打开后的初始界面如下:

1处选定滤波器类型(低通、高通、带通、带阻);

2处选择要设计IIR(无限冲激响应)滤波器还是FIR(有限冲击响应)滤波器,并且选择使用哪种方法设计对应的滤波器;

3处设计滤波器的阶数,一般阶数越多滤波效果越好,但是系数对应的也越多,在FPGA硬件实现的时候会占用更多的资源,设计时要综合考虑;

4处设计滤波器的抽样频率Fs,通带频率Fpass和截止频率Fstop;

如何通过matlab的fdatool工具箱设计FIR滤波器

 

2. 设计所需滤波器

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

如何通过matlab的fdatool工具箱设计FIR滤波器 

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

如何通过matlab的fdatool工具箱设计FIR滤波器 

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

3. 参数量化

使用16位的滤波器参数,定点数表示

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

如何通过matlab的fdatool工具箱设计FIR滤波器 

16位定点数量化,其他参数保持默认,此处其实默认是16位,也就是选择了定点数之后所有的保持默认就复合要求,所以工具箱会认为你没有设置,下方的apply按钮就是灰色的,无法进行应用。

所以此时可以随便点个参数改下再改回来,比如把16改成15再改回16,这样apply就会能点击了。

如何通过matlab的fdatool工具箱设计FIR滤波器 

  点击apply,在右上方可以看到量化之后和未量化的差别,可以看到实线部分是16位量化后的幅频特性曲线,虚线部分是未量化的幅频特性曲线,量化之后在4MHz以后的阻带衰减不如原来的衰减大,但是实际上量化后也能衰减到-100dB,从幅度上来讲是原来的1/(10^5),这个衰减程度也已经足够了,所以使用16位量化对于滤波器的滤波效果几乎没有什么影响。

如何通过matlab的fdatool工具箱设计FIR滤波器

  如下图,只用4位数据去量化的时候,阻带衰减的就不是很好了,如果误差要求高的时候就会残留高频信号。

如何通过matlab的fdatool工具箱设计FIR滤波器 

4. 导出参数

(1)导出参数到matlab

如下图,先点击1处的按钮回到设计界面(不回去也不影响导出参数,此处为了更方便观看滤波器的参数),再点击2处File -> Export,弹出3处所示的小界面,点击3处界面里的Export即可导出参数到matlab,导出一个名为Num的数组,名字可以自己修改,在命令行输入Num再回车即可观察系数。

如何通过matlab的fdatool工具箱设计FIR滤波器

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

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

如何通过matlab的fdatool工具箱设计FIR滤波器 

设置文件名称(最好不要有中文和特殊字符)。

如何通过matlab的fdatool工具箱设计FIR滤波器 

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

如何通过matlab的fdatool工具箱设计FIR滤波器

感谢各位的阅读!关于“如何通过matlab的fdatool工具箱设计FIR滤波器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI