ADC学习系列(一):ADC基础概念

        本章主要是进行ADC的基础概念学习,从模拟和数字信号进行入手,分析各自的优缺点和应用场合,从而引出数模转换的重要性。紧接着提到了ADC部分最重要的奈奎斯特采样定理,了解采样频率和被测信号频率之间的关系。最后介绍了ADC的采样保持放大电路,作为ADC部分的输入级,该电路对于采样结果有着至关重要的影响。

目录

一.模拟信号和数字信号

二.数模转换(ADC)原理

三.奈奎斯特(Nyquist)采样定理

四.采样保持放大器(SHA)

一.模拟信号和数字信号

         信号可以分成连续信号离散信号。连续信号变化缓慢,没有突变。离散信号可以只有有限几个值。连续和离散是指信号的幅度,也可以指信号的时间。可以说连续变化的信号就是模拟信号,离散变化的信号是数字信号。 

模拟信号的优点在于

①电路简单,可以直接通过电路元件进行实现,比如运算放大器。

②分辨率很高,由于是连续信号,理论上的分辨率为无穷大,更容易模拟出自然现象,因为生活中大部分的信号都是连续信号。

模拟信号主要的缺点就在于抗噪声能力比较弱,模拟信号不同的幅值代表完全不一样的信息,很容易被干扰。随着距离越长,噪声的影响越大。

数字信号的优点在于

①“抗噪声能力强”

        其实理论上并不是说抗噪声的能力强,因为和模拟信号一样同样都是信号,收到噪声影响一定会产生干扰,只不过数字信号相比模拟信号是在受干扰的情况下能更好的还原成原来的信号,因为只有0和1两种电平,就算信噪比恶化到一定程度,也能大致识别出两种电平状态。

②便于储存和交换

        由于计算机系统是二进制,只能处理数字信号,因此便于用计算机对数字信号进行存储、处理和交换,可使通信网的管理、维护实现自动化、智能化

③可以用于加密

        信息传输的安全性和保密性越来越重要,数字通信的加密处理的比模拟通信容易得多,以话音信号为例,经过数字变换后的信号可用简单的数字逻辑运算进行加密、解密处理。

二.数模转换(ADC)原理

        ADC全称是Analog-to-Digital Converter模数转换器,一般我们把模拟信号(Analog signal) 用A来进行简写,数字信号(digital signal) 用D来表示。

        自然界绝大部分都是模拟信号,例如压力或温度的测量,为了方便储存,处理和传输,我们会通过ADC把模拟信号转化成数字形式给计算机处理。将模拟转换成数字的形式有两个步骤:采样和量化

        采样是指将模拟波形在时间域上进行切分,每个切片大小大致等于原来波形的值,这一过程往往会丢失一些信息。然而,数字系统的优点(去噪、数字储存以及处理)远远大于丢失信息的不足。在采样完成后,给每个时间片分配一个数字,这样的一个过程称为量化,量化生成的数字可以交由计算机进行处理。下图解释了采样和量化的过程:

         作为硬件工程师,日常用到ADC的需求其实很多,例如制作一个数字电源,单片机需要采样电流电压值来作为反馈,进行PID控制。大部分的嵌入式MCU都集成了ADC,位数有12位,16位不等。但是对于一些对于采样精度还有速度要求比较高的场合,需要用到外置的高速ADC,其实他们大多本质上原理都是一样的,后面会详细讲解不同架构的ADC。

三.奈奎斯特(Nyquist)采样定理

        只要是提到ADC,一定需要掌握的基本知识就是Nyquist采样定理,是硬件工程师的基本功,因为也是学习示波器需要了解的,示波器本质上就是通过ADC采集到外部信号,然后储存起来,通过数字处理在屏幕上进行重现。

        在A/D转换中,模拟波形在固定点采样,然后将被采样的值转换成二进制数值。由于转换需要花费一定的时间,因此在一定时间周期内,模拟信号的采样数是有限的。比如说:某ADC在1ms内完成一次转换,那么在一秒钟内它能进行1000次转换。也就是说,在一秒钟的间隔内,可以将1000个不同的模拟值转换成数字形式,采样频率为1kHz。

        Nyquist采样定理解释了采样率fs和所测信号频率之间的关系。 阐述了采样率fs必须大于被测信号感兴趣最高频率分量的两倍,该频率通常被称为奈奎斯特频率fN。用公式显示就是fs>2*fN。本文章不涉及到复杂的公式推导,我们用直观的方式来理解采样率为什么需要大于被测信号最高频率两倍这个原因。

1.假设采样率fs=fN

        如下图所示,因为采样率和被测信号频率一致,我们可以理解为周期是一致的,那就是相当于一个正弦波信号一个周期内只能采样到1个点。那么对于一个周期函数而言,每个周期内采样的都是同一个位置的点,最后ADC采样完成并重建出来的信号波形就是不变的一条直线,明显得不到我们想要的结果。

2.假设采样率fs=(4/3)* fN

        那么我们稍微提高一点采样率,变为4/3倍,可以发现在不同周期内,有的时候可以采样到1个点,有的时候可以采样到2个点,但是最后重建出来的线条还是失真严重,因此也不满足。

3.假设采样率fs=2fN

        当我们采样率达到2倍信号频率的时候,假如说我们运气比较好正好第一个采样点就在正弦波的波峰或者波谷,那么在被测信号的每个周期内,正好可以分别采样到幅度最大和最小的两个点,最后把所有的点线性连接起来后可以得到三角波,经过适当地函数处理可以恢复成原来的正弦波。

         但是我们也发现了问题,如果每个周期采样的两个点并不是位于波峰或者波谷的话,采样过来的信号同样会失真。因此2倍这个数字只是理论值,也是可以通过数学推导推出来的,但是我们实际在使用的时候,比如说用100M带宽的示波器去检测信号,工程上面一般是缩小5倍,也就是最高能检测20M的信号而不失真,一个周期内至少采样被测信号5个点。

 混叠的概念

        那么如果说采样率没有达到2倍的被测信号采样频率,会出现一种混叠的现象。也就是下图所示的那样,我们实际测量的信号是灰色的高频信号,但是由于采样率不够高(一个周期内没有采样到2个点),出现了一种红色的低频信号,而这种信号是虚假的重建信号。因此当我们去用示波器测试高频信号时,如果发现测出来的信号频率反而很低,可以怀疑下是不是出现了混叠。

         绝大多数信号都是能够进行傅里叶变换的,就意味着,不管一个信号多么复杂,总可以分解为若干个正(余)弦信号的和,对应了信号的频率分量。因此,Nyquist采样定理只需找到信号最大的频率分量,再用2倍于最大频率分量的采样频率对信号进行采样,从理论上解决了,离散信号能够重建出连续信号的问题。

四.采样保持放大器(SHA)

        这一篇针对于ADC入门,最后要介绍的是ADC的输入部分的一个非常重要的结构-----采样保持放大器(Sample-And-Hold Amplifier)采样放大器在某个时刻对模拟输入电压进行采样,在获取采样之后,将采样电压保持一段时间。采样保持过程将已采样的模拟电压在一段必要的时间长度内保持恒定,以便让ADC将模拟电压转换成数字形式。

        一个基本的SHA如下图红框所示,包括一个模拟开关、一个电容以及输入输出缓冲放大器。开始的时候模拟开关闭合,通过输入缓冲放大器对模拟输入电压进行采样,电容C存储或保存已采样电压一段时间,输出缓冲放大器提供一个高输入阻抗来防止电容快速掉电。ADI要求输出缓冲器的输入阻抗足够高,以便电容可以在保持时间内放电少于1LSB。

        如下图所示,一个相对狭窄的控制电压脉冲闭合模拟开关,并使电容持续充电达到输入电压。然后开关断开,由于通过运放输入端的放电通路阻抗非常高而使电容将在较长一段时间内保持电压值不变。ADI要求输出缓冲器的输入阻抗足够高,以便电容可以在保持时间内放电少于1LSB。

        或许采样保持电路称为采样跟踪保持电路更为合适,因为事实上该电路在采样期间跟踪输入电压。如下图所示,当控制电压为高电平时,输出电压跟随输入电压;当控制电压变成低电平时,输出保持最后的电压不变,直到下一次采样开始。

性能指标

        除了运算放大器那些基本指标外(如带宽),采样保持放大器有一些专门的特性

①孔径时间

        控制电压从采样电平转换为保持电平之后,模拟开关完全打开所需的时间。孔径时间会在有效采样点处产生一定的延时。

②孔径抖动

        孔径时间的不确定性

③采集时间

        当控制电压从保持电平转到采样电平时,器件达到最终值所需要的时间。

④跌落

        在保持期间,由于电容漏电而产生的采样值中的电压变化。

⑤馈送

        模拟开关打开后,输出电压中跟随输入信号变化的组成成分。从开关的输入到输出中存在的内在电容导致馈送的产生。

题外话

        有些地方还提到了跟踪保持放大器(T/H或THA)和采样保持放大器(SHA)有细微差别,但是如果不是深入研究ADC芯片设计的话可以暂时认为都是用于ADC输入端保持采样电压的。

下一篇将正式介绍ADC的各种关键参数,加油~

参考链接:奈奎斯特采样定理(Nyquist) - MyCPlusPlus - 博客园

参考文献:《模拟电子技术基础》Thomas L.Floyd   David M.Buchla著

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

matlab背景部分最小化算法人脸检测

1、内容简介 略 18-可以交流、咨询、答疑 matlab背景部分最小化算法人脸检测 2、内容说明 matlab人脸检测 matlab人脸检测,背景部分最小化算法 3、仿真分析 略. 4、参考论文 略 链接:https://pan.baidu.com/s/1yQ1yDfk-_Qnq7tGpa23L7g 提取码&…

【LeetCode刷题-二分查找】--704.二分查找

704.二分查找 class Solution {public int search(int[] nums, int target) {if(nums.length 0){return -1;}int left 0,right nums.length - 1;while(left < right){int mid (right - left) / 2 left;if(nums[mid] target){return mid;}else if(nums[mid] < targe…

Pytorch损失函数、反向传播和优化器、Sequential使用

Pytorch_Sequential使用、损失函数、反向传播和优化器 文章目录 nn.Sequential搭建小实战损失函数与反向传播优化器 nn.Sequential nn.Sequential是一个有序的容器&#xff0c;用于搭建神经网络的模块被按照被传入构造器的顺序添加到nn.Sequential()容器中。 import torch.nn …

不可思议,才一周,阅读量就突破千万了

这段时间&#xff0c;我发布的文章阅读量看上去还算可以&#xff0c;但我知道&#xff0c;这并不是终点&#xff0c;而是起点。我深知&#xff0c;写作的道路永无止境&#xff0c;只有不断努力&#xff0c;才能在文字的海洋中游得更远。 在这条道路上&#xff0c;我始终坚持用心…

学习率范围测试(LR Finder)脚本

简介 深度学习中的学习率是模型训练中至关重要的超参数之一。合适的学习率可以加速模型的收敛&#xff0c;提高训练效率&#xff0c;而不恰当的学习率可能导致训练过慢或者无法收敛。为了找到合适的学习率&#xff0c;LR Finder成为了一种强大的工具。 学习率范围测试&#x…

springboot项目基本配置

接口入口日志 参数校验 业务逻辑执行 异常捕获-统一异常处理 统一数据返回体 接口返回日志 使用的是springboot2.x版本。 Mybatisplus 官网地址&#xff1a;https://baomidou.com/ 导入依赖 <dependency><groupId>com.baomidou</groupId><artifactId&g…

前端工具nvm实现node自由

node的自由之路 前言 大家使用vue框架开发的朋友可能会遇到首次运行公司项目环境的时候&#xff0c;会出现使用npm install命令安装依赖包的时候出现各种各样的问题&#xff0c;其中很重要的一个错误原因就是因为你的nodejs版本和当时搭建环境的版本不一致造成的。今天就来给…

c语言-数据结构-栈和队列的实现和解析

目录 一、栈 1、栈的概念 1.2 栈的结构 2、栈的创建及初始化 3、压栈操作 4、出栈操作 5、显示栈顶元素 6、显示栈空间内元素的总个数 7、释放栈空间 8、测试栈 二、队列 1、队列的概念 1.2 队列的结构 2、队列的创建及初始化 3、入队 4、出队 5、显示队头、队…

creo之混合和扫描混合

案例一&#xff1a;杯子 步骤&#xff1a; 在top平面画一个草图圆角矩形&#xff1a; 然后形状–》混合 然后绘制新增的截面2&#xff1a; 用中心线将圆分割成八分&#xff0c;因为底部的圆角矩形是八份线段组成&#xff0c;所以我们要和他一样分成八份&#xff1a;先画中心线…

详解Java:抽象类和接口

前言&#xff1a;在前文中我们学习认知到了多态的使用和相关知识&#xff0c;算是打开了Java世界的大门&#xff0c;而本次要分享的抽象类和接口则是我们在面向对象编程中最常用的编程结构之一 目录 一.抽象类 abstract 抽象类特性 二.接口 语法规则 接口使用 接口特…

第十七章jQuery中的事件与动画

一。常用事件&#xff1a; 1.鼠标事件&#xff1a; mouseover()&#xff1a;在鼠标进入内容后一直显示事件 mouseout()&#xff1a;在鼠标离开内容后一直显示事件 mouseenter()&#xff1a;在进入刹那间显示事件 mouseleave()&#xff1a;在退出刹那间显示事件 案例&#xf…

windows系统升级powershell7

利用winget在线升级脚本 REM --accept-package-agreements 接受包的所有许可协议 REM --accept-source-agreements 在源操作期间接受所有源协议 winget install Microsoft.PowerShell --accept-source-agreements 应该在路径C:\Program Files\PowerShel…

功能案例 -- 拖拽上传文件,生成缩略图

直接看效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>拖拽上传文件</title>&l…

两个序列(数论)

两个序列 Problem:B Time Limit:1000ms Memory Limit:65535K Description Gugu 有两个长度无限长的序列A,BA0a^0/0!,A1a^1/1!,A2a^2/2!,A3a^3/3!…. B00, B1b^1/1!,B20,B3b^3/3!,B40, B5b^5/5! … Douge 看到这道这两个序列很觉得很麻烦&#xff0c;所以他想到一个好点子&…

EMNLP 2023 | 基于知识图谱嵌入的关系感知集成学习算法

©PaperWeekly 原创 作者 | 黄鉦皓 单位 | 清华大学 研究方向 | 图神经网络 本文介绍《基于知识图谱嵌入的关系感知集成学习算法》&#xff08;Relation-aware Ensemble Learning for Knowledge Graph Embedding&#xff09;&#xff0c;该论文提出的 RelEns-DSC 方法针对…

【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询(一)——后端实现思路

系列文章目录 基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询(二&#xff09;——前端el-pagination实现 文章目录 系列文章目录系统版本实现功能操作步骤1. 新建Mybatis的全局分页配置文件2. 编写OrderMapper :继承Mybatis-plus提供的BaseMapper3. 编写OrderSer…

Python---字典---dict

1、为什么需要字典 如果想要存储一个人的信息&#xff0c;姓名&#xff1a;Tom&#xff0c;年龄&#xff1a;20周岁&#xff0c;性别&#xff1a;男&#xff0c;如何快速存储。 person [Tom, 20, 男] 在日常生活中&#xff0c;姓名、年龄以及性别同属于一个人的基本特征。 但…

【哈夫曼树的构造】

文章目录 如何构造哈夫曼树哈夫曼树构造算法的实现 如何构造哈夫曼树 哈夫曼算法口诀&#xff1a; 1.构造森林全是根&#xff1b;2.选用两小造新树&#xff1b; 3.删除两小添新人&#xff1b;4.重复2,3剩单根&#xff1b; 例&#xff1a;有4个新结点a,b,c,d&#xff0c;权值为…

upload-labs关卡7(基于黑名单的空格绕过)通关思路

文章目录 前言一、回顾上一关知识点二、靶场第七关通关思路1、看源代码2、空格绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的平台&#xff0c;不能随意去尚未授权的网站做渗透测试…

【Python】二维码和条形码的识别

我主要的问题就在于无法识别图片 注意事项&#xff1a; 1、从文件中加载图像的时候注意图片尽量用英文来命名&#xff0c;因为中文无法识别到图片 2、使用绝对地址的时候要用两个双斜杠&#xff0c;因为用一个会被识别为Unicode 转义&#xff0c;但是并没有后续的合法 Unico…