微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > A/D转换器测试技术及发现ADC中丢失的代码

A/D转换器测试技术及发现ADC中丢失的代码

时间:11-20 来源:中电网 点击:
A/D转换器的量化噪声、丢失位、谐波失真以及其他非线性失真特性都可以通过分析转换器输出的频谱分量来判定。

确定由上述这些非线性特性所引起的转换器性能的下降并不困难,因为这些都呈现为A/D转换器的输出噪声中的一些杂散频谱分量以及背景噪声的增加。传统的测量方法是将模拟的正弦电压加到A/D转换器的输入端,然后测量转换器的数字化时域输出采样的频谱。

可以利用FFT来计算A/D转换器输出采样的频谱,但是为了改善频谱测量的灵敏度,必须将FFT频谱泄漏减到最小。但对于高性能的A/D转换器测试,传统的时域开窗无法足够地降低FFT泄漏。

解决FFT泄漏的诀窍是采用频率是A/D转换器时钟频率整数倍的模拟正弦输入电压,如图1(a)所示。该频率为mfs/N,m是整数,fs是时钟频率(采样率),而N是FFT点数。当理想A/D转换器的模拟输入为N = 128转换器输出的8个周期采样正弦波时,图1(a)中x(n)是其时域输出。

图1:当输入为一个模拟的8fs/128 Hz正弦曲线时,理想A/D转换器的模拟输入为:(a) 输出时域采样;(b) 以dB为单位的幅值。


该例中,输入频率被归一化到采样率fs,即8fs/128 Hz。mfs/N定义了离散傅里叶变换(DFT)的分析频率,或频率段中心(bin center),频率位于频率段中心的DFT输入正弦曲线不会引起频谱泄漏。

在图1(b)中,用对数坐标绘制了x(n)的128点FFT的前半部分,输入频率刚好位于m=8的频率段中心,FFT泄漏得到了有效减小。特别地,如果采样率为1MHz,则A/D的模拟输入频率将必须精确为8(106/128) = 62.5 kHz。

为了实现这一方案,需要确保模拟测试信号源与A/D变换器的时钟频率fs Hz保持精确同步。这也正是为什么A/D转换器测试过程被称作为相干采样的原因。

也就是说,模拟信号发生器和提供fs的A/D时钟发生器在频率上不能有彼此的漂移,必须保持相干(从语义上必须注意,有时候正交采样也被称作为相干采样,不过正交采样与这里的A/D转换器测试过程无关)。

正如所预见的那样,m中的某些值比其他的一些有利。注意图1(a)中,当m=8时,A/D转换器只输出9个不同的幅度值。这些值不断地反复。如上图2中所示,当n=7时,就要比9个不同的A/D输出值多很多。

图 2:7周期的正弦A/D转换器输出。



选m为一个奇素数

由于最好能够测试尽可能多的A/D输出二进制字,同时又要保持量化噪声足够随机,A/D测试方案的用户发现了另一个窍门。他们发现当m选为奇素数(3、5、7、11)时,能够将A/D输出字的重复减到最小。

下面的图3(a)显示了一个非线性A/D转换器工作的一个极端例子,有几个离散输出将采样位下降到m=8的时域x(n)中。图3(b)提供了这种失真的x(n)的FFT,与图1(b)进行比较,可以看到噪声背景增加了,这是因为A/D转换器的非线性所致。

图3:非理想的A/D转换器输出表现出几个丢失位:(a)时间采样;(b)频谱幅值(单位dB)。



真正的A/D转换器的量化噪声电平应该高于上图3(b)中所测得的结果。这是因为FFT的相关处理增益将高电平的m=8频谱分量在背景噪声中拔高所致。

因此,如果采用该A/D测试技术,必须计算图3(b)中所示10log10(N/2)的FFT处理增益。

为了充分表征A/D转换器的动态性能,需要在许多不同的频率和幅度上执行该测试。当然,加到A/D转换器上的模拟正弦信号必须尽可能地纯净。模拟信号中的任何固有失真都将在最终的FFT输出中表现出来,并导致A/D非线性问题。

关键的是任何输入频率都必须是mfs/N。为了满足奈奎斯特采样准则,这里m小于N/2,充分利用FFT的处理能力同时使频率泄漏最小。

为了量化转换器的互调失真,通常需要在A/D的输入端加上两个模拟信号,互调失真反过来又能表征转换器的动态范围。此时,两个输入信号都必须满足mfs/N限制。测试配置见图4。

图4:A/D转换器硬件测试配置。

当采用低通滤波器(BPF)来改善正弦波信号源输出信号的纯度时应谨慎,应该采用衰减量较小的固定衰减器(pads)来避免两个信号源相互影响。(建议采用3-dB衰减器)。

功率合成器(power combiner)通常是模拟功率分配器的反向应用,A/D时钟信号发生器的输出也是方波。上面图4中的点划线显示所有三个信号源被锁定到同一参考频率源上。

检测丢失的代码

一个影响A/D转换器的一个问题是丢失代码。当转换器不能输出一个特定的二进制字(一个代码)时将会产生这种问题。试想一下,当用一个模拟正弦波来驱动一个8位转换器,其输出二进制字应该是00100001(十进制的33),而实际输出则是00100000(十进制的32),就会造成这种问题,如图5所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top