Posted in

香农-惠特克插值动画:sinc 重建与采样定理

正确的 sinc 重建公式

采用归一化定义:

sinc(u) = sin(πu)/(πu),并定义 sinc(0)=1

若连续信号 x(t) 严格带限,采样间隔为 T,采样率 fₛ=1/T,并满足采样频率高于信号最高频率的两倍,则理想条件下可写为:

x(t) = Σ[n=-∞…∞] x[n] · sinc(t/T-n)

每个采样值 x[n] 都乘上一条以 t=nT 为中心的 sinc 曲线。因为 sinc(k)=0(k 为非零整数),某个采样点对应的曲线会在其他整数采样时刻为 0;所有曲线相加后,既穿过原采样点,也补出点与点之间的连续波形。

混叠与截断误差不是一回事

如果原信号含有超过奈奎斯特频率的成分,且采样前没有适当低通滤波,这些高频会折叠到低频,产生混叠;混叠发生后,仅靠插值不能恢复被混在一起的频率。实际系统只能使用有限数量的 sinc 系数,于是会出现截断误差,通带/阻带波纹和振铃。工程上常用窗化 sinc,多相 FIR 等方法在计算量,延迟和精度之间折中。

FFT 频域补零适用于把有限序列按周期延拓并做带限插值的场景;边界是否连续,归一化方式和输入长度都会影响结果,不能把它当成适用于任意有限信号的“无误差重建”。

“香农–惠特克插值”标准名是 Whittaker–Shannon interpolation formula,也叫 sinc 插值 / 理想 D/A 重建公式。它是采样定理的另一面——告诉你采样点怎么完美拼回连续信号

公式

给定离散采样 x[n]=x(nT),重建连续信号:

x(t)=n=−∞∑∞​x[n]sinc(Tt−nT​)=n=−∞∑∞​x[n]sinc(Tt​−n)

其中归一化 sinc:

sinc(u)=πusin(πu)​,sinc(0)=1

📌 注意区分:信号处理里 sinc 是 sin(πu)/πu;数学/物理系有时定义成 sinu/u,差个 π,看论文先确认。

怎么推(一句话版)

采样过程 ≈ 原信号 × 冲激串 → 频域是 X(f)以 fs​=1/T周期复制。

要还原,就得把一个周期(∣f∣<fs​/2)抠出来 → 时域等价于冲激串和 sinc 做卷积

x(t)=(n∑​x[n]δ(t−nT))∗sinc(Tt​)

sinc 的傅里叶变换是理想砖墙低通(矩形窗 ∣f∣<1/(2T)),所以这就是一个增益 1 的理想 LPF。

成立前提

  • 原信号严格带限,B<fs​/2(奈奎斯特条件)
  • 采样无限长(n∈Z),公式才绝对收敛
  • 破任一条件 → 混叠(aliasing),重建失真

为什么工程上”用不了原版”

理想 sinc 插值三个致命伤:

问题说明
无限长求和从 −∞到 +∞,实际只能截断
Gibbs 振铃截断 → 频域不再是砖墙,边界处振铃
算得慢每补一个点都要和所有采样点卷积,O(N²)

工程里怎么”近似”它

场景做法
DAC 重建零阶保持(台阶)+模拟 LPF,或一阶保持(三角)
高精度重采样截断 sinc + 窗函数(Hamming/Kaiser),折中振铃与精度
图像缩放Lanczos​ = 2D 截断 sinc×sinc,再乘 Lanczos 窗(三次卷积的进阶版)
实时音频多相 FIR + 分数延时滤波器组,等效”预计算好的 sinc 表”
超长信号怕慢FFT 域补零 → 逆 FFT,比时域卷积快得多

有限长序列实用写法(重采样到任意位置 d):

x^(d)=n=0∑N−1​x[n]sinc(d−n),d∈R

d非整数时就是在两个采样点之间插值。

一句直觉

sinc 插值的本质:每个采样点往外”泼”一个 sinc 波形,所有泼出去的叠加起来,恰好在采样时刻等于原值、在非采样时刻填出连续信号——前提是你的信号没超过奈奎斯特频率。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注