189 8069 5689

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

这篇文章给大家分享的是有关如何通过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滤波器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


分享标题:如何通过matlab的fdatool工具箱设计FIR滤波器
URL链接:http://cdxtjz.cn/article/ihhhie.html

其他资讯