过采样技术基本原理

本文介绍过采样技术基本原理。

过采样技术在ADC信号采集过程中使用还是比较多的。某些使用场景下,对采样速度要求并不是那么高(或ADC采样速度过剩),但是想要获取较高的分辨率,就会用到这种技术,如针对温度,压力等缓慢变化的传感器信号采集。过采样技术是典型的以牺牲采样速度换取有效分辨率的方法。

1.基本概念

1)适用范围:

采用过采样技术提高ADC分辨率,需满足以下条件:

a)输入信号有白噪声,且其功率均匀分布在我们感兴趣的频段

b)噪声需随输入信号变化的幅度超过1个LSB(也即测量输入信号抖动大于1个LSB),如果不超过1LSB,过采样提升有效位数没有意义

2)信噪比(SNR)

对于ADC而言,当输入信号是一个满量程的正弦信号,其信噪比(SNR)最大,有:

其中,N为ADC的分辨率。我们对N求导,可得:d(SNRdB)/d(N)=6.02,也就是说,1个bit的分辨率对应6.02dB的信噪比(SNR),提高了信噪比(SNR)就可以增加ADC的分辨率。这也是过采样技术的核心。

3)采样定理

采样定理从理论上指明了要想重建输入的模拟信号,采样频率fs必须大于等于输入模拟信号最高频率fm的2倍。即:

fs\geqfm*2

其中,fs为采样频率,fm为输入模拟信号最高频率

否则,信号会发生混叠,这也是为什么在ADC前端加抗混叠滤波器的原因。

4)过采样

假设量化噪声为白噪声,且其功率密度均匀的分布在直流和采样频率之间,白噪声与采样频率不相关。当提高采样率后,量化噪声被平均到整个采样频率段内,如下图所示。

从图中可知,量化噪声功率分布的频率被扩展到采样频率fs(大于fm),超过fm的这段可以通过数字低通滤波器极大的削弱。整个过程造成的结果是噪声减少了,进而信噪比(SNR)提高了,再进而有效位数增加了。经过公式推导(这里不详述,可参考其它资料),可得,

N为ADC的分辨率,OSR为过采样率,比较2)中的公式,其信噪比(SNR)增加了10log(OSR),假设OSR=2,则10log(OSR)=3,即信噪比(SNR)增加了3dB(前面讲过,信噪比(SNR)每增加6dB,有效位数增加1bit),有效位数增加1/2bit。这里,我们可以得出OSR每增加4倍,有效位数加1bit,即:

其中,FS为当前ADC的采样频率

5)抽取

由于增加了采样频率,我们采样的数据量也增加了,而我们实际上使用的采样率还是FS,而非FOVS(提高采样率并非我们的本义,我们是想要提高有效位数)。因此,需要对数据进行抽取,以获得我们增加了有效位数的ADC值。简单来讲,抽取就干2件事:

a)降采样,FOVS变为FS

b)对数据进行处理,获得增加了有效位数的ADC值

针对a),我们可以连续采样4^{p}个采样值(按FOVS采样),数据处理后,输出一个值,即可将采样率变为FS。

针对b),由于我们采用过采样,采样频率是原来的4^{p}倍,采样值数量也为原来的4^{p}倍,假设原采样频率,Ts后得到一个样本值s,过采样频率得到的样本值求和4^{p}*s,增加的有效位数为log2(4^{p}*s)-log2(s)=2p,若原来的有效位数为N,则过采样频率得到的样本值求和后的样本值有效位数为N+2p,为了获得p位有效位数,需要右移p位(N+p+p-p),即可得到N+p的有效位数。

2.实施

1)若想增加p bit的有效位数,需将原来采样频率FS提升为:4^{p}*FS,当然ADC的采样频率是有最大值的,注意不要超过最大频率。

2)连续采样4^{p}个值,对其进行求和,右移p位,此值即为过采样后的值。这一步可以配合定时器(固定FS触发ADC采样),中断,DMA进行处理以提高CPU使用效率。

总结,本文介绍了过采样技术基本原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/293250.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java设计模式之单例模式以及如何防止通过反射破坏单例模式

单例模式 单例模式使用场景 ​ 什么是单例模式?保障一个类只能有一个对象(实例)的代码开发模式就叫单例模式 ​ 什么时候使用? 工具类!(一种做法,所有的方法都是static,还有一种单…

C++之深拷贝进阶

目录 拷贝构造函数的深拷贝进阶版本 赋值运算符重载的深拷贝进阶 总结 上期我们学习了C中深拷贝的传统版本,今天我们将学习更为高效的版本。 拷贝构造函数的深拷贝进阶版本 传统版本代码如下: string(string& s):_str(new char[strlen(s._str) …

Mybatis3系列课程8-带参数查询

简介 上节课内容中讲解了查询全部, 不需要带条件查, 这节我们讲讲 带条件查询 目标 1. 带一个条件查询-基本数据类型 2.带两个条件查询-连个基本数据类型 3.带一个对象类型查询 为了实现目标, 我们要实现 按照主键 查询某个学生信息, 按照姓名和年级编号查询学生信息 按照学生…

C语言中的关键字

Static 静态局部变量 结果: a作为静态局部变量,第一次进入该函数的时候,进行第一次变量的初始化,在程序整个运行期间都不释放。(因为下一次调用还继续使用上次调用结束的数值) 但是其作用域为局部作用域&…

深入理解 JavaScript 函数:提升编程技能的必备知识(中)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

基于kubernetes实现PaaS云平台-rancher

基于Rancher实现kubernetes集群管理 一、Rancher介绍 1.1 Rancher Rancher 是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。Rancher可以轻松地管理各种环境的 Kubernetes,满足IT需求并为 DevOps 团队提供支持。 Rancher 用…

JUC并发编程 08——原子操作类

目录 一.原子更新基本类型类 实现原理 二.原子更新数组 三.原子更新引用类型 四.原子更新字段类 Java从JDK1.5开始提供了J.U.C下的atomic包,atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新基本类型变量&#xff0…

数字图像处理-空间域图像增强-爆肝18小时用通俗语言进行超详细的总结

目录 灰度变换 直方图(Histogram) 直方图均衡 直方图匹配(规定化) 空间滤波 低通滤波器 高通滤波器 ​​​​​​​ 本文章讲解数字图像处理空间域图像增强,大部分内容来源于课堂笔记中 灰度变换 图像增强&…

C++的面向对象学习(4):对象的重要特性:构造函数与析构函数

文章目录 前言:将定义的类放在不同文件夹供主文件调用的方法一、构造函数与析构函数1.什么是构造函数和析构函数?2.构造函数和析构函数的语法3.构造函数的具体分类和调用方法①总的来说,构造函数分类为:默认无参构造、有参构造、拷…

【扩散模型】9、Imagen | 借用语言模型的能力来实现文生图(NIPS2022 Oral)

文章目录 一、背景二、方法2.1 预训练的语言编码器2.2 扩散模型和 classifier-free guidance 三、效果 论文:Imagen: Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding 官网:https://www.assemblyai.com/blog/how-imag…

Python命名规范中的[单/双][前导/后缀]下划线小结

如图所示 出处 Single and Double Underscores in Python Names

flutter + firebase 云消息通知教程 (android-安卓、ios-苹果)

如果能看到这篇文章的 一定已经对手机端的 消息推送通知 有了一定了解。 国内安卓厂商这里不提都有自己的FCM 可自行查找。(国内因无法科学原因 ,不能使用谷歌服务)只说海外的。 目前 adnroid 和 ios 推送消息分别叫 FCM 和 APNs。这里通过…