Vivado仿真FIR滤波器时问题汇总

本文介绍了在Vivado中仿真FIR滤波器的过程,包括从MATLAB生成信号和滤波器参数,信号的二进制转换,滤波器设计,以及解决readmemb命令读取txt文件问题。重点讨论了信号量化、滤波器参数量化为十六进制以及读取文件的注意事项。
摘要由CSDN通过智能技术生成

大前提:用matlab生成需要滤波的信号,matlab中的fdatool生成滤波器参数,并将信号和参数导入FPGA,实现滤波功能。

1.信号的导入

matlab生成的信号如下图
在这里插入图片描述
在这里插入图片描述
具体到芯片内部,上边的小数是没法存的,需要先转化成二进制或16进制(为什么是这两种进制,因为据目前我所知,Verilog中带有$readmemh$readmemb两个指令,读取的数据要求是十六进制和二进制),我这里转化成二进制。

由于matlab中的dec2bin函数无法转换负数,所以上边的信号的值我先加了1。

再考虑量化精度,就是信号值是用8位二进制还是16位二进制表示,当然位数越多,表达的信号就越准确,我选择了8位。上边信号的范围是(0-2),8位的范围(0-255),所以我最大可以给信号乘上约127倍的系数,我在仿真时乘上了10倍。不乘系数行不行?不行! 不乘的话,信号值量化之后,就四个数(00、01、10、11),这显然不对。

下面附上信号构造、进制转换、以及保存到txt文件中的matlab代码。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值