AVR121过采样提高AD精度
AD的精度与分辨率

AD的精度与分辨率简单点说,“精度”是用来描述物理量的准确程度的,而“分辨率”是用来描述刻度划分的。
从定义上看,这两个量应该是风马牛不相及的。
(是不是有朋友感到愕然^_^)。
很多卖传感器的JS就是利用这一点来糊弄人的了。
简单做个比喻:有这么一把常见的塑料尺(中学生用的那种),它的量程是10厘米,上面有100个刻度,最小能读出1毫米的有效值。
那么我们就说这把尺子的分辨率是1毫米,或者量程的1%;而它的实际精度就不得而知了(算是0.1毫米吧)。
当我们用火来烤一下它,并且把它拉长一段,然后再考察一下它。
我们不难发现,它还有有100个刻度,它的“分辨率”还是1毫米,跟原来一样!然而,您还会认为它的精度还是原来的0.1毫米么?(这个例子是引用网上的,个人觉得比喻的很形象!)回到电子技术上,我们考察一个常用的数字温度传感器:AD7416。
供应商只是大肆宣扬它有10位的AD,分辨率是1/1024。
那么,很多人就会这么欣喜:哇塞,如果测量温度0-100摄氏度,100/1024……约等于0.098摄氏度!这么高的精度,足够用了。
但是我们去浏览一下AD7416的数据手册,居然发现里面赫然写着:测量精度0.25摄氏度!所以说分辨率跟精度完全是两回事,在这个温度传感器里,只要你愿意,你甚至可以用一个14位的AD,获得1/16384的分辨率,但是测量值的精度还是0.25摄氏度^_^所以很多朋友一谈到精度,马上就和分辨率联系起来了,包括有些项目负责人,只会在那里说:这个系统精度要求很高啊,你们AD的位数至少要多少多少啊……其实,仔细浏览一下AD的数据手册,会发现跟精度有关的有两个很重要的指标:DNL和INL。
似乎知道这两个指标的朋友并不多,所以在这里很有必要解释一下。
DNL:Differencial NonLiner——微分非线性度INL:Interger NonLiner——积分非线性度(精度主要用这个值来表示)他表示了ADC器件在所有的数值点上对应的模拟值,和真实值之间误差最大的那一点的误差值。
dspAD采样改进方法(精)

TMS320F2812 DSP编程之 AD 采样精度的校准算法摘要F2812内部集成了 ADC 转换模块。
该模块是一个 12位、具有流水线结构的模数转换器,内置双采样保持器(S/H ,可多路选择 16通道输入,快速转换时间运行在25 MHz、 ADC 时钟或 12.5 Msps, 16个转换结果寄存器可工作于连续自动排序模式或启动 /停止模式。
在实际使用中, ADC 的转换结果误差较大,如果直接将此转换结果用于控制回路,必然会降低控制精度。
关键词:TMS320F2812, DSP编程,采样精度F2812内部集成了 ADC 转换模块。
该模块是一个 12位、具有流水线结构的模数转换器, 内置双采样保持器(S/H ,可多路选择 16通道输入,快速转换时间运行在25 MHz、 ADC 时钟或 12.5 Msps, 16个转换结果寄存器可工作于连续自动排序模式或启动 /停止模式。
在实际使用中, ADC 的转换结果误差较大,如果直接将此转换结果用于控制回路,必然会降低控制精度。
(最大转换误差可以达到 9%左右F2812的 ADC 转换精度较差的主要原因是存在增益误差和失调误差,要提高转换精度就必须对两种误差进行补偿。
对于 ADC 模块采取了如下方法对其进行校正:选用 ADC 的任意两个通道(如 A3, A4作为参考输入通道,并分别提供给它们已知的直流参考电压作为输入(RefHigh 和 RefLow ,通过读取相应的结果寄存器获取转换值,利用两组输入输出值求得 ADC 模块的校正增益和校正失调,然后利用这两个值对其他通道的转换数据进行补偿,从而提高了 ADC 模块转换的准确度。
实现校准的硬件电路在本文中不作描述,在有关资料中可以查到。
下面是该算法的 C 语言实现://首先计算两个通道的参考电压转换后的理想结果// A4 = RefHigh = 2.5V ( 2.5*4095/3.0 = 3413 ideal count// A3 = RefLow = 0.5V ( 0.5*4095/3.0 = 683 ideal count#define REF_HIGH_IDEAL_COUNT 3413#define REF_LOW_IDEAL_COUNT 683#define SAMPLES 63//定义所需的各个变量Uint16 Avg_RefHighActualCount;Uint16 Avg_RefLowActualCount; /Uint16 CalGain; // Calibration Gain Uint16 CalOffset; // Calibration Offset Uint16 SampleCount;Uint16 RefHighActualCount;Uint16 RefLowActualCount;//对各个变量进行初始化void InitCalib({Avg_RefLowActualCount = 0;Avg_RefLowActualCount = 0;Avg_RefHighActualCount = 0;RefHighActualCount = 0;RefLowActualCount = 0;CalGain = 0;CalOffset = 0;SampleCount = 0;}//获得校准增益和校准失调// Algorithm: Calibration formula used is://// ch(n = ADCRESULTn*CalGain - CalOffset// n = 0 to 15 channels// CalGain = (RefHighIdealCount - RefLowIdealCount// -----------------------------------------// (Avg_RefHighActualCount - Avg_RefLowActualCount //// CalOffset = Avg_RefLowActualCount*CalGain - RefLowIdealCount //// A running weighted average is calculated for the reference inputs://// Avg_RefHighActualCount = (Avg_RefHighActualCount*SAMPLES // + RefHighActualCount / (SAMPLES+1//// Avg_RefLowActualCount = (Avg_RefLowActualCount*SAMPLES// + RefLowActualCount / (SAMPLES+1 //void GetCalibParam({RefHighActualCount = AdcRegs.ADCRESULT4 >>4;RefLowActualCount = AdcRegs.ADCRESULT3 >>4;if(SampleCount > SAMPLESSampleCount = SAMPLES;Avg_RefHighActualCount = (Avg_RefHighActualCount * SampleCount + RefHighActualCount / (SampleCount+1;Avg_RefLowActualCount = (Avg_RefLowActualCount * SampleCount + RefLowActualCount / (SampleCount+1;CalGain = (REF_HIGH_IDEAL_COUNT - REF_LOW_IDEAL_COUNT/ (Avg_RefHighActualCount - Avg_RefLowActualCount; CalOffset = Avg_RefLowActualCount*CalGain - RefLowIdealCount;SampleCount++;}//在 ADC_ISR中,对其他各个通道的结果进行修正:interrupt void adc_isr(void{GetCalibParam(;......newResult n= AdcRegs.ADCRESULTn*CalGain - CalOffset;......}通过上面的代码,配合硬件电路改动,可以大幅实现提高 ADC 采样的精度,实现更灵敏、更精确的控制。
AD精确度和分辨率

ADC制造商在数据手册中定义ADC性能的方式令人困惑,并且可能会在应用开发中导致错误的推断。
最大的困惑也许就是“分辨率”和“精确度”了——即Resolution和Accuracy,这是两个不同的参数,却经常被混用,但事实上,分辨率并不能代表精确度,反之亦然。
本文提出并解释了ADC“分辨率”和“精确度”,它们与动态范围、噪声层的关系,以及在诸如计量等应用中的含义。
ADC动态范围,精确度和分辨率动态范围被定义为系统可测量到的最小和最大信号的比例。
最大信号可为峰间值,零到峰(Zero-to-Peak)值或均方根(RMS)满量程。
其中任何一个都会给出不同值。
例如,对于一个1V正弦波来说:峰间(满量程)值=2V零到峰值=1VRMS满量程=0.707×峰值振幅=0.707×1V=0.707V最小信号通常为RMS噪声,这是在未应用信号时测量的信号的均方根值。
测量得到的RMS 噪声级别将取决于测量时使用的带宽。
每当带宽翻倍,记录的噪声将增长1.41或3dB。
因此,一定要注意动态范围数字始终与某个带宽相关,而后者通常未被指定,这使记录的值变得没有意义。
器件的信噪比(SNR)和动态范围多数时候被定义为同一个值,即:动态范围=SNR =RMS满量程/RMS噪声并且经常使用dB作为单位,即动态范围(dB) =SNR(dB) =20*Log10 (RMS满量程/RMS噪声)与使用RMS满量程相反,一些制造商为了使图表看上去更漂亮,引用零到峰或峰间值,这使得最终的动态范围或SNR增加了3dB或9dB,因此我们需要仔细研究规范以避免误解。
在讨论ADC性能时,分辨率和精确度是经常被混用的两个术语。
一定要注意,分辨率并不能代表精确度,反之亦然。
ADC分辨率由数字化输入信号时所使用的比特数决定。
对于16位器件,总电压范围被表示为216 (65536)个独立的数字值或输出代码。
因此,系统可以测量的绝对最小电平表示为1比特,或ADC电压范围的1/65536。
TMS320F2812的ADC模块提高精度的采样方法实现

I ■ Biblioteka Caiedcl j h e hoR isnaTngew nccneoyv e
T 3 0 2 1 的 A C模块提高精度 的采样方法实现 MS 2F 8 2 D
曹志剑
( 川省成 都市 电子科技 大学 四 川 成都 四 6 0 7) 10 3
[ 要 ] 文针 对 T S 2F 8 2的片上 A C 块, 出了几种 可行 的提高 A 摘 本 M3021 D模 提 D采样 精度 的方 法, 中着重介 绍 了一种 高精度 的采样 方法, 其 并且给 出了其 c 语 言实现 的程 序清 单 。这个 方法 可 以大 大提 高 A D模 块 的采样 精 度, 其在 实现 上 面也 比较 容易 。 [ 关键i] M 30 2 1 A 采 样  ̄ T S2 F8 2 D 中图分 类号 :P 7 + 8 T2 1 . 1 文 献标识码 : A 文章编号 : 0 9 9 4 (0 0 0 0 2 O 10 ~ 1 X 2 1) 5 0 8 l 这样根据这 两个实 际偏移量和 得到 的输 出数字量, 就可 以根据下式 得到实 际 比较真 实 的输入模 拟量 x 补偿之 后 的数字输 出量 Y 和 :
{ 令C l ̄ f ac m:tOm ,c l/ t C / ̄)・ - 一 "I S o  ̄ 1 ao  ̄ : aG t A 2 Y’ 2
/ 矫正后 的结 果为N w e u t : A c E U T a G i — C l f s t / e R sln D R sL nc 1an a Of e
# e ieY 6 3 d f n l 8 I
# eieN 6 dfn 3
/ 理想低 值 /
0 5 .v
v i e C l b odG ta i 0
24位高精度AD芯片ADS1211的应用

24位高精度A/D 芯片ADS1211的应用江西电子仪器厂朱杰斌A pp lication of 24bit Hi g h -Accurac y A/D Chi p ADS1211Zhu Jiebin摘要:ADS1211是美国Burr -Brown 公司生产的高精度模数转换芯片。
它具有24位精度并内含自校正∑-Δ转换器、二阶∑-Δ调制器、可编程数字滤波器和微处理器,可以和89C52单片机进行接口以测量三相电流和电压。
文中简明扼要地介绍了24位高精度A/D 芯片ADS1211的结构特点,并以测量三相电压、电流应用为例子,给出了硬件测量电路、软件流程和相关的测量软件程序。
关键词:单片机;ADS1211;Σ-ΔA/D 转换器;寄存器;转换速度分类号:T N79+2文献标识码:B文章编号:1006-6977(2002)03-0047-04●新特器件应用图2ADS1211的内部结构图开关稳压电源,其输入电压范围为36~72VDC 。
在变压器原边并联的VR1和D1为缓冲电路,用以消除变压器原边关断瞬间形成的反向电压,C3~C6与L1组成π型高频滤波器。
线性光耦合器PC317和可调精密并联稳压器T L431为其提供闭环负反馈回路。
当+5V 电压发生变化时,经电阻R3、R4分压后得到的取样电压与T L431提供的2.5V 电压进行比较形成的误差电压将使LE D 的工作电流产生相应的变化,并通过光耦U2改变控制极电流I C的大小,调节T OPSw itch414的输出占空比可使电源输出电压维持不变,以达到稳压的目的。
参考文献1.P ow er Inter g rations.DAT A BOOK AND DESIG NG UI DE.A p ril ,19992.张健等.开关电源IC 发展的新动向.世界电子元器件.1998(6)收稿日期:2001-08-13咨询编号:020319图1ADS1211的引脚排列1ADS1211的结构及特点ADS1211是美国Burr -Brown 公司生产的高精度模数转换(A/D )芯片,它采用24脚双列直插式封装形式,图1是ADS1211的引脚排列,各引脚的功能如表1所列。
学习笔记-过采样原理与应用

学习笔记
过采样原理与应用
1、为什么使用过采样技术?
12 位ADC 并采用过采样和求均值技术即可达到以16位分辨率测量某个参数的目的,而不必使用昂贵的片外16位ADC。
2、优缺点?
优点:过采样和求均值对SNR和测量分辨率的改善。
缺点:增加CPU时间和降低数据吞吐率。
3、应用限制
ADC 噪声近似为白噪声的情况。
如果输入信号在样本之间随机变化,变化幅度与代码规模(1 LSB)接近,并且在两个个相邻代码之间有相等的概率,则噪声可以被当作白噪声处理,白噪声的特点是在整个有用频带内具有一致的功率谱密度,在噪声可以被近似为白噪声的情况下,过采样和求均值可以改善SNR 和提高数据的有效分辨率。
可以用过采样和求均值技术提高性能的例子如下:
不适合的例子如下:
4、应用方程
例如12位ADC希望通过过采样达到16位效果,则采样频率需要提升2(16-12)=256倍,256次采样结果加和然后除以16,即可得到16位的输出结果。
5、参考资料
1.《AN018-用过采样和求均值提高ADC 分辨率》
2.《AN2834-如何在STM32微控制器中获得最佳ADC精度》
STM32采样精度提高.pdf AN018_用过采样和求均值提高ADC分。
一种提高AD模_分辨率的方法
过采样及平均的原理2
• 平均处理的过程。 将4的w次方个连续的采样结果累加,然后除以2的w次方,所得 结果即为12+w位分辩率的AD值。之后清除累加和,继续重复之 前的操作。 如果w=4,即欲获得16位分辨率,则需连续采样256次,并将累加 和除以16。 如果w=2,即欲获得14位分辨率,则需连续采样16次,并将累加 和除以4。
条件,则采样所得的离散信号可以恢复输入的模拟信号。如
果采样频率Fs>Fn,则称之为过采样(oversampling)。Fs越
大,则AD所得信号越接近输入信号,即分辨率越高。有如下
公式:
fos 4w • fs
fs 原系统所需采样频率。
fos 提高w位分辨率所需过采样频率。
由于温度是一个变化比较缓慢的物理量。1~2秒采样一次也 可以满足大多数应用的实时性要求。假定需要16位的分辨率, 则w=4,Fs=0.5Hz,那么Fos=4X4X4X4X0.5=128Hz,即每秒 采样128次可以达到16位分辨率。而FPX-AD2的转换时间为 1ms,1秒钟能采样1000次,故完全可以实现目标分辨率。
例程
输入电压 0.00 0.50 1.00 1.51 2.01 2.51 3.02 3.52 4.01 4.51 5.01 5.51 6.01 6.51 7.01 7.50 8.01 8.52 9.04 9.52 10.00
试验结果
AD转换值 0
203 402 603 803 1006 1211 1412 1603 1807 2005 2207 2407 2606 2804 3001 3206 3411 3619 3811 4000
一种提高AD模块分辨率的方法
大连分公司 王志华 2006年7月
AN018用过采样和求均值提高ADC分辨率
AN018 用过采样和求均值提高 ADC 分辨率
相关器件
本应用笔记适用于下列器件 C8051F000 C8051F001 C8051F002 C8051F005 C8051F006 C8051F010 C8051F011 C8051F012 C8051F015 C8051F016 C8051F017
∆
=
1.2 216
= 18 .3 µ V / oC
这样 我们可以测量的最小温度变化是
Tres16
=
18.3µV code
oC ⋅ 2.8mV
= 0.0065oC / code
Tres16 是 16 位测量的温度分辨率
在采用过采样和求均值技术的情况下 我们用同一个片内 12 位 ADC 可以测量的最小温度变化 是 0.007 摄氏度 这就允许我们以高于百分之一度的精度对温度进行测量
AN018-1.1 MAY01
5
AN018 用过采样和求均值提高 ADC 分辨率
附录 A 噪声和过采样理论
本部分讨论过采样和求均值如何影响带内噪声以及如何根据所要求的 SNR 和测量分辨率计算 过采样比率
过采样和求均值如何改善性能
过采样和求均值是为了完成两个任务 改善信噪比和提高有效分辨率 即增加 ADC 测量的有 效位数 这两个任务实际上是同时完成的 例如 如果我们有一个 12 位 ADC 而希望产生 16 位分 辨率的转换代码 则我们用过采样和求均值技术可以得到与 16 位 ADC 相同的 SNR 这将增加测 量数据的有效位数 ENOB 也是提高 SNR 的一种方法 过采样和均值滤波器允许我们在产生较 低噪声强度的同时得到 16 位的输出字
fos = 44 ⋅1(Hz) = 256Hz
高精度两次采样AD转换_马艳玲
技 Abstr act: In the scopes of measure, AD conversion is a very important part, the higher bit AD converter always is chosen in order to gain
由图可知, 被测量 进入后, 开始第一次采样, 第一次采样 时 数 模 转 换 器(DAC)输 出 VDA 为 0, 前 置 放 大 器×1, 则 被 测 量 直 接给到模数转换器(ADC), 转 换 的数 据 N1 放 到第 一 次 测量 结 果 中, 这次转换的电压我们记为 V1。接下来进行第二次采样, 这时 将数模转换器(DAC)输出的 VDA 为刚才转换的电压 , 则 输 入到 前置放大器的电压为 = - , 既第一次采样时的误差, 这时 将 前置 放 大 器改 成×128, 则 送到 模 数 转 换 器 (ADC) 的 电 压 为 128 , 这 次将 测 量 的数 据 N2 放 到第 二 次 测 量 结 果 中 。 这 样 , 两次采样结束, 总的结果为 N1+N2/128。
创
引言
在 测 量 领 域 中 , 随 着 大 规 模 数 字 时 代 的 到 来 , AD(模 数)转 换已经成为一个非常重要的部分。普通的 AD 转换器因测量精 度较 低 而不 能 满 足 测 量 的 要 求 , 而 高 精 度 的 AD 转 换 器 价 格 昂 贵 , 不 易 推 广 , 所 以 用 简 单 便 宜 的 AD 转 换 实 现 高 精 度 的 测 量 是 一 个 解 决 矛 盾 的 最 好 办 法 。两 次 采 样 技 术 就 是 利 用 低 精 度 的 AD 转换器实现 高 精 度的 转 换 , 它实 现 方 法简 单 , 对 元件 的 要 求 不高, 应用范围非常广泛。下面就介绍一种利用凌阳公司的 SPCE061A 单片机来实现的两次采样 AD 转换。
过采样技术在单片机系统中的运用
过采样技术在单片机系统中的运用一、 概述在很多应用系统中,经常需要使用模/数转换器(ADC )进行测量,这些应用所需要的分辨率取决于信号的动态范围、必须测量的参数的最小变化和信噪比(SNR )。
为了满足测量需要,很多情况下需要使用较高分辨率的ADC 。
随着单片机技术的不断发展,片内自带ADC 的单片机种类越来越多,为了降低设备成本、减小印制板面积、缩短开发时间,大部分工程师都愿意选用片内自带ADC 的单片机来实现相应的测量功能。
但一般单片机自带的ADC 虽然转换速度比较快,但一般分辨率(有效位数)都不高,一般只有8bit 、10bit ,个别型号的单片机提供12bit 甚至更高。
如果需要更高的分辨率,可以利用过采样技术实现。
二、 噪声和过采样理论1、过采样理论根据奈奎斯特定理,所要求的采样频率为奈奎斯特频率 :fn = 2·fm ……………………(式1:奈奎斯特频率)其中fm 是输入信号的最高频率。
如果采样频率fs 高于fn ,则称为过采样。
根据奈奎斯特定理,采样频率fs 允许重建位于采样频率一半以内的有用信号。
如果采样频率为100kHz ,则频率低于50kHz 的信号可以被可靠地重建和分析。
与输入信号一起,还会有噪声信号混叠在有用的测量频带内(小于fs / 2的频率成分):21)2()(s rms f e f E ⨯= …………………(式2:带内噪声的能量谱密度)其中e rms 是平均噪声功率,fs 是采样频率,E(f)是带内ESD 。
(式2)说明信号频带内的噪声能量谱密度ESD (或称为被采样噪声的噪声平面)随采样频率的增加而降低。
2、噪声分析为了理解过采样对噪声的影响我们必须首先定义什么是量化噪声。
两个相邻ADC 码之间的距离决定量化误差的大小,因为ADC 会舍入到最近的量化水平或ADC 码,所以:N refV 2=∆ ………………………(式3:相邻ADC 码之间的距离LSB )其中N 是ADC 的有效位数,V ref 是参考电压。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
错误!未指定书签。 翻译:邵子扬 第 1 页 共 12 页 感谢大家的支持,还是硬着头皮去找我的辅导师,问题解决了,采用了更先进的分段采样的方法,可以把信号分成5段,每段采一次,加起来就是5X1024=5120够了,必须采用差分的输入方式,硬件改动不大,就加了长的4052切换1V.2V.3V.4V.还有默认的5V做为比较电压,具体分为0.1.2.3.4.共5个段,软件就是先判断模拟量属于哪一个段,然后送入相应的比较电压,开始转换得到10位的数据,加上相应的段值乘以1024后,参与PID调节,由于温度的惰性大,只有更高的精度才能满足PID的要求,不过速度比较慢。今天测试基本维持在299.5-300.5度范围。 AVR121: 使用过采样增加ADC精度 翻译:邵子扬 2006年4月13日 修订:邵子扬 2006年4月14日 http://shaoziyang.bloger.com.cn shaoziyang@gmail.com
特点 • 使用过采样增加精度 • 平均和抽取 • 平均采样减少噪声
1 介绍 Atmel的AVR单片机提供了10位精度的模拟到数字转换器。在大多数情况10位精度已经足够了,但是某些情况下需要更高的精度。特殊的信号处理技术可以用来提高测量的精度。使用一种称为“过采样和抽取”的方法可以得到较高的精度,不需要使用外部的ADC。这个应用笔记解释了这个方法,以及它需要满足的条件。
图 1-1. 增加分辨率
2 操作理论 在阅读这篇应用笔记其他部分之前,读者应当先阅读应用笔记AVR120 - ‘ADC校准’和AVR数据手册中ADC的部分。下面的例子和数字是计算单端输入的连续模式,ADC噪声减少模式没有使用。这个方法对其他模式也有效,尽管数字也许会不同。 错误!未指定书签。 翻译:邵子扬 第 2 页 共 12 页 ADC的参考电压和ADC的精度决定了ADC的步距。ADC的参考电压VREF可以选择使用AVCC,内部的2.56V / 1.1V参考电压,或者AREF引脚上的电压。较低的VREF提供了较高的电压精度但是同时减少了输入信号的动态范围。如果2.56V的VREF被选择,它将给用户大约2.5mV的转换精度,并且最高的输入电压是2.56V。 选择使用ADC输入通道的增益,这使用户有更好的精度来测量模拟信号,代价是损失ADC的动态范围。如果不能接受以动态范围交换精度,可以采用过采样来增加精度。这个方法受到ADC的特性限制:使用过采样和抽取将降低ADC的量化误差,但是不能减少ADC的非线性化误差。
2.1 采样频率 Nyquist 定理规定信号的采样频率必需至少是信号频率的两倍,否则高频部分将有损失(带通)。最小需要的采样频率称为Nyquist 频率。 公式 2-1. Nyquist 频率 f nyquist > 2 f signal
这里 fsignal 是输入信号的最高频率,上面的采样频率 fnyquist 称为过采样。这个采样频率只是理论上的绝对最小频率,在实际中,用户通常希望尽可能高的采样频率,在时域中获得最好的效果。这样有人可能会说在大多数情况下输入信号已经是过采样了。
采样频率是CPU时钟的分频的结果,一个较低的分频系数给出较高的ADC时钟频率。在一个特定点,较高的ADC时钟将降低转换的精度,即有效数据位ENOB(Effective Number Of Bits)。所有的ADC都有带宽限制, AVR的ADC也不例外,按照数据手册的说法,要获得10位转换精度,ADC时钟频率大概在50kHz – 200kHz。当ADC时钟是200kHz时,采样频率大约是15kSPS(次每秒),可以采样信号的上限大约是~7.5kHz。按照数据手册,ADC时钟最高可以到1Mhz,尽管这将降低ENOB。
3 理论 3.1 过采样和抽取 ‘过采样和抽取’理论的背后是非常复杂的,但是的方法却是比较容易的。这个技术要求大量的采样,这些额外的采样完成信号过采样。每增加额外的一位精度,信号必需过采样4倍。频率和输入信号的关系在公式3-1中。为了尽可能最好的重现信号,这么多次的采样是必需的,因为大量的采样平均后可以更好的重现输入信号。这可以认为是这篇应用笔记的主要内容,下面的理论和例子用来进一步解释。 公式 3-1. 过采样频率 f oversampling = 4n fnyquis
3.2 噪声 为了使这个方法正常工作,信号成分在转换过程中不能发生变化。但是成功增加精度的另一个标准是输入信号在采样时有所变化。这看起来是矛盾的,因为信号的变化意味着较少有效的LSB,变化的信号可以看成是信号的噪声成分。在信号过采样错误!未指定书签。 翻译:邵子扬 第 3 页 共 12 页 时,噪声使信号产生微小的变化。ADC的量化误差一般至少是0.5LSB,因此噪声幅度超过0.5 LSB就改变了LSB。噪声幅度有1-2 LSB时更好,因为可以保证几次采样不会总是相同的值。 使用抽取技术时,噪声的标准:
信号成分在转换时不能变化。
信号上有一定的噪声。
噪声的幅度至少有1 LSB。 通常AD转换时有一定的噪声,噪声可能是热噪声、CPU的核心产生的噪声、I/O端口切换带来的噪声、电源变化引起的噪声(特别是开关电源)等等。这些噪声在大多数情况下可以使这个方法正常工作了,但是在特殊情况下,需要引入噪声到输入信号,这个方法叫抖动。图 3-1 (a)展示了测量电压信号的在两档之间时,简单将4次采样结果平均没有太大作用,结果可能是同样的数字,它只能消除信号的波动。图3-1 (b) 显示添加人工噪声到输入信号后,改变了转换结果的LSB。添加4次采样同样的采样步骤,产生的结果给出更好的精度,如图3-1 (c) 所示,ADC的“虚拟精度”从10位增加到11位。这个方法就是抽取,在3-3小节会进一步讲解。 图 3-1. 精度从10位增加11位 错误!未指定书签。 翻译:邵子扬
第 4 页 共 12 页 另外使用这个方法的理由是可以增加信噪比,提高有效有效位数ENOB,并将噪声平展开来,使噪声对每个二进制数的影响减少。双倍的采样频率将减少带内噪声3dB,增加有效测量精度0.5位。
3.3 平均 一般平均就是采样M次,结果之和在除以M。正常平均时,ADC测量的数据等效于错误!未指定书签。 翻译:邵子扬 第 5 页 共 12 页 通过了一个低通滤波器,减弱了信号的波动噪声,并使峰值平缓。滑动平均法经常用来这样做,读取M次,将结果放到一个循环队列,平均最近M次的结果。它有轻微的延时,因为每次的结果都是最后M次采样的结果。数据窗口可以重叠也可以不重叠,图 3.2 显示了 7个(Av1-Av7) 独立的不重叠滑动平均的结果。 图 3-2. 滑动平均原理
要注意普通平均不会增加转换的精度,抽样或插值方法和过采样一起使用,才能增加精度。数字信号处理过采样和信号低通滤波经常看成是插值。这时,插值用来产生在大量采样后的新采样结果。越多的平均采样数,越容易选择低通滤波,插值结果越好。额外的M次采样,象普通平均那样累加起来,但是结果不象普通平均那样除以M。而是结果右移N(N是希望增加的额外精度),从而比例化成正确的结果。右移一个二进制数一次等于除以2,。如公式3-1,精度从10位增加到12位需要总共16次10位的采样。这16次10位结果产生一个14位计算结果,其中最后两位是无用的,右移后成为12位结果。比例系数sf 在公式3-2给出,它是总共4n次采样后的除数,这样才能得到正确的比例化结果。n 是需要的额外精度。 公式 3-2. sf = 2n
3.4 “过采样和抽取”什么时候工作 正常情况下信号包含了一定的噪声,这个噪声通常具有高斯噪声的特性,更常用的名称是白噪声或热噪声,在宽频谱中总能量均匀分布在整个频段范围。在这些情况下,如果噪声的幅度可以改变ADC的LSB,‘过采样和抽取’的方法就能够工作。
在其他情况,就有必要引入人工的噪声到输入信号中,这个方法叫做抖动。这个噪声波形应当是高斯噪声,不过周期性的噪声也可以。噪声信号的频率和采样频率有关,一个原则是:“当添加N次采样时,噪声周期不能超过N次采样的周期”。噪声的幅度至少需要1 LSB。.当添加人工噪声时,需要记住噪声的值是0;不充分的过采样会产生偏差,如图3-3. 错误!未指定书签。 翻译:邵子扬 第 6 页 共 12 页 图 3-3. 不充分采样造成的偏差
虚线是锯齿波信号的平均值,图 3-3 (a)将引起负偏差,图3-3 (b) 引起正偏差,图3-3(c)的采样是充分的,就避免了偏差。为了产生人工噪声信号,可以使用AVR单片机的计数器。因为计数器和ADC使用了相同的时钟源,这就能使噪声和采样频率同步,避免了偏差。
3.5 例子1 一个都柏林的酿酒师想测量酿酒时的温度。一个缓慢变化的信号表示了温度,在这种环境下一般温度对应的电压是2.5 V。图3-4显示了温度测量设备的特性。 图 3-4. 电压 / 温度函数 错误!未指定书签。 翻译:邵子扬
第 7 页 共 12 页 酿酒师不希望缩小输入信号的范围,选择5V作为ADC的基准。这时10位ADC不能提供足够精度的转换结果,因为结果的LSB大约是5mV的‘步距’。这个结果会引起0.25°C的误差,所以不能被接受。酿酒师希望结果有0.1°C的精度,要求电压的分辨率小于2mV。如果测量使用了12位的ADC,那么电压步距的LSB将减小到约1.22mV。酿酒师需要的是用10位ADC产生虚拟12位ADC结果。输入信号是缓慢变化的,不需要很高的采样频率。按照数据手册,ADC时钟频率在50kHz到200kHz之间可以保证10位精度,酿酒师因此选择了50kHz的ADC时钟频率。采样频率变为约3800次/秒。一个温度下测量出直流参数是2.4729V,表 3-1 显示了不同分辨率选项下测量的这个参数,Vin = 2.4729V 而 VREF = 5V。 Table 3-1. 分辨率选项 分辨率 电压分辨率 过采样 右移 理想抽取结果 理想电压 最大带宽
10 ~5 mV NA NA NA 2.4658V ~7600Hz (1)
11 ~2.5 mV 4X 1X 1012 2.4707V ~1900Hz (1)
12 ~1.22mV 16X 2X 2025 2.4719V ~475Hz(1) 13 ~610 uV 64X 3X 4051 2.4725V ~118Hz(1) 14 ~300 uV 256X 4X 8103 2.4728V ~29Hz(1) 15 ~150 uV 1024X 5X 16206 2.4728V ~7Hz(1) 16 ~75 uV 4096X 6X 32413 2.4729V ~3Hz(1) 注:1. ADC 时钟 = 200kHz