微信小程序开发介绍,windows优化大师自动安装,seo的优化技巧和方法,旅游电商网站建设方案工具#xff1a;
matlab filterdesigner 工具箱
vivado FIR IP核
实现#xff1a;
1.matlab设计与测试
先用matlab设计目标滤波器#xff0c;得到滤波器的抽头系数。 如图#xff0c;根据需求选择 低通/高通/带通/带阻。
由于vivado用的是FIR IP核#xff0c;所以设…工具
matlab filterdesigner 工具箱
vivado FIR IP核
实现
1.matlab设计与测试
先用matlab设计目标滤波器得到滤波器的抽头系数。 如图根据需求选择 低通/高通/带通/带阻。
由于vivado用的是FIR IP核所以设计方法选择FIRFIR中有多种选项根据需求选择即可。
滤波器阶数可以指定阶数也可以选择最小阶这里最小阶应该是指保证性能的情况下的最小阶数。阶数越高性能越好耗用资源越多。
频率设定pass 和stop就是过渡带的起始点而Fs很重要硬性要求是要大于两倍的max(Fpass ,Fstop)但是根据测试的结果Fs只做到上述最低要求的话刚好等于两倍或者略大一点有时根本滤不了目标信号。所以要在仿真中调试Fs得到理想结果。
赋值设定Apass一般不用改就是允许通过的信号的强度Astop可以根据需求改会影响滤波效果与占用资源的大小。
设置完滤波器参数后修改滤波器算法为定点并根据需求改字长。 随后生成滤波器函数用于在matlab中调用 便可进行仿真测试。
2.vivado功能性仿真 在matlab工具箱中生成抽头系数的coe文件。 在IP核中在cofficient file中选择生成的coe文件其他不用修改filter type选择单时钟即可 在时钟这块修改频率Fs与matlab工具箱中设置的Fs大小一致。 implement 按照图中设置确定符号类型和数据位宽。
即可完成fir ip核的设置接口信号也简单就是输入信号和输出信号时钟与Fs频率保持一致。
测试结果
sin a : 3Mhz
sin b4Mhz
sin ab : 1MHz7MHz。
fir 输出1MHz 遇到的坑
在vivdado上捣鼓了很久滤波器用的采样频率为10MHz输入信号分别为3MHz、4MHz无论用高通低通带通都没法滤出想要的信号所有的信号都没被过滤以为是vivado信号设置的问题最后用matlab仿真发现滤波器设置用10MHz的采样频率本身就不行用50MHz就可以不知道为啥10MHz已经满足奈奎斯特采样律了仿真还是有用的找到了问题。