每日精学 145|零填充DFT的谱插值

2026-09-25

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

时域零填充只在相同有限记录的DTFT上增加采样点,可以改善峰值读取栅格,但不提高由观测时长决定的真实分辨能力。

01
模型与符号

原记录长N,追加零到 P=LN 点,不改变原有样本或窗函数。

N:非零记录长度(sample)

P:零填充DFT长度(point)

X(ω):有限记录DTFT(幅度谱)

Δ f:频率栅格间隔(Hz)

02
从模型到公式

相同DTFT采样

补零后DFT为

X_P[k]=\sum_{n=0}^{N-1}x[n]e^{-\mathrm j2\pi kn/P}=X(2\pi k/P).

当P=LN且k=Lr时

X_P[Lr]=X_N[r].

旧频率点被原样保留。

插值表达

将原N点逆DFT代回有限求和,得到

X_P[k]=\frac1N\sum_{r=0}^{N-1}X_N[r]\sum_{n=0}^{N-1}e^{-\mathrm j2\pi n(k/P-r/N)}.

内层为Dirichlet核,表明新频点由原DFT确定,不增加独立信息。


栅格与分辨率

栅格从 fs/N 变为

\Delta f_{grid}=f_s/P.

但矩形记录单音主瓣第一零点仍位于真实频率两侧 fs/N;补零不改变N或观测时间,因此不能把更细网格称为更窄主瓣。

零填充不改变观测窗的主瓣宽度

零填充只是对同一有限记录的连续频率傅里叶表达式取更多样本。长度 N 的矩形窗单音,其频谱幅度含 Dirichlet 核:

|X(\omega)|=\left|\frac{\sin[N(\omega-\omega_0)/2]} {\sin[(\omega-\omega_0)/2]}\right|.

最近零点位于 ω0±2π/N,由真实观测长度决定。

把 FFT 长度改为 M>N,网格间距变为

\Delta\omega=2\pi/M,

但零点位置不变。更密网格可降低直接选最大栅格点造成的读数误差,也有助于观察已有峰形;

它不等价于延长观测时间,不能保证将原先重叠的两个主瓣分开。

03
物理含义

更多绘图点描绘同一条连续频谱曲线,能减小峰值采样误差,却无法创造未被观测到的时间信息。

04
固定参数算例

对64点非整周期复单音补零到512点,验证旧频点完全一致、DTFT直接求和一致,并比较峰值读取误差。

固定参数数值验证结果
量数值
记录长度64
FFT 长度512
retained grid error4.4408920985e-15
direct dtft error2.24731189975e-13
coarse peak error0.0046875
fine peak error0.00078125
first null offset0.015625
first null magnitude8.46117831115e-14
图 1:零填充DFT的谱插值的理论关系与固定参数验证图 1:零填充DFT的谱插值的理论关系与固定参数验证

图 1 零填充DFT的谱插值的理论关系与固定参数验证

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

05
数字实现的边界

RTL实现补零门控,输入a为样本、b为块内索引;仅 0≤ b<64 时输出a,其余输出0。块长度512及缓存调度由外部负责。 RTL 采用同步有效信号和异步低有效复位;

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

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

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

06
适用范围

零填充常用于频谱显示、单峰读取和局部频率估计的初始搜索。其收益是减小频率网格对峰值位置和幅度的采样误差。需要分辨邻近分量时,应增加有效观测时长或改变估计模型,而不是只扩大FFT数组。

07
工程上需要注意

频率估计仍受噪声、泄漏和多音耦合影响。

补零不能修复截断造成的泄漏。

幅度归一化应使用有效记录或窗和,而非盲用补零长度。

时域零填充只在相同有限记录的DTFT上增加采样点,可以改善峰值读取栅格,但不提高由观测时长决定的真实分辨能力。

内容依据:每日精学第 145 课《零填充DFT的谱插值》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读8
分享
写评论...