欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

ATE测试中的Tabei-Ueda插值算法

时间:2026-09-04 23:02来源:数字IC中后端 作者:ictest8_edit 点击:

 

PLL频率测试,怎么就卡在频率分辨率上

做PLL频率测试时,最常见的手段是把输出信号采样后做FFT,然后在频谱里找峰值。这个方法简单粗暴,但对FFT的固有缺陷视而不见:频率分辨率由采样时长决定,公式是 Δ f = fs / N。比如采样率是1GHz,采了65536个点,那bin宽度大概是15.26kHz。换句话说,FFT能告诉你的频率精度也就到15kHz这个量级。

PLL输出频率的精度指标通常在ppm级别。拿一个2.4GHz的PLL举例,要求频率偏差不超过±50ppm,也就是±120kHz。看起来15kHz的分辨率好像够用?但工程测试不会只测一个频点,往往要覆盖全频段、多个配置寄存器组合,测试时间被压得很紧,采样点数不可能无限增加。

另一个问题更隐蔽:FFT是离散化的,真正信号频率几乎不可能正好落在某个bin的中心。如果信号频率在两个bin之间,峰值会“摊开”到相邻的几个bin上,直接在幅值最大的bin上取频率,误差最大可以达到半个bin。这就是所谓的栅栏效应(picket fence effect)。

如果不做任何处理,这个误差是系统性存在的,而且你用更高分辨率的ADC也解决不了——问题出在离散傅里叶变换本身对连续频谱的采样上。
所以工程上必须想办法在bin之间“插值”,把真实频率的位置估计出来。经典的插值方法有几类,包括抛物线拟合、Jacobsen方法、Quinn方法,以及这里要说的Tabei-Ueda插值。


用两根谱线的比值,算出亚bin级偏移


 

Tabei-Ueda方法的推导起点是矩形窗FFT的频谱特征。

对单频信号 x[n] = A (2π f0 n / fs+ φ) 加矩形窗做N点FFT后,得到的频谱在第 k 个bin上的值(忽略负频率成分的影响)可以写为:

 
 

 
其中 W(·) 是矩形窗的频域响应,k0 = f0 N / fs 是信号的“真实bin位置”,通常是个小数。矩形窗的幅度响应是Dirichlet核:

 
 

 
从这可以推出,在信号真实位置 k0 附近,左边相邻bin和右边相邻bin的幅度比包含了 k0 的信息。Tabei-Ueda方法正是利用了这一点。
设 l 是最大幅值bin的索引,u = l+1 是相邻的次大bin(假设信号频率在 l 和 l+1 之间),定义两个量:

 
 

 
这个 h 是对称性的度量:如果 k0 恰好等于 l,那 |X[l+1]| = |X[l-1]|,h=0;当 k0 偏向 l+1 时,h 为正;偏向 l-1 时,h 为负。

然后定义:
 
 

 
Tabei-Ueda方法的核心是把 α 和频率偏移量 δ = k0 - l 用一个三次多项式关联起来:

 
 
 
这里 δ 的范围是(-0.5, 0.5)。当 h=0 时 α=0,δ=0,跟直觉一致;当信号恰好落在两个bin的正中间时,|X[l+1]| 远大于 |X[l-1]|,α 接近0.5,δ 也接近0.5,同样符合物理直觉。
得到 δ 后,信号频率就是:
 
 
 
这个三次近似形式不是随便拍的。它来自矩形窗Dirichlet核在小偏移时的精确表达式做级数展开,取前三阶项。别小看这个近似,在 δ (-0.5, 0.5) 的范围内,这个近似引入的最大频率误差约在0.02个bin以内,对绝大多数PLL测试场景已经足够。

数学细节和实现流程


有人会问:为什么用三个bin(l-1、l、l+1)而不是两个?两个bin(l 和 l+1)的幅值比也能推出 δ,但那需要假设负频率成分可以忽略,在低频段这个假设不成立。Tabei-Ueda用三个bin做对称差,可以在很大程度上抵消负频率成分和直流偏置带来的误差

 

还有一种特殊情况:当 h 恰好等于0.5或-0.5时,信号正好卡在两个bin的正中间,α = h/2 = 0.25。这时 δ 的绝对值就是0.5,也就是说频率在两个bin的分界线上。这是边界条件,Tabei-Ueda方法在这种情况下也能正确处理。

在DSP实现上,Tabei-Ueda插值的流程是:

1. 对采样序列做加窗FFT(通常加矩形窗或汉宁窗,取决于你的旁瓣抑制需求)

2. 搜索幅度谱找到峰值bin l

3. 取 l-1、l、l+1 三个bin的幅度值

4. 计算 h 和 α

5. 用公式 δ = 2α - α3 得到频率偏移

6. 计算 f0 = (l+ δ) · fs / N

整个流程只需要三次乘法和一次除法,计算量成本几乎可以忽略不计。相比之下,要做ZFFT(Zoom FFT)或者chirp-Z变换,硬件开销大得多,而且测试时间会更长——这两个因素在ATE量产测试里都非常敏感。

不过有个前提必须说清楚:Tabei-Ueda插值的前提是频谱中只有一个主峰。如果是多音信号、存在强谐波或者杂散靠近主频,插值结果会被污染。好在PLL测试场景里,基波能量通常远超其他成分,这个前提基本是成立的。

窗口函数的影响和工程取舍


Tabei-Ueda原始论文里用的是矩形窗,但没有说其他窗不行。实际上,加不同的窗对应不同的插值公式,但思路是一致的:建立偏移量 δ 与幅度比值之间的映射关系。

 

用汉宁窗时,旁瓣衰减更快,频谱泄漏更小,但主瓣更宽。这会导致一个问题:δ 与幅度比的关系曲线更“陡”了,对噪声更敏感。如果你在ATE测试环境里用汉宁窗加Tabei-Ueda插值,要把参考曲线标定准确,否则系统误差会盖过插值带来的精度收益。

矩形窗的主瓣最窄,频率分辨能力本身是最好的,但旁瓣衰减只有约13dB。对PLL测试来说,如果PLL有参考杂散或者整数边界杂散,这些杂散离主峰很近,矩形窗的旁瓣会干扰插值精度。工程上有时候会在插值之前先做一个简单的矩形窗FFT,看看目标峰附近有没有强干扰成分,有的话再切到更高旁瓣衰减的窗。

还有个细节是关于谱线幅值精度的。Tabei-Ueda方法用的是幅值(magnitude)而非功率,所以不需要考虑加窗带来的相干增益补偿问题——幅度比值在计算过程中自动抵消了窗函数的增益因子。但前提是你对三个bin取的是同一个窗的FFT结果。

实际测试流程里,特别是量产测试,量化噪声和时钟抖动都会对幅度测量引入误差。设采样点数 N=8192,一个满量程正弦信号在理想ADC下的SNR大约是 6.02B+ 1.76 dB,B 是有效位数。10-bit有效位数的ADC给出约62dB SNR,折算到幅度误差大约1%。这个误差传导到 α 上大概有0.01量级,再传导到 δ 上会带来约0.02bin的误差。用Tabei-Ueda公式计算出的频率精度,完全取决于ADC的位数——这就是它的“天花板”。

很多做ATE的工程师会想:那我用更高位数的ADC不就完事了?但成本上去了。Tabei-Ueda方法的优势就在于:在同等ADC位数下,你把频率估计精度提高了1-2个数量级。从10bit ADC的约0.5bin误差到插值后的0.02bin误差,这个改善在工程上是实打实的。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片