FPGA数字信号截位影响分析(一)
目录
前言
数字信号处理在信号处理中占据了越来越高的比重,而在大规模、高实时性的数字信号处理中,FPGA 的使用非常广泛。FPGA 内部采用的是 0/1 的二进制补码表示数据,如果不经过特殊处理,数据是定点的形式。在数字化的信号处理过程中,大量乘、加运算会导致数据的位数增加,从而增加 FPGA逻辑资源的占用率。因此数字信号处理过程中,需要对信号进行截位。通常采取直接截掉多余低位数值的方法。但是,这种截位方式会引入较大误差,导致信号分析时出现多余的频率分量。本文将对信号直接截位所造成的误差进行分析,利用 Matlab 模拟 FPGA 中的数据截位过程,对 FPGA 中的数据截位操作进行仿真。
提示:以下是本篇文章正文内容,希望能帮助到各位,转载请附上链接。
一、常见的截位方式
1、直接截位,就是将数用二进制表示后,直接截掉后面不需要的位数;
2、舍入截位,就是所有数按绝对值取四舍五入。
这两种截位方式都是可以的,其中舍入截位精度相对较高。
二、仿真波形设置
假设现在有一个电压信号由两个正弦波叠加而成:
两个正弦波的频率分别为10Hz和20Hz,幅值分别为0.8和0.6,用200Hz的采样频率去对其进行采样画出它的时域和频域波形如下图所示:
三、直接截位影响分析
先将上面的电压信号量化成10bit有符号定点数,包含1bit符号位,1bit整数位,8bit小数位。然后对其直接截位影响进行分析。用MATLAB分别仿真截去1位,2位,...,6位后信号的时域波形图和频域波形图。
截去1位后的效果:
截去2位后的效果:
截去3位后的效果:
截去4位后的效果:
截去5位后的效果:
截去6位后的效果:
通过上述仿真分析,可以看出,采用直接截位法对信号进行截位,会导致信号频谱在 0 频出现尖峰。且随着截位位数的增大,尖峰的幅度也随之增大。当然,其他频率处也随着截位位数的增大,出现了一些尖峰。当截去位数较小时,对信号质量的影响也比较小,当截去位数较大时,信号中会出现一些非期望的频率分量,对信号质量的影响比较大,信号本身也会出现凸顶现象。
四、参考资料
总结
以上就是关于FPGA数字信号截位影响的分析,如果采用直接截位的话,势必会影响数字信号处理的质量。下一篇文章将介绍如何通过改变截位方式来降低这种影响。