当前位置: 首页 > 技术资料 > 过采样技术原理介绍

过采样技术原理介绍

QooIC.com 新闻出处:电子市场 | 发布时间:2011/7/7 14:43:33

  假定环境条件:10位ADC最小分辨电压1LSB 为1mv


  假定没有噪声引入的时候,ADC采样上的电压真实反映输入的电压,那么小于1mv的话,如ADC在0.5mv是数据输出为0


  我们现在用4倍过采样来,提高1位的分辨率,


  当我们引入较大幅值的白噪声:1.2mv振幅(大于1LSB),并在白噪声的不断变化的情况下,多次采样,那么我们得到的结果有


  真实被测电压    白噪声叠加电压    叠加后电压    ADC输出    ADC代表电压


  0.5mv             1.2mv          1.7mv          1           1mv


  0.5mv             0.6mv          1.1mv          1           1mv


  0.5mv            -0.6mv         -0.1mv          0           0mv


  0.5mv            -1.2mv         -0.7mv          0           0mv


  ADC的和为2mv, 那么平均值为:2mv/4=0.5mv 0.5mv就是我们想要得到的


  这里请留意,我们平时做滤波的时候,也是一样的操作喔!那么为什么没有提高分辨率


  是因为,我们做滑动滤波的时候,把有用的小数部分扔掉了,因为超出了字长啊, 那么0.5取整后就是 0 了,结果和没有过采样的时候一样是 0 ,


  而过采样的方法时候是需要保留小数部分的,所以用4个样本的值,但最后除的不是4, 而是2那么就保留了部分小数部分, 而提高了分辨率!


  从另一角度来说, 变相把ADC的结果放大了2倍(0.5*2=1mv),并用更长的字长表示新的ADC值,


  这时候, 1LSB(ADC输出的位0)就不是表示1mv了,而是表示0.5mv, 而(ADC输出的位1)才是原来表示1mv的数据位,


  下面来看看一下数据的变化:


  ADC值相应位                            9 8 7 6 5 4 3 2 1 0


  0.5mv测量值                            0 0 0 0 0 0 0 0 0 0   0mv(10位ADC的分辨率1mv,小于1mv无法分辨,所以输出值为0)


  叠加白噪声的4次过采样值的和     0 0 0 0 0 0 0 0 1 0   2mv


  滑动平均滤波2mv/4次               0 0 0 0 0 0 0 0 0 0   0mv(平均数, 对改善分辨率没作用)


  过采样插值2mv/2                     0 0 0 0 0 0 0 0 0 0 1   2mv/2=0.5mv, 将这个数作为11位ADC值, 那么代表就是0.5mv


  这里我们提高了1位的ADC分辨率


  这样说应该就很简单明白了吧, 其实多出来的位上的数据, 是通过统计输入量的分布, 计算出来的,


  而不是硬件真正分辨率出来的, 引入噪声并大于1LSB, 目的就是要使微小的输入信号叠加到ADC能识别的程度(原ADC最小分辨率)。


  理论来说, 如果ADC速度够快, 可以无限提高ADC的分辨率, 这是概率和统计的结果


  但是ADC的采样速度限制, 过采样令到最后能被采样的信号频率越来越低


  就拿stm32的ADC来说, 12ADC, 过采样带来的提高和局限


  分辨率   采样次数   每秒采样次数


  12ADC       1            1M


  13ADC       4            250K


  14ADC       16           62.5K


  15ADC       64           15.6K


  16ADC       256          3.9K


  17DC        1024         976


  18ADC       4096         244


  19ADC       16384        61


  20ADC       65536        15


  要记住,这些采样次数,还未包括我们要做的滑动滤波