科普:过采样基本知识介绍

云脑智库 2021-12-20 00:00


来源 | 工程师看海

智库 | 云脑智库(CloudBrain-TT)

云圈 | “云脑智库微信群”,请加微信:15881101905,备注您的研究方向

数字世界是现实世界的镜像,模数转换器ADC则是连接这两个世界的大门。采样速率是ADC重要参数之一,围绕采样速率,有一条著名的定理:奈奎斯特采样定理。

采样定理:

只要采样频率大于或等于有效信号最高频率的两倍,采样值就可以包含原始信号的所有信息,被采样的信号就可以不失真地还原成原始信号。








采样定理是美国电信工程师H.奈奎斯特在1928年提出的,在1948年,信息论的创始人C.E.香农对这一定理加以明确地说明并正式作为定理引用,因此在许多文献中又称为香农采样定理。




为方便介绍,我们统称之为采样定理。

在详细介绍采样定理之前,我们一定要知道一个非常有趣的频率现象:‘任何模拟信号,在离散化后,在频率上都会按照采样率周期性延拓。’

先抛个问题:

我们以fs=100Hz的采样率,采集一段模拟信号,得到了100个采样点,我们能够重构出原始的模拟信号,得到模拟信号的频率信息吗?







理论来讲是不可能的,模拟信号一旦经过采样离散化后,其波形就已经失真了,我们永远无法完美的重构原始模拟信号。

其中一个重要原因是,我们无法区分离散后信号的频率信息。

我们从时域和频域两个方向分别理解:‘我们无法区分离散后信号的频率信息’这句话的意义。

时域解释

下图蓝色点是采集后的一段离散序列,我们无法知道采样的原始信号是红色曲线还是蓝色点直连重构的曲线。




通常情况下,我们重构采集后的离散点方法是直接连接相邻采样点。

基于这样的方法,我们直接重构后的最低频率为fa,而理论上可以提取出(fa+n*fs)Hz的信号(n为≥0的整数,fa为原始信号频率,fs为采样频率)。

比如一段频率为fa=10Hz的模拟信号,经过采样频率fs=100Hz后,离散后的信号可以重构为10Hz、110Hz、210Hz。这个特性就是信号频率的模糊性

频域解释

一段频率为带限为fa的模拟信号,经过采样频率fs采样后,其在频谱上的波形会按照fs周期性复现,波形见下图。




这是一个非常有趣的现象,可以看到时域的结果和频域的分析是统一的。

而这里面就隐含着著名的采样定理。

同样的,我们从时域和频域分别看下采样定理的理解。

时域分析

在时域的角度下,当一个周期采集点数少于2个时,我们直连采样点重构信号,则频率就错了;而当一个周期采集两个采样点时,采用直连的重构方式,我们起码可以得到原始信号的频率信息。




频域解释

如下图所示,当fs<2fa时,周期性复现的带限信号,会有红色重叠的地方,这会导致我们失去原始带限信号的基本频率信息,俗称频谱混叠




如上就可以提炼出采样定理的基本要义了。

采样定理与过采样率

上文中的fa是信号的带限(信号的最大频率范围),2*fa是采样定理的基本要求;M*2*fa中,M就是过采样率,过采样率是对‘采样定理的最低采样频率’而言的。

过采样率M每提高4倍,可以让ADC分辨率B提高1bit。举例如下:

过采样率分别为4、16、64,ADC分辨率B分别会提高1、2、3bit。这个后面会继续深入介绍。

具体原理与实现,公众号会继续更新。

然而过采样并不是一直都有效的,它也会有限制因素,这个也是后话,咱们后面一一说明。

傅里叶变换的提出让人们看问题的角度从时域变成了频域,多了一个维度。快速傅里叶变换算法的提出普及了傅里叶变换在工程领域的应用,在科学计算和数字信号处理等领域,离散傅里叶变换(DFT)至今依然是非常有效的工具之一。




比如下图是一个幅度为1、频率为2Hz的正弦波和它的离散傅里叶变换后的结果。

可以得到原始matlab代码




信噪比(SNR)是信号与噪声的比率,它是衡量通信或模拟系统性能的重要指标之一,与傅里叶变换更是有千丝万缕的联系。在很多情况下,我们是通过傅里叶变换来评估信噪比,如果评估方法不对,很难的到我们期望的结果,经常会事与愿违。




求解SNR的过程,我们是用‘评估SNR’来描述,这就是说我们无法精确计算出SNR,只能进行评估,事实也是如此。

评估SNR的方法分为时域和频域两种。我们以一组离散样本点为分析目标,看下如何评估SNR,及其误区。

时域估计SNR

Xs(n)为信号序列,Xn(n)为噪声序列,则信号X(n)=Xs(n)+Xn(n),是一组带噪离散序列,在时域上评估X(n)的信噪比公式如下:




其意义为分别求取离散信号、噪声功率和,计算二者之比。这里有个前提是,我们需要分离出信号与噪声,然后才能求解,

然而问题也在于此,对于一段给定的离散时间序列,我们很难完全分离出信号和噪声,所以时域评估SNR是有局限性的,而且不够直观,所以通常我们在频域下求解。

频域估计SNR

在频域上的SNR计算原理和时域很接近,还是求信号功率与噪声功率只比。最简单的方法是在频谱X(m)上设置阈值,阈值之上为信号,阈值之下为噪声。这样就会有阈值设置带来的估计准确性问题,同时信号频带范围内或多或少也会有噪声叠加进来,在频域计算SNR也是一个近似。




SNR以dB作为单位,SNR(dB)=10*log10(SNR)。

我们往往使用Matlab评估SNR,Matlab是非常强大的数学工具,其集成了SNR计算函数,如果应用不正确,误差会非常大,无法得到预期结果,举例如下。

下图是一个幅度为1、频率为2Hz的正弦波和它的离散傅里叶变换后的结果。




用Matlab SNR函数计算计算信噪比的结果如下,蓝色为感兴趣的信号成分,橙色为噪声。这个频域图就可以表征SNR,橙色的噪声数值越小、越低,说明信噪比越高、越好。即使红色圆圈部分有一点噪声,在评估单频率成分信号的SNR时,这依然是一个非常有效的手段。




假如一信号x(n)=sin(4pi*t)+0.5*sin(18pi*t),如下图是一个幅度为1、频率为2Hz的正弦波叠加幅度为0.5、频率为9Hz的正弦波的结果。




用Matlab SNR函数计算计算信噪比的结果如下,蓝色为感兴趣的信号成分,橙色为噪声,matlab舍弃了频率为9Hz、能量少的成分,只计算了2Hz信号的信噪比

所以倘若我们的感兴趣信号比较复杂,就不能直接用SNR函数直接计算。




所以我们一定要在理解DFT与SNR关系的基础上,正确使用matlab才能得到期望的SNR结果。

在过采样中,信噪比、ADC有效位数、过采样率是有千丝万缕的联系,了解了基本的概念后,我们一步一步理解过采样的原理。


数字世界是模拟世界的镜像,而ADC就是连接两个世界的大门。一切模拟信号一旦经过ADC离散化后,其幅值必然会失真,其重要原因是ADC分辨率有限,只能逼近真实幅值。

我们不可能抵达真理,只能无限的接近真理。




分辨率是ADC的重要参数之一,它和精度是两个不同的量,精度描述的是离散结果的准确性,而分辨率描述的是ADC能够分辨的最小信号,为1LSB。

换言之,分辨率高的ADC能区分出更小的信号,但其转化的结果准确性受精度限制。




一个8bit ADC,可分辨出256种电平,当输入范围是2.56V时,1LSB即为10mV。受分辨率限制,ADC输出值和实际值之间存在误差

下图是量化误差的示意图,对于变化小于1LSB的信号,ADC是无法区分出来的,输入和输出此时的误差即为量化误差




量化噪声的简化数学模型如下,

e(t)=st, -q/2s < t < +q/2s




根据输入信号、ADC分辨率和量化误差的关系,我们可以推导出一条重要的SNR计算公式。详细推导过程在公众号后台回复:过采样

下面就是经典的ADC SNR计算公式。

SNR = 6.02N + 1.76dB

 DC至fs/2带宽范围

如果使用数字滤波来滤除带宽BW以外的噪声成分,则等式中还要包括一个校正系数

或者写作

BW是信号带宽,FS是采样率,OSR=Fs/(2*BW)就是过采样率




我们所说的过采样率每提高4倍,可以提高ADC 1bit的有效分辨率就是根据上面的公式来的,过采样率可以参考以前文章:

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

为什么“过采样率每提高4倍,可以提高ADC 1bit的有效分辨率”?

举个栗子

当过采样率OSR为1时,

当过采样率OSR为4时,

对比公式1和公式2,只有红色框部分不同,即过采样带来的SNR收益和增加分辨率N是可以转化等效的

额外增加的位数N+:

N+=10log(OSR)/6.02,

当OSR=1,4,16,,,,时,N+=1,2,3,,,,,

这就是通常所说的,过采样率每增加4倍,可以提高1bit分辨率的原因。




那么是不是只要提高采样速率就可以提高分辨率了呢?

其实不对,从公式2可以看出,10log(4)变为10log(1)了,这个过程还需要降低采样,或者下抽,这么做除了降低数据量外,就是可以提高分辨率。

如何下抽,是一个学问,如果简单的求平均,往往只提高信噪比,达不到提高有效位数的目的,好多人在这里会采坑。

如何正确使用下抽来增加有效位数?量化误差与过采样率最经典的解释是频谱密度解释,篇幅有限,后面文章都会持续更新。


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

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

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

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

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

过采样

对叠加噪声后的信号进行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,采集的数据是10(0000 1001),即10mV

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;

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

- The End

声明:欢迎转发本号原创内容,转载和摘编需经本号授权并标注原作者和信息来源为云脑智库。本公众号目前所载内容为本公众号原创、网络转载或根据非密公开性信息资料编辑整理,相关内容仅供参考及学习交流使用。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请跟我们联系。我们致力于保护作者知识产权或作品版权,本公众号所载内容的知识产权或作品版权归原作者所有。本公众号拥有对此声明的最终解释权。

投稿/招聘/推广/合作/入群/赞助 请加微信:15881101905,备注关键词

“阅读是一种习惯,分享是一种美德,我们是一群专业、有态度的知识传播者.”

 阅读原文加入知识星球,发现更多精彩内容.

 分享💬 点赞👍 在看❤️@以“三连”行动支持优质内容! 

云脑智库 努力是一种生活态度,与年龄无关!专注搬运、分享、发表雷达、卫通、通信、化合物半导体等技术应用、行业调研、前沿技术探索!专注相控阵、太赫兹、微波光子、光学等前沿技术学习、分享
评论
  •         温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。        现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
    锦正茂科技 2024-12-03 11:50 111浏览
  • TOF多区传感器: ND06   ND06是一款微型多区高集成度ToF测距传感器,其支持24个区域(6 x 4)同步测距,测距范围远达5m,具有测距范围广、精度高、测距稳定等特点。适用于投影仪的无感自动对焦和梯形校正、AIoT、手势识别、智能面板和智能灯具等多种场景。                 如果用ND06进行手势识别,只需要经过三个步骤: 第一步&
    esad0 2024-12-04 11:20 58浏览
  • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
    刘旷 2024-12-02 09:32 119浏览
  • 概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
    coyoo 2024-12-03 12:20 111浏览
  • 《高速PCB设计经验规则应用实践》+PCB绘制学习与验证读书首先看目录,我感兴趣的是这一节;作者在书中列举了一条经典规则,然后进行详细分析,通过公式推导图表列举说明了传统的这一规则是受到电容加工特点影响的,在使用了MLCC陶瓷电容后这一条规则已经不再实用了。图书还列举了高速PCB设计需要的专业工具和仿真软件,当然由于篇幅所限,只是介绍了一点点设计步骤;我最感兴趣的部分还是元件布局的经验规则,在这里列举如下:在这里,演示一下,我根据书本知识进行电机驱动的布局:这也算知行合一吧。对于布局书中有一句:
    wuyu2009 2024-11-30 20:30 125浏览
  • 11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-02 23:58 73浏览
  • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
    电子与消费 2024-11-30 22:03 98浏览
  • 作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1  USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
    万象奥科 2024-12-03 10:24 68浏览
  • 学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
    youyeye 2024-11-30 14:30 78浏览
  • 当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
    紫光展锐 2024-12-03 11:38 101浏览
  • 遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
    Industio_触觉智能 2024-12-03 11:28 87浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2024-12-02 10:40 120浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 102浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦