最近需要对数据进行滤波,考虑到赛灵思已经有免费的FIR滤波器的ip核,便准备使用硬件进行滤波。但是不论是怎样使用FIR滤波器,都离不开相关系数的确定。实际设计中,不可能拿笔去一个个数值的计算,因此需要借助工具。
网上能找到的最多的方法就是使用matlab,但对于我这个不会使用matlab的渣渣来说,就有点难受了。刚好,之前学习pynq的时候,官方教程里有一个使用FIR滤波器进行硬件加速的例子,里面提到了一个神奇的网站,名字叫做TFilter,可以快速获取系数。
直接贴上网址:http://t-filter.engineerjs.com/
网站截图如下:
由于是外网,因此访问速度很慢,校园网访问外网还可以,但疫情期间在家,只能通过vpn访问校园网再访问这个网站,这样才快一点。
接下来点击左下角,选择滤波器类型,此处我选择低通滤波器:
选择之后,会自动生成一个0-400Hz为通,500-1000Hz为截止的低通滤波器,更改频率至我们需要的范围,此处我需要低通0-0.4Hz,0.5-10Hz为截止,采样频率200Hz,设置完毕之后参数如下,增益我没改:
点击DESIGN FILTER,等待一段时间,因为需要电脑进行计算,然后频谱图就可以出来了。相关系数也会在右边显示出来:
若要在程序或者block design中使用该相关系数,需要中间有逗号,不能直接复制右边的结果,因此,点击source code,在里面直接复制这些参数:
在源码中,我们也可以看到该程序的思路,并可以在左方下载源码进行学习。