0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

过采样4:提高ADC分辨率实例(终篇)

工程师看海 来源:硬件工程师看海 作者:硬件工程师看海 2021-04-14 09:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

原文来自公众号:硬件工程师看海

公众号后台回复:过采样有更多资料

这应该是过采样系列的最后一篇文章,经常有同学在使用FPGA单片机或者DSP进行过采样时没有正确设计代码,导致结果异常,有些结果看似正常,而实际却没有意义。

这篇文章涉及到简单的整型数据和算术运算,希望能有所帮助,仅供参考。

举栗子,理想的8 bit ADC,编码范围是0-255,在参考电压是255mV的情况下,分辨率是1mV。

对一个理想的9.6mV直流电压进行采样,ADC无法分辨小数点后的0.6mV,采样结果会被编码为10,即10mV。

过采样有效是有前提条件的,在这里是对9.6mV的直流电压加随机噪声。

过采样

对叠加噪声后的信号进行4次采样,理论上应该得到[9.8, 9.6, 10.4, 9.6]4个离散的样本点,而受到ADC分辨率的限制,实际只能得到[10, 10, 10, 10]4个编码样本,所有样本点都只能分布在。。。8、9、10。。。整数上。

接下来就对这4个样本点详细介绍,直观的感受过采样的原理。

假设信号带宽为B,我们分别分析采样频率F为2B sps/S和8B sps/S两种情况。

当采样频率为2B时,过采样率OSR1=F/(2B)=1;

当采样频率为8B时,过采样率OSR4=F/(2B)=4;

OSR4/OSR1=4,即过采样率提高了4倍(注意:是提高了4倍),其分辨率应该会增加1bit。

过采样系列一:采样定理与过采样率

继续以上面采样9.6mV信号举栗子。

当以采样频率F=1采样时,采集的结果是[10, 10,10, 10]中的任意一个,对应二进制(0000 1010)。

当以采样频率F=4采样时,采集的结果是[10, 10,10, 10]4个序列。

下面对F=4的4个数据进行下抽处理(降采样),可以减少计算量增加分辨率。

抽取

ADC是8bit的分辨率,但是在过采样计算时,不能定义并初始化一个8bit的整形数据,如果初始化8bit的数据,计算过程会溢出,最终结果的位宽还是8bit,并没有增加分辨率,在这里我们定义一个16bit的数据,预留了足够的buffer。

对采样得到的4个8bit数据求和运算,需要计算最大位宽,求和后的最大位宽为8+2=10bit,相当于左移了2bit,变为10bit。

如果只是简单的求平均,求和后的结果再除以采样个数4的话,则数据其实是右移2bit,又变回原来的8bit位宽,并没有增加分辨率。

在这里我们选择下抽方法是求和后除以2,即右移1bit,则数据从10bit变为9bit,相比于原始的8bit,增加了1bit分辨率(过采样容易理解,更重要的是下抽)。

过采样系列二:量化误差与过采样率

过采样率为4时,采样的4个数据序列[10, 10,10, 10]求和后是40,对应二进制(00 0010 1000),右移1bit后变为20,对应二进制(0 0001 0100)

255mV参考电压下,原始的8bit ADC,分辨率为1mV,采集的数据是9(0000 1001),即9mV;

过采样率增加4倍后:

255mV参考电压下,9bit ADC,分辨率为0.5mV,采集的数据是20(0 0001 0100),即10.0(9.98)mV;

过采样率增加4倍的前提下,只提高了1bit分辨率,效果不是很明显,继续在9.6mV基础上添加随机噪声,这次过采样率再增加4倍,达到16倍,即采样速率F=16,对16个采样序列进行计算举例。

对采样得到的16个8bit数据求和运算,最大位宽是8+4=12bit。

求和:10*8+9*7+11=154,对应二进制是(0000 1001 1010),再右移2bit,则变为10bit的38(00 0010 0110),(再次强调,不能简单的求和然后求平均)。

9.6mV加噪信号:

1、255mV参考电压下,原始的8bit ADC,分辨率为1mV,采集的数据是9(0000 1001),即9mV

2、过采率为4后:

255mV参考电压下,9bit ADC,分辨率为0.5mV,采集的数据是20(0 0001 0100),即10.0(9.98)mV;

3、过采率为16后:

255mV参考电压下,10bit ADC,分辨率为0.25mV,采集的数据是38(00 0010 0110),即9.47mV;

从列举的例子可以看出,过采样率是可以提高分辨率的,但是提高采样速率来提高分辨率的代价是巨大的(牛顿第三定律:得到点东西时总要舍弃点什么^_^)。

感谢转发、赞赏、分享。

分享,让知识更简单。

---------------------分割线---------------------

公众号往期干货:

华为海思软硬件开发资料

电感参数有哪些?怎么选择电感?

工程师必须知道的LDO工作原理

怎么选择BUCK降压电源的电感?

电源模块可以并联使用吗?!

你知道电感和磁珠的6大区别吗?

一文理解电荷泵电源原理

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    559

    文章

    8217

    浏览量

    364029
  • adc
    adc
    +关注

    关注

    100

    文章

    7419

    浏览量

    553831
  • 分辨率
    +关注

    关注

    2

    文章

    1120

    浏览量

    43247
  • 采样
    +关注

    关注

    1

    文章

    128

    浏览量

    26390
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    通过ADC采样提高测量的分辨率

    在大多数情况下,10位的分辨率就足够了。但在某些情况下需要更高的精度。采用特殊的信号处理技术可以提高测量的分辨率
    发表于 07-03 09:54 2663次阅读
    通过<b class='flag-5'>ADC</b>的<b class='flag-5'>过</b><b class='flag-5'>采样</b><b class='flag-5'>提高</b>测量的<b class='flag-5'>分辨率</b>

    如何通过过采样提高ADC分辨率

    通过过采样提高ADC分辨率
    发表于 02-10 08:05

    ADC的噪声、ENOB及有效分辨率

    噪声计数。同样,采用相同的无噪声分辨率值,该例可得218.9,合489178个无噪声计数。  Δ-ΣADC采样  Δ-Σ ADC采用一种
    发表于 11-26 16:48

    ADC分辨率可以通过采样的方式提高吗?

    ADC分辨率是16位,用过采样的方式将分辨率提高到20位。ADC最大的
    发表于 11-30 10:33

    怎样通过单片机ADC采样来提升采样分辨率

    什么是采样呢?怎么利用过采样实现更高的分辨率呢?怎样通过单片机ADC
    发表于 02-28 09:12

    如何实现STM32 MCU的16位ADC分辨率

    STM32 MCU 具有 12 位 ADC 分辨率,但一些 MCU 声称“高达 16 位硬件采样”。当我在 STMCubeMX 中设置 ADC
    发表于 12-01 06:11

    通过过采样提高SOC单片机片内A_D分辨率

    叙述了基于采样技术,使用软件方法提高单片机片内A/ D 分辨率的基本原理及实现方法。给出了一个实现示例,将C8051F040 片内12 位分辨率
    发表于 03-20 14:07 18次下载

    利用过采样技术提高ADC测量分辨率

    提出了用过采样技术使在有用的测量频带内的信噪比得到改善, 从而提高ADC 测量的分辨率。并利用Matlab 对其结论进行仿真, 且在TMS320L F2407 DSP 上予以实现,结果
    发表于 03-20 14:09 41次下载
    利用过<b class='flag-5'>采样</b>技术<b class='flag-5'>提高</b><b class='flag-5'>ADC</b>测量<b class='flag-5'>分辨率</b>

    太秀了!单片机内置ADC实现高分辨率采样

    相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。可是高分辨率
    发表于 01-25 06:58 8次下载
    太秀了!单片机内置<b class='flag-5'>ADC</b>实现高<b class='flag-5'>分辨率</b><b class='flag-5'>采样</b>?

    AD9260:2.5 MHz输出字下16位分辨率的高速采样CMOS ADC数据表

    AD9260:2.5 MHz输出字下16位分辨率的高速采样CMOS ADC数据表
    发表于 04-17 17:07 14次下载
    AD9260:2.5 MHz输出字<b class='flag-5'>率</b>下16位<b class='flag-5'>分辨率</b>的高速<b class='flag-5'>过</b><b class='flag-5'>采样</b>CMOS <b class='flag-5'>ADC</b>数据表

    如何通过过采样的方式提高有效位分辨率

    位(比特)分辨率采样率是模数转换器(ADC)最重要的两个参数。高位分辨率ADC可以有效地减少由采样
    的头像 发表于 01-21 14:20 7534次阅读
    如何通过过<b class='flag-5'>采样</b>的方式<b class='flag-5'>提高</b>有效位<b class='flag-5'>分辨率</b>

    通过ADC采样提高测量分辨率的方法

    在大多数情况下,10位的分辨率就足够了。但在某些情况下需要更高的精度。
    的头像 发表于 07-03 09:49 5355次阅读
    通过<b class='flag-5'>ADC</b>的<b class='flag-5'>过</b><b class='flag-5'>采样</b><b class='flag-5'>提高</b>测量<b class='flag-5'>分辨率</b>的方法

    STM32的12位ADC采样实现16位分辨率

    采样技术是一种以牺牲采样速度来提高ADC分辨率的技术。部分STM32单片机是支持硬件
    的头像 发表于 10-12 10:19 1.2w次阅读
    STM32的12位<b class='flag-5'>ADC</b><b class='flag-5'>过</b><b class='flag-5'>采样</b>实现16位<b class='flag-5'>分辨率</b>

    采样ADC12以获得更高分辨率

    电子发烧友网站提供《采样ADC12以获得更高分辨率.pdf》资料免费下载
    发表于 10-22 10:16 1次下载
    <b class='flag-5'>过</b><b class='flag-5'>采样</b><b class='flag-5'>ADC</b>12以获得更高<b class='flag-5'>分辨率</b>

    提高SAR ADC分辨率

    电子发烧友网站提供《提高SAR ADC分辨率.pdf》资料免费下载
    发表于 10-25 09:11 0次下载
    <b class='flag-5'>提高</b>SAR <b class='flag-5'>ADC</b>的<b class='flag-5'>分辨率</b>