雷达 · 通信 · 电子战 / 基础精学 111
CORDIC FIR 与累加器都需要在位宽增长后缩减字长。缩位规则会直接改变统计偏差和长期累积误差。
截断固定小数位会产生与符号约定相关的非零平均误差,而最近值舍入在输入跨越多个量化区间且分布平滑时通常具有近零偏差和更低均方误差。
Δ:量化步长(幅度)
Qt(x):截断量化器(量化值)
Qr(x):最近值舍入量化器(量化值)
e=x−Q(x):量化误差(幅度)
bias:误差平均值(幅度)
对非负数向下截断时,误差 e=x−Qt(x) 位于 [0,Δ),理想均匀小数部分下平均约为 Δ/2。
舍入误差位于 [−Δ/2,Δ/2),对对称均匀小数部分平均为零,方差为 Δ2/12。
具有固定符号的偏差在长累加中按样本数增长,而零均值误差的标准差通常按平方根增长。
截断总是朝一个方向丢弃低位,像给每个样本施加微小单向推力。舍入根据低位大小向上或向下调整,长期更容易互相抵消。
MATLAB 对均匀输入和正弦输入比较截断 舍入和偶数舍入的误差直方图、均值、方差与长累加偏移。
| 量 | 数值 |
|---|---|
| 小数位数 | 4 |
| 量化步长 | 0.0625 |
| 随机样本数 | 500000 |
| truncation error mean | 0.0312460911584 |
| rounding error mean | -4.09088415657e-05 |
| truncation error variance | 0.000326074752539 |
| rounding error variance | 0.000324897459435 |
| theoretical rounding variance | 0.000325520833333 |

图 1 截断与舍入误差分布 偏差方差和累积漂移
数值结果由配套 MATLAB 脚本在固定参数和固定随机种子下实际执行。脚本包含针对闭式关系 边界条件或估计误差的断言,并把 MATLAB 版本与关键数值写入独立结果文件。
RTL 实现可配置右移缩位,选择直接截断或加半量化步进后舍入,并保留符号扩展。
配套 RTL 只实现本课中可明确量化的定点核函数或数据通路。浮点矩阵分解 概率统计和图形生成保留在 MATLAB 参考程序中。
舍入策略用于滤波器级间缩位、坐标旋转和增益归一化。需要明确负数和恰好半步时的规则。
输入未跨越多个量化区间时误差不一定均匀。
简单加半步对负数需特别处理。
舍入可能增加瞬时峰值一量化级。
相关误差会形成离散杂散。
截断可产生可累积的直流偏差,最近值舍入通常使误差更对称。定点规格必须明确符号和半步处理规则。
内容依据:每日精学第 111 课《定点舍入与截断偏差》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。