ADC应用
数模转换(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应用的更多相关文章
- STM32之DMA+ADC
借用小甲鱼的经典:各位互联网的广大网友们.大家早上中午晚上好..(打下小广告,因为小甲鱼的视频真的很不错).每次看小甲鱼的视频自学都是比较轻松愉快的..我在想,如果小甲鱼出STM32的视频,我会一集不 ...
- STM32之ADC+步骤小技巧(英文)
神通广大的各位互联网的网友们.大家早上中午晚上好好好.今早起来很准时的收到了两条10086的扣月租的信息.心痛不已.怀着这心情.又开始了STM32的研究.早上做了计算机控制的PID实验,又让我想起了飞 ...
- [nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC
一.本实验ADC 配置 分辨率:10 位. 输入通道:5,即使用输入通道AIN5 检测电位器的电压. ADC 基准电压:1.2V. 二.NRF51822 ADC 管脚分布 NRF51822 的ADC ...
- 基于STM32Cube的ADC模数采样设计
1.背景 此实验建立在STM32F429核心板基础上,对于深刻了解STM32Cube使用具有深刻意义.利用DMA进行ADC采样,具有速度快,极大减少CPU消耗的优势,对于数据采集系统具 ...
- ADC
ADC转换分为两种通道组 1.规则通道组 2.注入通道组(可打断规则通道组) 工作模式 通道模式 转换模式 复位校准 AD校准
- 对ADC(DAC)的线性度(INL和DNL)的一点理解 [转]
大家在使用ADC的时候,往往最关注位数,而对ADC的线性度往往会忽略. 其实这个线性度也是ADC非常重要的指标,ADC(或DAC,其实ADC也是由DAC组成的)线性度指标有两个: INL:翻译过来叫“ ...
- HAL驱动库学习-ADC
如何使用ADC驱动库 1 实现如下两个函数 a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断 b:HAL_ ...
- STM32 ADC 测电压
1. STM32F103 ADC 本例使用STM32F103芯片的PA1引脚测试模拟输入的电压值. 查看文档<STM32F103X.pdf>第31页,引脚定义图: 得知PA1使用ADC1的 ...
- ADC测试matlab代码
前面有做过ADC性能测试,测试方式是先使用ADC采集一个单频信号,然后利用matlab进行性能分析. 下面把matlab分析的代码记录下来: %The following program code p ...
- NRF51822之ADC(1)
在开始讲解的前,我们不生产水,我们只是大自然的搬运工.开始搬手册(nRF51 Series Reference Manual Version 3.0)上的资料
随机推荐
- 算法基础_递归_给定一个数字n,打印出所有的划分等式
问题描述: 给定一个数字n,打印出所有的划分等式 例: n = 3 3 2+1 1+1+1 解题源代码: import java.util.Scanner; /** * 给定数字n,打印出其所有用加法 ...
- Eclipse 02: 安装SVN插件
1.下载最新的Eclipse,我的版本是3.7.2 indigo(Eclipse IDE for Java EE Developers)版 如果没有安装的请到这里下载安装:http://ecli ...
- 万能poi导入功能模板
同时支持2007版本和2003版本,空行过滤,纯数字类型数据格式处理,日期格式处理等 package com.yss.db.util; import com.yss.base.common.excep ...
- c# Castle Windsor简单例子
Windsor是Castle的IOC框架.需要用到两个dll(Castle.Core.dll和Castle.Windsor.dll). 1.接口以及接口实现类: public interface IT ...
- 如何知道网页浏览器cookie是什么?
一直有网友问网页cookie如何获取,其实想知道自己访问网页时的cookie没那么难,用Chrome内核浏览器的debug功能就能看到,怎么查看呢?随ytkah一起来看看吧! 打开网页,按F12键,选 ...
- WIN7虚拟桌面创建(多屏幕多桌面)
Windows7/WIN7虚拟桌面怎么用怎么创建多桌面(摘录) 在使用电脑中经常会遇到桌面软件太多了不够用的感慨,那么要是一台电脑有多个桌面就好了.在windows10中自带已经支持了虚拟桌面,在wi ...
- 解决bootstrap 模态框 数据清除 验证清空
$("#switchModel").on("hidden.bs.modal", function () { $('#ware-form')[0].reset() ...
- HBase笔记4(调优)
Master/Region Server调优 JVM调优 默认的RegionServer内存是1G,而Memstore默认占40%,即400M,实在是太小了,可以通过HBASE_HEAPSIZE参数修 ...
- 安装archlinux的linux命令记录
磁盘的分区:cfdisk 格式化分区:mkfs.ext4,mkswap,swapon 查看所有分区:lsblk /dev/sda 先挂载 / 分区:mount /dev/sda1 /mnt archl ...
- Java IO--NIO(二)
在我的上一篇文章JavaNIO详解(一)中介绍了关于标准输入输出NIO相关知识, 本篇将重点介绍基于网络编程NIO(异步IO). 异步IO 异步 I/O 是一种没有阻塞地读写数据的方法.通常,在代码进 ...