“有限字长效应”是如何产生的?

文章来源:FPGA入门到精通

今天分享下数字信号处理中的“有限字长效应”。

一、什么是数字信号处理?

在我们的生活中,充满了各种各样的信号,比如声音、图像、视频等等。数字信号处理就是对这些信号进行数字化处理,使其能够在数字设备中进行存储、传输和处理。

数字信号处理的核心是一系列的数学运算,通过对数字信号进行加、减、乘、除等运算,我们可以实现对信号的滤波、压缩、编码等操作。

但是,在数字信号处理的过程中,我们并不是直接对连续的信号进行处理,将连续的信号进行采样和量化,转换为离散的数字信号进行处理。

二、什么是有限字长效应?

在数字信号处理中,我们使用的数字都是有限字长的。这是因为在实际的数字系统中,我们无法使用无限精度的数字来表示信号。

有限字长效应就是指由于数字的有限字长而导致的数字信号处理结果与理论结果之间的误差。

这种误差可能会影响数字信号处理的精度和可靠性,因此在数字信号处理中,我们需要充分考虑有效字长效应的影响。

通用计算机系统字长较长,量化步长大,一般不用考虑有限字长的影响,但对于FPGA,其字长较短,且计算资源有限,需要考虑有限字长效应。

三、有限字长效应的产生原因

1、量化误差

量化过程中会产生量化误差,包括A/D变换(采样频率和量化位数)、滤波器系数量化。

量化误差的大小与量化的位数有关。

量化位数越多,量化误差越小。但是也会增加数字系统的复杂度和资源消耗。

如下图分别用1bit、2bit、3bit表示采样后的结果。

采样结果.png

从上图中 可以看到,量化bit数越高,量化的结果越逼近实际信号值。

2. 舍入误差

在数字信号处理中,我们也常常需要对数字进行舍入操作,以适应数字系统的有限字长。

舍入操作会导致数字的精度损失,从而产生舍入误差。

例如,一个数字 1.45,如果采用四舍五入将它舍入到一位小数,那么舍入后的结果是 1.5。这个过程中就产生了舍入误差。

3、溢出误差

数学运算过程中,由于位数限制,为避免出现溢出,需要将计算结果的压缩处理,不超过最大值。

例如:8 位有符号整数类型表示范围是 -128 到 127,120 + 10 结果等于130,超出了范围会,一般做限幅处理,即大于127的计算结果都取值127。

最新文章

最新文章