很多应用场合需要使用模/数转换器ADC 进行参数测量,这些应用所需要的分辨率取决于信号的动态范围、必须测量的参数的最小变化和信噪比SNR。许多系统中既有很宽的动态范围又要求测量出参数的微小变化,因此就必须使用高分辨率的ADC。然而,高分辨率的ADC 器件价格昂贵,若使用价格相对低廉的具有较低分辨率的ADC 器件,通过一些技术也达到较高的分辨率,则在工程应用中是非常受欢迎的。过采样技术就可以提高模数转换的分辨率而实现该目的。 1 基本原理 ADC 转换时可能引入很多种噪声,例如热噪声、杂色噪声、电源电压变化、参考电压变化、由采样时钟抖动引起的相位噪声以及由量化误差引起的量化噪声。有很多技术可用于减小噪声,例如精心设计电路板和在参考电压信号线上加旁路电容等,但是ADC 总是存在量化噪声的,所以一个给定位数的数据转换器的最大SNR 由量化噪声定义。在一定条件下过采样和求均值会减小噪声和改善SNR,这将有效地提高测量分辨率。过采样指对某个待测参数,进行多次采样,得到一组样本,然后对这些样本累计求和并对这些样本进行均值滤波、减小噪声而得到一个采样结果。 由奈奎斯特定理知:采样频率fs 允许重建位于采样频率一半以内的有用信号,如果采样频率为40kHz,则频率低于20kHz 的信号可以被可靠地重建和分析。与输入信号一起,会有噪声信号混叠在有用的测量频带内(小于fs/2 的频率成分): erms 是平均噪声功率,fs 是采样频率,E(f)是带内ESD。 方程1 说明信号频带内的噪声能量谱密度ESD或被采样噪声的噪声平面随采样频率的增加而降低。 方程2 相邻ADC 码之间的距离或LSB。 为了说明过采样对噪声的影响,先定义量化噪声为:两个相邻ADC 码之间的距离对应的电压值。因为ADC 会舍入到最近的量化水平或ADC 码,所以 N 是ADC 码的位数, Vref是参考电压。 量化误差为(eq): 方程3 ADC 量化噪声的功率 假设噪声近似为白噪声,代表噪声的随机变量在ADC 码之间分布的平均值为0,则方差为平均噪声功率,计算如下: 方程4 过采样率定义。 用过采样率OSR 来表示采样频率与奈奎斯特频率之间关系: fs 是采样频率,fm 是输入信号的最高频率。 方程5 带内噪声功率是OSR 的函数。 如果噪声为白噪声则低通滤波器(对样本求均值)输出带内噪声功率为: n0 是滤波器的输出噪声功率。 方程5 说明,我们可以通过提高OSR 来减小带内噪声功率。由于过采样和求均值并不影响信号功率,即信号功率没有减小,而带内噪声功率却降低,显然信号的信噪比SNR就得到了提高,也就等效于ADC 的分辨率得到了提高。 方程6 噪声功率是OSR 和分辨率的函数。 可以从方程3、4 和5 得到下面这个反映噪声功率与过采样率和分辨率关系的表达式: OSR 是过采样率,N 是ADC 的位数,Vref是参考电压。 反过来给定一个固定的噪声功率,可以计算所需要的位数,解方程6 求N,得到用给定的参考电压、带内噪声功率及过采样率来计算有效位数。 方程7 有效位数是参考电压带内噪声功率和过采样率的函数。 从方程7 可以注意到:采样频率每增加1 倍,带内噪声将减小3 dB,而测量分辨率将增加1/2 位。 2 提高ADC 测量分辨率的示例 在实际应用中将一个信号的带宽限制到小于fs/2,然后以某个过采样率OSR 对该信号采样,再对采样值求平均值得到结果输出数据。每增加一位分辨率或每减小6dB 的噪声,需要以4 倍的采样频率fs 进行过采样。 fos=4w*fs w 是希望增加的分辨率位数,fs 是初始采样频率要求,fos是过采样频率。 方程8 增加测量分辨率的过采样频率 假设一个系统使用12 位的ADC,每秒输出一个温度值(1Hz),为了将测量分辨率增加到16 位,按下式计算过采样频率: fos=44*1(Hz)=256(Hz)。 因此,如果以fos=256Hz 的采样频率对温度传感器进行过采样,在所要求的采样周期内收集到足够的样本,对这些样本求均值便可得到16 位的输出数据。为此,先累加将256个连续样本加在一起,然后将总和除以256,这样的过程通常被称为抽取。 图1 是软件关键流程。 图1 一次过采样流程 假设某温度传感器的满度输出为10V,使用10V 的参考电压Vref ,温度的变化范围为500℃。可以计算对于12 位和16 位测量的代码宽度和温度分辨率(可测量的最小温度变化)。 在未使用过采样技术的情况下,可得到12 位的温度测量结果,其每码字对应的温度为: 500/4096=0.1221℃/code; 使用过采样技术的情况下,可得到16 位测量结果,其每码字对应的温度为: 500/(4096*16)=0.0076℃/code。 因此对于每个ADC 码,没采用过采样技术时,测量的最小温度变化是0.1221℃。当需要更高的温度分辨率,以便能分辨1%℃时,可以使用过采样和求均值技术,用同一个12 位ADC 达到这个分辨率,测量的最小温度变化是0.0076℃,这就允许以高于1%℃的精度对温度进行测量。 得到上述较好结果,是以牺牲CPU 的运行时间和占用内存资源为代价的,同时较低ADC 转换芯片也必须具有较高的转换速度,其转换速度必须满足过采样率OSR 的要求。否则,上述效果是得不到的。如果一个ADC 的最大采样速率是40ksps,在不采用过采样和求均值技术的情况下,可以得到40ksps 的输出字速率。但是,如果为达到较高的分辨率而采用过采样和求均值技术抽取,吞吐率将降低到初始值除以过采样率OSR。在我们所提供的例子中,过采样率OSR为256,输出字速率将是40ksps/256=156 个样本,即每秒钟有156 个采样值。由此可以看出:对于给定的采样速率,应在分辨率和吞吐率之间权衡。另一个需要考虑的问题是增加 分辨率需要增加计算时间。 3 使用过采样技术对应用的要求 过采样技术并不是对任何需要提高分辨率的应用都有效,它对应用有如下要求: - 噪声必须逼近白噪声,在整个有用频带内具有平均分布的功率谱密度。
- 噪声幅度必须足够大,能引起输入信号样本之间的随机变化,变化幅度至少为两个相邻代码之间的距离。
- 要求输入信号可以用一个在两个相邻ADC 代码之间具有等概率分布的随机变量表示(即过采样技术不能补偿ADC 的积分非线性误差INL)。
过采样技术对相关或不能用白噪声模拟的噪声例如反馈系统的噪声不起作用;另外,如果量化噪声的功率大于自然白噪声例如热噪声,过采样和求均值技术也不会有效,ADC 的分辨率较低时,就属于这种情况。大多数使用12 位ADC 的应用都可以从过采样和求均值技术获益。 4 结束语 如果ADC 噪声近似为白噪声,就可以使用过采样和求均值技术来提高SNR 和测量分辨率;该技术适用于静态直流测量和含有较高频率成分的输入信号的测量;每增加一位分辨率,可以通过用4 倍的过采样频率采样来达到,这些是以牺牲吞吐率和增加CPU 的运行时间为代价的。
|