# 专项三：定点处理（33–36）

先用数学描述预期运算，再选择位宽与 RTL。不要用浮点模型“看起来收敛”来证明有限位宽电路同样正确。

完成33–35后，可进入 [ΔΣ后级滤波的DF07](../delta_sigma_filter/07_fixed_point.md)，将这些规则应用到CIC、系数量化与多级FIR。DF01–DF06数学/浮点部分可以提前学习。

## 33：编码、符号与小数位

### 讲解

本课用明确三元组表示格式：signed/unsigned、总位数 W、小数位 F。物理数值=`整数码/2^F`。避免只写 Q 格式却未说明整数位是否包含符号。

signed、W=16、F=12 的范围为 −8…7.999755859375，步长 1/4096。−1.5 对应整数码 −6144，+0.75 对应 3072。ADC 补码、offset binary 和 trim 的无符号码不能直接混算，必须先转换到统一语义。

有符号扩展复制最高符号位，无符号扩展填 0。RTL 里拼接表达式、无尺寸常量和不同 signed 属性混用可能改变运算语义。建议对输入转换、临时变量和比较两端明确声明宽度与符号，先扩展再运算。

12 位补码 0x800 是 −2048；12 位 offset binary 0x800 表示中点。同一个 bit pattern 的物理意义取决于编码契约。

### 练习与验收

为 ADC 样本、目标值、误差、累加和、trim code 列格式表。将 −1.5、0.75、最大值和最小值编码/解码。验收要求物理单位、符号和缩放在每个模块边界一致。

## 34：位宽、舍入与饱和

### 讲解

W 位加法可能需要 W+1 位；两个 W 位数相乘需要最多 2W 位。两个 F=12 的数乘积具有 F=24，小数位不能不经处理就直接赋给 F=12 的输出。

例：−6144×3072=−18874368，表示 −1.125；转回 F=12 得 −4608。3×3=9 超出 signed16/F12 的最大值，应按规格饱和为 32767，并报告饱和；直接截断高位会变成错误符号或数值。

本课选择 round-to-nearest、ties-to-even。先在足够宽的绝对值上求商和余数，超过半个单位时增加商；正好半单位且商为奇数时增加；最后恢复符号。最小负数取绝对值前要扩一位，避免 `abs(min_negative)` 溢出。

从 F=2 转整数：1.5→2，2.5→2，−1.5→−2，−2.5→−2。算术右移对负数常向负无穷方向截断，不等同最近舍入；统一加一个正的半单位也不能自动实现对称的负数 ties-to-even。

饱和比较在保留完整运算结果时完成，再缩窄位宽。溢出和饱和标志可能是校准无效、输入超量程的重要依据，不能只夹紧数值后继续当正常测量。

### 练习与验收

写独立的整数参考计算，覆盖最小负数、最大正数、正负半单位、乘法溢出和饱和。验收要求 RTL 与精确整数模型逐项一致，而不只在几个小正数上正确。

## 35：累加、平均与滤除瞬态

### 讲解

N 个样本累加通常需要额外 ceil(log2 N) 位，仍需按具体极值验证。16 个 signed12/F0 样本，最小和 −32768、最大和 32752，signed16/F0 足够。若计算还包括减目标、加舍入量等，临时结果另留位宽。

每块只收同一 trim/config 版本的 16 个有效样本。invalid、重复、旧版本样本不计入 count；配置改变后丢弃旧块或重新开始，不能把两种设置混合平均。

独立零均值噪声下，平均噪声 RMS 约为 σ/√N。σ=4 ADC LSB、N=16 时约 1 LSB。相关噪声、漂移和系统偏移不一定降低，平均也不能恢复已经被量化或饱和丢失的信息。

数字状态输入的连续 M 周期去毛刺与 ADC 平均不同：前者判断稳定事件，后者估计数值。把短 fault 去掉之前要确认该 fault 是否本来就需要立即处理。

### 练习与验收

测试全最小、全最大、交替正负、一个 invalid、重复 id 和块中版本改变。与精确有符号和比较；输出平均按指定舍入。验收要求 count=16 指的是 16 个被接受的有效样本。

## 36：IIR、滞回与数字闭环

### 讲解

简单一阶滤波为 `y_next=y+α(x−y)`，α=1/8 时理想离散极点为 7/8。它能平滑读数，但引入响应延迟；约 52 个样本后初始误差降至千分之一量级，这是无量化的理想估算。

如果 y 只有整数码，x=1、y=0 时 `(x−y)>>3` 为 0，滤波器可能停在 0。内部增加小数位和明确舍入可改善分辨率，差分 x−y 也需要防溢出；有限精度仍可能出现极限环或偏差。

滞回用不同进入/退出阈值防止噪声在门限附近反复切换。校准 deadband、连续确认和最小更新间隔也可减少抖动，但会影响响应与最终误差，不能随意调大。

把滤波器接入模拟反馈后，还要分析采样周期、测量延迟、零阶保持、模拟传递函数和控制增益。单独的数字极点在单位圆内不等于整个数模闭环稳定。首版课程采用有限次数的前台校准，连续后台闭环作为后续专题。

### 练习与验收

比较整数 IIR 与增加小数位的版本，对阶跃、小幅变化和正负噪声作推演。解释滤波延迟如何影响校准等待。验收要求区分噪声平滑、估计偏差和闭环稳定性三个问题。
