资源描述:
《ADC的过采样技术.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ADC 的 过采样技术其实原理很简单,很容易明白,怎样实现提高分辨率?假定环境条件:10位ADC最小分辨电压1LSB为1mv假定没有噪声引入的时候,ADC采样上的电压真实反映输入的电压,那么小于1mv的话,如ADC在0.5mv是数据输出为0我们现在用4倍过采样来,提高1位的分辨率,当我们引入较大幅值的白噪声:1.2mv振幅(大于1LSB),并在白噪声的不断变化的情况下,多次采样,那么我们得到的结果有真实被测电压 白噪声叠加电压 叠加后电压 ADC输出 ADC代表电压 0.5mv 1.2mv 1.7mv 1
2、 1mv 0.5mv 0.6mv 1.1mv 1 1mv 0.5mv -0.6mv -0.1mv 0 0mv 0.5mv -1.2mv -0.7mv 0 0mvADC的和为2mv,那么平均值为:2mv/4=0.5mv!!! 0.5mv就是我们想要得到的这里请留意,我们平时做滤波的时候,也是一样的操作喔! 那么为什么没有提高分辨率?????是因为,我们做滑动滤波的时候,把有用的小数
3、部分扔掉了,因为超出了字长啊,那么0.5取整后就是0了,结果和没有过采样的时候一样是0, 而过采样的方法时候是需要保留小数部分的,所以用4个样本的值,但最后除的不是4,而是2! 那么就保留了部分小数部分,而提高了分辨率!从另一角度来说,变相把ADC的结果放大了2倍(0.5*2=1mv),并用更长的字长表示新的ADC值, 这时候,1LSB(ADC输出的位0)就不是表示1mv了,而是表示0.5mv,而(ADC输出的位1)才是原来表示1mv的数据位, 下面来看看一下数据的变化:ADC值相应位 98765432100.5mv测量值
4、 0000000000 0mv(10位ADC的分辨率1mv,小于1mv无法分辨,所以输出值为0) 叠加白噪声的4次过采样值的和 0000000010 2mv滑动平均滤波2mv/4次 0000000000 0mv(平均数,对改善分辨率没作用)过采样插值2mv/2 00000000001 2mv/2=0.5mv,将这个数作为11位ADC值,那么代表就是0.5mv 这里我们提高了1位的ADC分辨率这样说应该就很简单明白了
5、吧,其实多出来的位上的数据,是通过统计输入量的分布,计算出来的, 而不是硬件真正分辨率出来的,引入噪声并大于1LSB,目的就是要使微小的输入信号叠加到ADC能识别的程度(原ADC最小分辨率).理论来说,如果ADC速度够快,可以无限提高ADC的分辨率,这是概率和统计的结果但是ADC的采样速度限制,过采样令到最后能被采样的信号频率越来越低,就拿stm32的ADC来说,12ADC,过采样带来的提高和局限分辨率 采样次数 每秒采样次数12ADC 1 1M13ADC 4 250K14ADC 16 62.5K15
6、ADC 64 15.6K16ADC 256 3.9K17DC 1024 97618ADC 4096 24419ADC 16384 6120ADC 65536 15要记住,这些采样次数,还未包括我们要做的滑动滤波, 看到这些文档,啰啰嗦嗦说一大堆公式什么的,忍不住就随便写了些, 如果我是做IC的,我一定要求把文档写到白话文一样,小学生都能看明白的,自然小学生都会用,人多用了,才有钱赚嘛, 都不知道这些芯片厂是怎么推广的,写一大堆公式有什么用,这么复
7、杂的芯片都设计了,写个文档却马马虎虎, 其实不管多复杂的公式,实现起来还不是加减乘除,废话少说,有时间再写了......