FIR IP 学习记录

工具:

matlab filterdesigner 工具箱

vivado FIR IP核

实现:

1.matlab设计与测试

先用matlab设计目标滤波器,得到滤波器的抽头系数。

FIR IP 学习记录_第1张图片

如图,根据需求选择 低通/高通/带通/带阻。

由于vivado用的是FIR IP核,所以设计方法选择FIR,FIR中有多种选项,根据需求选择即可。

滤波器阶数,可以指定阶数也可以选择最小阶(这里最小阶应该是指保证性能的情况下的最小阶数)。阶数越高性能越好,耗用资源越多。

频率设定:pass 和stop就是过渡带的起始点,而Fs很重要,硬性要求是要大于两倍的max(Fpass ,Fstop),但是根据测试的结果,Fs只做到上述最低要求的话(刚好等于两倍或者略大一点),有时根本滤不了目标信号。所以要在仿真中调试Fs得到理想结果。

赋值设定:Apass一般不用改,就是允许通过的信号的强度;Astop可以根据需求改,会影响滤波效果与占用资源的大小。

设置完滤波器参数后,修改滤波器算法为定点,并根据需求改字长。

FIR IP 学习记录_第2张图片

FIR IP 学习记录_第3张图片

随后生成滤波器函数用于在matlab中调用:

FIR IP 学习记录_第4张图片

便可进行仿真,测试。

2.vivado功能性仿真

FIR IP 学习记录_第5张图片

在matlab工具箱中生成抽头系数的coe文件。

FIR IP 学习记录_第6张图片

在IP核中,在cofficient file中选择生成的coe文件,其他不用修改,filter type选择单时钟即可,

FIR IP 学习记录_第7张图片

在时钟这块修改频率Fs,与matlab工具箱中设置的Fs大小一致。

FIR IP 学习记录_第8张图片

implement 按照图中设置,确定符号类型和数据位宽。

即可完成fir ip核的设置,接口信号也简单,就是输入信号和输出信号,时钟与Fs频率保持一致。

测试结果:

sin a :  3Mhz

sin b:4Mhz

sin ab : 1MHz,7MHz。

fir 输出:1MHz

FIR IP 学习记录_第9张图片

你可能感兴趣的:(学习)