来谈谈:神奇的过采样技术

john_wang   2010-4-14 14:54 楼主
此前参加嵌入式系统联谊会,被天津大学精密仪器与光电子工程学院 李刚老师的讲解,震动着,

这里拿出来与大家分享,同时也期待着大家谈谈对过采样技术的理解。

1.jpg

2.jpg

回复评论 (8)

3.jpg


4.jpg
点赞  2010-4-14 14:55
5.jpg


附:嵌入式系统联谊会上 讲稿
点赞  2010-4-14 14:55
这个很不错啊,呵呵
不断地学习,才会有创新! 淘宝小店:手机、qq点卡、游戏点卡自动充值 http://shop63727265.taobao.com/
点赞  2010-4-14 18:56
有必要请懂的人讲一下过采样技术
不断地学习,才会有创新! 淘宝小店:手机、qq点卡、游戏点卡自动充值 http://shop63727265.taobao.com/
点赞  2010-4-14 18:56
学习
点赞  2010-4-15 09:37
响应编辑同志号召,上传一个相关资料,我本人是不懂的,呵呵
点赞  2010-4-15 14:12
在模数转化时,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 位。
点赞  2010-4-16 23:25
提高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 个采样值。由此可以看出:对于给定的采样速率,应在分辨率和吞吐率之间权衡。另一个需要考虑的问题是增加
分辨率需要增加计算时间。
点赞  2010-4-16 23:26
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复