数模转换(ADC)的应用笔记

智能时代,数字信号已体现在我们生活的方方面面,A/D,D/A是重要的基础。智能手机触摸信号需要转换为数字信号才能分辨触摸位置、数字去抖;打电话或者麦克风需要将模拟声信号转换为数字信号以便存储回放、语音识别;移动通信到4G时代,速率已经达到了300Mbps,手机和基站之间的通信是模拟电磁信号,同样需要高性能的ADC将其转化为数字信号,才能变成各位看到的电影、微博(当然没这么简单)。上述三个例子是典型的三种应用场景,对应ADC的不同指标。其中速度(采样率)和精度(bit位)是选取ADC的基础指标。各种监测可能需要实时性不高,能转换就行了;大部分医疗电子可能要求精度高,动态高,能分辨大信号下隐藏的小信号,同时速度较快;对于移动通信,您可能要求速度快,同时信号好,那对速度和精度就都有要求了,速度可能几百Msps,精度可能12、14位;更高大上的,针对卫星通讯、软件无线电(SDR),带宽可达数GHz,同时灵敏度要求更高,这种ADC就是核心科技了,只有为数不多的几家美国厂商掌握。

关键词:ADC  SDR 抗混叠滤波器无线通讯 高精度采样

本文主要介绍ADC的模拟前端匹配技术,并分享笔者的几个设计作业,随着认识的不断深入,也会不断更新。关于ADC的互连、中频方案选择等在系列文档中细说。

ADC的前端匹配其实是抗混叠滤波器(anti-aliasing filter)的设计问题,为什么叫抗混叠滤波器,那得从ADC的采样原理说起。ADC的采样遵循Nyquist定理,假设被采样信号的最高频率为Fh,则要使在数字域能完全恢复该信号的最小采样频率为2*Fh;另外还有一个Nyquist带通采样原理,也称为欠采样。即对于带通信号而言,如TDD-LTE的2575MHz—2615MHz,通带50M,需要最小的采样频率为2*BW(50M) = 100Msps。

Fig 1 Nyquist采样混叠原理

在Fig1中,fa为被采样信号,I为其采样后的镜像,fs为采样频率。0.5fs为一个nyqusit区。Fig1中上图表示选择信号中频在1st Nyquist区,那么这个信号会在其他高阶Nyquist区有镜像信号;下图表示选择感兴趣的信号在2nd Nyquist区,采样后,会镜像到1st Nyquist区和其他高阶Nyquist区。同理,在ADC采样时,非感兴趣Nyquist区的噪声信号都会镜像到1st Nyquist区,而1st Nyquist区正式数字域中频处理需要信号。为了抑制噪声,需要在ADC前端加入低通(1st)或者带通(upper)滤波器,该滤波器也称为抗混叠滤波器。

ADC的硬件系统一般都是数模混合系统,板级噪声较复杂,采用差分模拟输入能有效提高共模噪声抑制比。对几十MHz以下的模拟信号一般是直接采样,如医疗中的超声、生物阻抗测量等。这种模拟信号需要将单端转为差分,采用运放可以方便的转换,同时保证ADC需要的偏置电压,如fig2。但要注意运放的直流匹配、共模偏置电压、压摆率、CMRR、频率等参数,这部分有专门的应用笔记可以参考。转为差分信号后,再设计需要的匹配滤波器,与ADC对接,下面会讲到。对于采用1st Nyquist Zone的使用场景,还可以用放大器本身来完成低通滤波。比较典型的有源滤波器是sallen-key结构。

Fig2利用运放实现单端转差分

无线通信的频率较高,经常使用变频器(解调器)+AGC+匹配滤波+ADC的架构。存在变频器,如果采用非零中频设计,必然在射频有镜频抑制要求。为了降低镜频抑制滤波器的设计难度,结合混频杂散分析,一般采用较高的中频,多在5fs/4或者更高。在这种场景下,匹配滤波器为带通滤波器,设计复杂度要高的多。下变频器直接为差分中频输出,ADC也是差分输入,滤波器需要考虑的是阻抗匹配。变频器如AD5801的输出阻抗为200ohm,如果采用4:1的transformer,输出阻抗为50ohm。当然也可以直接采用1:1的transformer,输出阻抗为200ohm。如果采用中频放大器,可根据放大器的直流负载特性,选择合适的负载阻抗,如fig3所示源阻抗为70ohm。ADC的输入阻抗一般较大,如AD9248的输入阻抗为7kohm,输入电容7pF;AD9230的输入阻抗4.3kohm,4pF。如此大的输入阻抗对滤波器来说是极难匹配的,一般在ADC的输入并联电阻到地,使得总输入电阻为几百ohm,作为匹配滤波器的负载电阻。

Fig3抗混叠滤波器阻抗匹配示意图

根据输入阻抗、负载阻抗、ADC的采样率、其他NyquistZone的抑制要求,即可确定滤波器的详细参数。本人习惯采用射频设计软件ADS来仿真滤波器,最好采用murata的电容模型,采用coilcraft的绕线电感模型。如果想一步仿真成功,上板免调试,将PCB布板模型等寄生参数带入ADS进行仿真,比较精确,但实现过程比较复杂。考虑到电容等器件的精度,电容值不能太小,电感值也不要太大。还有一个问题,设计滤波器的负载阻抗是采用纯电阻模型,没有考虑ADC的输入电容,可以将滤波器仿真出来的最后一个并联电容C1减去ADC的输入电容,作为最后的电容值。考虑到对共模干扰的抑制,可以将C1改为两个到地电容,其值为2(C1-Cadc)。

在ADC输入还需要考虑到模拟信号的共模电平Vcom,Vpp。为了达到ADC的最大SNR,输入信号尽量能达到满功率(高峰均比需要回退),有的ADC提供片内偏置,有的ADC需要外部偏置。Vpp影响ADC的动态范围,注意前端放大器的压摆率与Vpp匹配,并留一定余量。

参考资料Analog Devices application note cn-0238

ADC应用的更多相关文章

  1. STM32之DMA+ADC

    借用小甲鱼的经典:各位互联网的广大网友们.大家早上中午晚上好..(打下小广告,因为小甲鱼的视频真的很不错).每次看小甲鱼的视频自学都是比较轻松愉快的..我在想,如果小甲鱼出STM32的视频,我会一集不 ...

  2. STM32之ADC+步骤小技巧(英文)

    神通广大的各位互联网的网友们.大家早上中午晚上好好好.今早起来很准时的收到了两条10086的扣月租的信息.心痛不已.怀着这心情.又开始了STM32的研究.早上做了计算机控制的PID实验,又让我想起了飞 ...

  3. [nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

    一.本实验ADC 配置 分辨率:10 位. 输入通道:5,即使用输入通道AIN5 检测电位器的电压. ADC 基准电压:1.2V. 二.NRF51822 ADC 管脚分布 NRF51822 的ADC ...

  4. 基于STM32Cube的ADC模数采样设计

    1.背景         此实验建立在STM32F429核心板基础上,对于深刻了解STM32Cube使用具有深刻意义.利用DMA进行ADC采样,具有速度快,极大减少CPU消耗的优势,对于数据采集系统具 ...

  5. ADC

    ADC转换分为两种通道组 1.规则通道组 2.注入通道组(可打断规则通道组) 工作模式 通道模式 转换模式 复位校准 AD校准

  6. 对ADC(DAC)的线性度(INL和DNL)的一点理解 [转]

    大家在使用ADC的时候,往往最关注位数,而对ADC的线性度往往会忽略. 其实这个线性度也是ADC非常重要的指标,ADC(或DAC,其实ADC也是由DAC组成的)线性度指标有两个: INL:翻译过来叫“ ...

  7. HAL驱动库学习-ADC

    如何使用ADC驱动库 1  实现如下两个函数     a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断     b:HAL_ ...

  8. STM32 ADC 测电压

    1. STM32F103 ADC 本例使用STM32F103芯片的PA1引脚测试模拟输入的电压值. 查看文档<STM32F103X.pdf>第31页,引脚定义图: 得知PA1使用ADC1的 ...

  9. ADC测试matlab代码

    前面有做过ADC性能测试,测试方式是先使用ADC采集一个单频信号,然后利用matlab进行性能分析. 下面把matlab分析的代码记录下来: %The following program code p ...

  10. NRF51822之ADC(1)

    在开始讲解的前,我们不生产水,我们只是大自然的搬运工.开始搬手册(nRF51 Series Reference Manual Version 3.0)上的资料

随机推荐

  1. 执行git add .命令时报warning: LF will be replaced by CRLF in yarn.lock.

    解决办法是执行:git config --global core.autocrlf false 是符号 / 转义的问题

  2. 在Windows上搭建Git Server

    Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用. 那么私有项目,如何用Git进行代码版本控制呢?我们可以自 ...

  3. java框架之Hibernate(2)-持久化类&主键生成策略&缓存&事务&查询

    持久化类 概述 持久化:将内存中的对象持久化到数据库中的过程就是持久化.Hibernate 就是用来进行持久化的框架. 持久化类:一个 Java 对象与数据库的表建立了映射关系,那么这个类在 Hibe ...

  4. Spring Security 安全验证

    摘自:https://www.cnblogs.com/shiyu404/p/6530894.html 这篇文章是对Spring Security的Authentication模块进行一个初步的概念了解 ...

  5. SparkML之推荐引擎(二)---推荐模型评估

    本文内容和代码是接着上篇文章来写的,推荐先看一下哈~ 我们上一篇文章是写了电影推荐的实现,但是推荐内容是否合理呢,这就需要我们对模型进行评估 针对推荐模型,这里根据 均方差 和 K值平均准确率 来对模 ...

  6. mysql数据库字符集相关操作(修改表字段编码,使其支持emoji表情)

    普通的UTF8编码是不支持emoji表情插入的,会报异常: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x9 ...

  7. javascript callback

    https://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/ MDN web docs htt ...

  8. iOS UI基础-21 WKWebView

    WKWebView,直接显示网页,需要引入第三方类:https://github.com/marcuswestin/WebViewJavascriptBridge 加上进度条代码,很完美使用 webV ...

  9. Java过关测验

    库存物资管理系统一.背景资料:1.有一个存放商品的仓库,每天都有商品出库和入库.2.每种商品都有名称.生产厂家.型号.规格等.3.出入库时必须填写出入库单据,单据包括商品名称.生产厂家.型号.规格.数 ...

  10. Hibernate查询操作

    操作前需要创建好Hibernate项目,创建项目,可参考:http://www.cnblogs.com/zhaojinyan/p/9336174.html 一下的例子是从其他贴子粘过来的(知识无国界! ...