4. 整数倍内插:内插原理、时域与频域解释、内插器的结构、镜像抑制滤波
好,咱们接着聊多速率系统的另一个核心操作——整数倍内插。
如果说抽取是把采样率降下来,那内插正好反过来,是把采样率升上去。你可能会问:采样率已经够用了,为什么还要升?我当年也有这个疑问。后来在做一个高精度音频DAC的项目时,发现原始信号的采样率太低,DAC后面的模拟滤波器根本做不出来——要么阶数太高,要么过渡带太陡。嗯,这时候内插就派上用场了。
4.1 内插的基本原理
整数倍内插,说白了就是在两个原始采样点之间插入若干个零值点。假设原始序列是 x(n),我们要做 L 倍内插,那就在每两个点之间插入 L-1 个零。
数学上很简单:
x_I(m) = x(m/L), 当 m 是 L 的整数倍
x_I(m) = 0, 其他情况
举个例子,原始序列是 [a, b, c, d],做3倍内插后变成:
[a, 0, 0, b, 0, 0, c, 0, 0, d, 0, 0]
你看,数据量一下子变成了原来的3倍。但这里有个问题——这些零值点并不是真正的信号值,它们只是占位符。后面需要通过滤波把这些零变成合理的插值。
核心要点:内插 = 插零 + 滤波。插零是第一步,滤波才是关键。
4.2 时域与频域解释
咱们先看时域。插零之后,信号在时域上被拉伸了。原来两个采样点之间的时间间隔是 T,现在变成了 T/L。但问题是,这些零值点破坏了信号的平滑性。你想想看,一个连续信号突然跳变到零,再跳回来,这显然不是我们想要的。
再看频域,这里就有意思了。
原始信号 x(n) 的频谱是 X(e^jω),它的周期是 2π。插零之后,新序列 x_I(m) 的频谱会变成什么?我直接告诉你结论:
X_I(e^jω) = X(e^(jωL))
什么意思?原始频谱被压缩了 L 倍!原来在 [0, 2π] 范围内的频谱,现在被压缩到了 [0, 2π/L] 范围内。然后呢?在 [2π/L, 2π] 这个区间内,会出现 L-1 个镜像频谱。
为什么会这样?
我习惯用一个简单的类比来理解:你拿一个弹簧,原始信号是弹簧上的一个波形。插零相当于把弹簧拉长了 L 倍,波形自然就被压缩了。但弹簧拉长后,原来的一段波形会重复出现——这就是镜像。
个人经验:我在做多速率滤波器设计时,经常用这个弹簧类比来跟团队成员解释。大家一听就懂了,比看公式快得多。
4.3 内插器的结构
内插器的标准结构其实很简单,就两步:
- 插零器:在原始序列中插入 L-1 个零
- 镜像抑制滤波器:滤除镜像频谱,恢复平滑信号
这个滤波器是个低通滤波器,它的截止频率是 π/L。为什么是这个值?因为镜像频谱从 π/L 开始出现,我们要把它们全部干掉。
实际实现时,我们不会真的先插零再滤波——那样太浪费了。你想啊,插零之后大部分数据都是零,跟零相乘的结果也是零,何必算呢?
所以,工程上常用的是多相结构。这个结构把滤波器拆成 L 个分支,每个分支只处理非零的输入数据。计算量直接从 O(NL) 降到了 O(N),效率提升非常明显。
避坑指南:我曾经在一个项目中直接用了插零+滤波的朴素实现,结果处理速度跟不上实时要求。后来改成多相结构,问题立刻解决了。所以,如果你做实时系统,千万别偷懒,直接用多相结构。
4.4 镜像抑制滤波
镜像抑制滤波器是内插器的灵魂。它的设计好坏,直接决定了内插后的信号质量。
设计这个滤波器时,有几个关键参数:
| 参数 | 含义 | 我的建议 |
|---|---|---|
| 通带截止频率 | 原始信号的最高频率 | 一般取 π/L 的 0.8~0.9 倍 |
| 阻带起始频率 | 第一个镜像的起始位置 | 就是 π/L,不能含糊 |
| 阻带衰减 | 对镜像的抑制程度 | 至少 60dB,高精度应用要 80dB 以上 |
| 过渡带宽度 | 通带到阻带的过渡区域 | 越窄越好,但滤波器阶数会变高 |
滤波器设计可以用 FIR 或者 IIR。我个人更倾向于 FIR,原因很简单:FIR 是线性相位的,不会造成群延迟失真。在音频、通信这些对相位敏感的应用中,这一点特别重要。
我记得有一次做图像缩放的内插,用了 IIR 滤波器,结果图像边缘出现了明显的振铃效应。换成 FIR 之后,效果立竿见影。嗯,从那以后,只要不是对延迟特别敏感的应用,我都用 FIR。
注意:镜像抑制滤波器的阶数不能太低。阶数低了,过渡带太宽,会影响到原始信号的高频分量。但阶数太高,计算量又上去了。这是个 trade-off,需要根据实际需求来平衡。
4.5 知识体系总览
下面这张图把整数倍内插的核心逻辑串起来了,你可以对照着看:
这张图把内插的流程、时域频域解释、工程实现都串起来了。你对照着看,应该能对整个知识体系有个清晰的把握。
一个小技巧:如果你刚开始接触内插,可以先从 L=2 的情况入手。2倍内插是最简单的,镜像只有一个,滤波器设计也最直观。搞懂了2倍,再推广到任意整数倍就水到渠成了。
好了,整数倍内插的核心内容就这些。记住:插零是手段,滤波是灵魂。搞懂了镜像抑制滤波器,你就掌握了内插的精髓。
公众号:蓝海资料掘金营,微信deep3321