跳到正文
信号与系统

定点实现:量化、溢出与位精确验证

14 分钟

算法在双精度浮点中表现良好,不代表能在DSP或FPGA有限字长上工作。系数、状态、乘加和舍入都产生量化;溢出策略和缩放决定系统是否稳定、有噪声或突然失真。

Q格式

明确符号位、整数位和小数位。乘法位宽相加,累加器还需保护位;每次截断位置影响噪声与偏置。不要依赖语言隐式转换。

舍入与截断

截断简单但产生有偏误差,四舍五入降低偏差却增加逻辑。饱和避免回绕的大灾难,但连续饱和仍是设计失败,应计数告警。

IIR敏感性

极点系数量化可能移动到单位圆外,内部状态还会出现零输入极限环。二阶节、状态缩放和更高精度能改善,每种字长重新验证。

动态范围

用最坏输入、内部峰值和统计分布分配位宽。简单按输出幅度选位宽会漏滤波器内部放大;重排二阶节可降低峰值。

位精确模型

建立与RTL/C实现同舍入、饱和和延迟的参考模型,随机向量逐样本比较。浮点容差测试无法发现一位差异。

编译器优化、SIMD和硬件乘法器对溢出规则可能不同,接口处显式转换并保留黄金测试向量。定点改版后重新跑全量回归,不能只比较平均频响。

任务:把一个浮点IIR转定点,扫描位宽并比较频响、噪声、极点、溢出和资源。

小纸条

定点 IIR 滤波器为什么必须在系数量化后重新检查极点?