粒度限制循环:
正确的。然而,极限环只发生在定点处理中。这不是浮点处理的实际问题。
溢出限制周期:
让我们暂时忽略这些。如果你有溢出,你无论如何都需要修复它们,限制周期与否。
知道我的过滤器的系数后,有什么方法可以预测是否会发生此错误
是和不是。限制循环很大程度上取决于过滤器的确切实现。最重要的是滤波器的拓扑结构(直接形式 I、转置形式 I 等)、状态变量、系数和数据的位深度,最重要的是实现舍入的确切方式。假设您将两个有符号的 8 位数字相乘。结果有 15 位,因此您需要丢弃 7 位才能将结果再次存储在 8 位位置。这通常称为“四舍五入”。
实现舍入的方法数量惊人。有关完整概述,请参阅https://en.wikipedia.org/wiki/Rounding
最常见的是
- “地板”的截断:只丢弃低 7 位。选择下一个较小的数字。这是许多编程语言中的“默认”行为。
- 最近邻:四舍五入到最近的数字
- 零偏差的最近邻居:请参阅 Wikipedia,这有点复杂。
- 向零舍入:始终确保舍入数字的大小小于实际数字。
“向零舍入”保证消除极限循环。然而,它也会产生比“最近邻”选项多 6 dB 的量化噪声。所以这是一个权衡。
极限循环是滤波器的精确实现加上滤波器系数和(在较小的范围内)输入信号的组合。仅滤波器系数不足以预测极限环,您还需要对您的实现进行精确的模拟。