雷达 · 通信 · 电子战 / 基础精学 121
转置型FIR通过部分和状态实现与直接卷积相同的传递函数,但寄存器保存的是未来输出贡献而不是历史输入。
固定三抽头实系数、零初始状态、精确算术;比较使用相同有效样本索引。
s1[n]:第一部分和状态(输出幅度)
s2[n]:第二部分和状态(输出幅度)
bk:FIR系数(无量纲)
x[n]:有效输入(输入幅度)
以更新前状态定义输出:
状态必须同步更新,不能把本拍新状态代入同拍旧状态位置。
上一拍第二状态满足 s2[n−2]=b2x[n−2],故
代回输出方程得到
这正是三抽头直接型卷积。
若 |x[n]|≤ X,则
不同寄存器需要不同保护位,数学等价不要求物理状态逐项相同。
对整数系数 [1,2,1],沿前两个状态记为 s1,s2,有效样本更新为
将前两次状态代回输出,得到
说明转置结构改变了内部数据流而没有改变零状态传递函数。
若初始状态不是零,还额外产生有限长度的初值响应。
上式假定末尾继续送入有效零样本以冲出尾部;
停止发送有效输入会冻结状态,而非使冲激尾部自动流出。因此有限记录卷积的末尾补零与接口空拍必须分开安排,比较直接卷积时也必须使用相同初值和输出长度。
输入样本同时形成多个加权贡献,并在随后的有效采样时刻逐级进入输出。其寄存器位置利于乘加流水实现。
以 [1,2,1]/4 比较直接卷积、显式转置递推和随机空拍下的有效样本输出,检查冲激尾部及复位后的状态。
| 量 | 数值 |
|---|---|
| 样本数 | 257 |
| 系数和 | 1 |
| max equivalence error | 0 |
| bubble error | 0 |
| clock cycles | 321 |
| zero tail state | 0 |
图 1 转置型FIR与状态递推的理论关系与固定参数验证
表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261040;运行版本与完整结果另存为独立文件。
RTL实现未归一化系数 [1,2,1] 的转置递推,输出外部除以4;两个64位部分和寄存器仅在有效样本时更新。 RTL 采用同步有效信号和异步低有效复位;
空拍保持状态且输出无效。除另有说明外,输入为16位有符号整数,结果为64位有符号整数,测试范围内不截断或饱和。输出在采样时钟上升沿更新。自检覆盖连续样本、空拍和复位;
未进行器件布局布线、时序收敛或功耗验证。
独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。
转置结构适用于带乘加寄存器的数字滤波流水线。不同抽头状态保存部分和,有助于把长加法链分布到多个节拍;流式接口必须让数据与有效信号同步传播。运行中切换系数时,需要定义旧状态保留、清零或渐变的行为。
不同结构中舍入位置不同,有限字长结果不必完全相同。
复位状态不一致会产生启动瞬态。
系数突变时部分和包含旧系数贡献。
转置型FIR通过部分和状态实现与直接卷积相同的传递函数,但寄存器保存的是未来输出贡献而不是历史输入。
内容依据:每日精学第 121 课《转置型FIR与状态递推》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。