每日精学 121|转置型FIR与状态递推

2026-09-25

← 技术专题 · 每日精学目录

雷达 · 通信 · 电子战 / 基础精学 121

转置型FIR通过部分和状态实现与直接卷积相同的传递函数,但寄存器保存的是未来输出贡献而不是历史输入。

01
模型与符号

固定三抽头实系数、零初始状态、精确算术;比较使用相同有效样本索引。

s1[n]:第一部分和状态(输出幅度)

s2[n]:第二部分和状态(输出幅度)

bk:FIR系数(无量纲)

x[n]:有效输入(输入幅度)

02
从模型到公式

状态方程

以更新前状态定义输出:

y[n]=b_0x[n]+s_1[n-1],
s_1[n]=b_1x[n]+s_2[n-1],\qquad s_2[n]=b_2x[n].

状态必须同步更新,不能把本拍新状态代入同拍旧状态位置。

消元证明

上一拍第二状态满足 s2[n−2]=b2x[n−2],故

s_1[n-1]=b_1x[n-1]+b_2x[n-2].

代回输出方程得到

y[n]=b_0x[n]+b_1x[n-1]+b_2x[n-2].

这正是三抽头直接型卷积。

状态范围

若 |x[n]|≤ X,则

|s_2[n]|\leq|b_2|X,\qquad |s_1[n]|\leq(|b_1|+|b_2|)X.

不同寄存器需要不同保护位,数学等价不要求物理状态逐项相同。

状态消去与冲激尾部

对整数系数 [1,2,1],沿前两个状态记为 s1,s2,有效样本更新为

y[n]=x[n]+s_1[n],\quad s_1[n+1]=2x[n]+s_2[n],\quad s_2[n+1]=x[n].

将前两次状态代回输出,得到

y[n]=x[n]+2x[n-1]+x[n-2]

说明转置结构改变了内部数据流而没有改变零状态传递函数。

若初始状态不是零,还额外产生有限长度的初值响应。

x[n]=0\ (n\ge N)\quad\Longrightarrow\quad y[n]=0\ (n\ge N+2)

上式假定末尾继续送入有效零样本以冲出尾部;

停止发送有效输入会冻结状态,而非使冲激尾部自动流出。因此有限记录卷积的末尾补零与接口空拍必须分开安排,比较直接卷积时也必须使用相同初值和输出长度。

03
物理含义

输入样本同时形成多个加权贡献,并在随后的有效采样时刻逐级进入输出。其寄存器位置利于乘加流水实现。

04
固定参数算例

以 [1,2,1]/4 比较直接卷积、显式转置递推和随机空拍下的有效样本输出,检查冲激尾部及复位后的状态。

固定参数数值验证结果
量数值
样本数257
系数和1
max equivalence error0
bubble error0
clock cycles321
zero tail state0
图 1:转置型FIR与状态递推的理论关系与固定参数验证图 1:转置型FIR与状态递推的理论关系与固定参数验证

图 1 转置型FIR与状态递推的理论关系与固定参数验证

表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261040;运行版本与完整结果另存为独立文件。

05
数字实现的边界

RTL实现未归一化系数 [1,2,1] 的转置递推,输出外部除以4;两个64位部分和寄存器仅在有效样本时更新。 RTL 采用同步有效信号和异步低有效复位;

空拍保持状态且输出无效。除另有说明外,输入为16位有符号整数,结果为64位有符号整数,测试范围内不截断或饱和。输出在采样时钟上升沿更新。自检覆盖连续样本、空拍和复位;

未进行器件布局布线、时序收敛或功耗验证。

独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。

06
适用范围

转置结构适用于带乘加寄存器的数字滤波流水线。不同抽头状态保存部分和,有助于把长加法链分布到多个节拍;流式接口必须让数据与有效信号同步传播。运行中切换系数时,需要定义旧状态保留、清零或渐变的行为。

07
工程上需要注意

不同结构中舍入位置不同,有限字长结果不必完全相同。

复位状态不一致会产生启动瞬态。

系数突变时部分和包含旧系数贡献。

转置型FIR通过部分和状态实现与直接卷积相同的传递函数,但寄存器保存的是未来输出贡献而不是历史输入。

内容依据:每日精学第 121 课《转置型FIR与状态递推》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读7
分享
写评论...