在数字信号处理(DSP)的世界里,我们习惯了被“整数”统治。
采样点是 ,下一个是 。它们像一个个孤立的台阶,泾渭分明,不可逾越。但我们身处的物理世界不是跳跃的,它是连续流动的。
当我们想知道两个采样点“中间”发生了什么时,或者当我们需要把采样率从 44.1kHz 变成一个奇怪的非整数倍时,痛苦就产生了。
你可能会说:“这不就是插值吗?我会。”
但如果你需要在 FPGA 里,以每秒上亿次的速度,动态地、随意地去调整这个“中间位置”呢?比如前一秒你需要延迟 0.3 个周期,下一秒需要延迟 0.3001 个周期?
这时候,普通的滤波器就失效了。你需要请出 Farrow 结构。
大多数教科书会冷冰冰地告诉你:Farrow 是一种“基于多项式近似的高效分数延迟结构”。但这把它的格局说小了。
Farrow 真正迷人的地方在于:它用一种极其优雅的方式,解决了“变”与“不变”的矛盾。
它不仅是一个电路结构,更是一种看待时间的哲学。
01 老裁缝的困境:为什么传统滤波器会失效?
为了理解 Farrow 的天才之处,我们先看看没有它的时候,我们是多么笨拙。
想象你是一个裁缝(传统的 FIR 滤波器),你的任务是给信号“做衣服”(滤波/延迟)。
如果客户要求:“给我做一个延迟 的波形。”
这很好办。你翻开《多相滤波系数表》,找到 对应的那一行系数,装进卷积机器,搞定。
但现代通信和音频系统是个“刁钻”的客户。
接收机的时钟在漂移,多普勒效应在变化,客户的要求变成了:
- “现在我要延迟 0.501。”
- “哎呀,快了点,现在要 0.502。”
- “等等,变成 0.499 了。”
这时候,老裁缝就崩溃了。
因为在传统结构里,位置()变了,系数()就得变。
每一次微小的调整,你都得去查找新的系数表,或者现场疯狂计算新的系数,然后把几百个乘法器的参数全部刷新一遍。
在硬件实现里,这意味着巨大的计算量、海量的存储器(RAM)和噩梦般的时序约束。
这似乎是一个死结:我们要灵活性,就必须牺牲算力。
02 Farrow 的洞见:把“变量”剥离出来
Cecil W. Farrow 在 1988 年提出这个结构时,他并没有发明新的插值数学(底层通常还是拉格朗日或样条插值),但他做了一件**“解构”**的工作。
他敏锐地发现:那些随着 疯狂变化的滤波器系数,其实是有规律的。
如果我们把系数 展开成关于 的多项式(比如三次多项式),奇迹就发生了:
看懂了吗?
他把“变量 ”提出来了!
Farrow 把整个结构拆成了两层:
- 底层的“骨架”:是一组完全固定的子滤波器()。不管你怎么调延迟,这些滤波器的系数永远不变。它们就像建筑的钢筋,坚固而稳定,直接焊死在电路里。
- 上层的“皮肤”:是变量 。它在最后才参与进来,通过简单的乘法和加法(Horner 法则),赋予骨架以形态。
这就是 Farrow 的核心哲学:将“动态的控制”与“静态的结构”解耦。
你只需要输入一个变量 ,就能通过简单的代数运算,让这个坚固的骨架瞬间产生出千变万化的波形。
这一刻,数字信号不再是僵硬的台阶,它变成了一条可以任意滑动的曲线。
03 工程美学的巅峰:它到底在算什么?
很多工程师用 Farrow,只是因为它“省资源、不用重载系数”。但在算法设计者的眼里,它有一种数学上的对称美。
如果你去仔细推导那些固定子滤波器的系数,你会发现一个惊人的事实——它本质上是在逼近泰勒级数(Taylor Series)。
让我们试着用物理直觉来理解这几路并行工作的子滤波器:
- 第 0 路子滤波器:它提取的是信号的**“本身”**(位置)。
- 第 1 路子滤波器:它提取的是信号的**“一阶导数”**(速度/斜率)。
- 第 2 路子滤波器:它近似提取的是信号的**“二阶导数”**(加速度/曲率)。
看到这里,你是否有一种豁然开朗的感觉?
Farrow 结构的物理意义其实是:
“只要我掌握了信号在当前时刻的幅值()、变化速度()和弯曲程度(),我就能精准地预测它在未来微小时间段内()的任何位置。”
这就是为什么 Farrow 能够在不需要存储海量系数表的情况下,实现任意精度的重采样。
它掌握了信号变化的“趋势”,而不是死记硬背每一个点的位置。
这不就是我们一直追求的“第一性原理”吗?
04 这种思想,还能带我们去哪?
理解了 Farrow,你就不只是学会了一个滤波器,你学会了一种**“降维”**的思维方式。
当你面对一个复杂的、动态变化的系统时,试着问自己:
“我能不能把变的东西提出来,让剩下的东西静止?”
这种思想在各个领域回响:
- 在无线通信里:我们不知道信号什么时候到达,但 Farrow 让我们能在不知道对方时钟快慢的情况下,强行对齐眼图(定时同步)。它是数字接收机的心脏。
- 在计算机图形学里:你熟悉的 Bézier 曲线,其生成逻辑与 Farrow 异曲同工。控制点是静止的(像子滤波器),参数 是流动的(像 ),它们共同编织出平滑的形状。
- 在音频合成里:当你听到合成器里那平滑的滑音(Pitch Bend),或者吉他物理建模中的琴弦振动,往往都是 Farrow 在底层默默地搬运采样点,模拟出物理世界的连续性。
写在最后
工程不仅仅是把寄存器填对,或者是把公式推导出来。
最高级的工程,是找到那个最简洁的结构,让复杂的问题瞬间坍缩。
Farrow 滤波器就是这样一个存在。
它告诉我们要在这个离散的、充满了 0 和 1 的数字世界里,保持对“连续性”的敬畏,以及对“简单”的追求。
下次当你看到 5G 信号的星座图稳定旋转,或者听到数字音乐中丝般顺滑的变调时,不妨在心里向那个默默工作的 Farrow 结构致意:
谢谢你,帮我们在离散数据的缝隙里,找回了丢失的时间。
“欢迎关注公众号 3GPP仿真实验室!这里是通信算法工程师的加油站。
我们不搬运新闻,只输出可运行的代码和深度标准解读。
👇 新人见面礼(后台回复关键词获取):
回复【LDPC】:获取 5G NR LDPC 编解码 MATLAB 代码(含注释)。 回复【工具】:通信人减负神器:5G NR 帧结构与频点一键生成器(Python+Excel+Web三版)。 回复【Pytorch】:获取 5G NR OFDM 链路 Pytorch 教学代码(含注释),助力人工智能 + 通信
让我们一起探索 6G 的无限可能。