级联ADC以获得更高的分辨率


11

假设我有一对12位ADC,可以想象它们可以级​​联以获得<= 24位输出。

我可以考虑简单地将一个用于正范围,将另一个用于负范围,尽管跨接区域可能会有一些失真。(假设我们可以忽略一些误差位,或者也许放置一个第三个ADC来测量0伏左右的值)。

我一直在考虑的另一个选择是使用单个高速ADC并切换参考电压以在较低速度下获得更高的分辨率。另外,还应该有一种方法,使用一个固定参考ADC来获得实值结果,然后切换次级转换器的aref以获得两者之间的更精确值。

欢迎任何意见和建议。

我假设四块8位(或双12位)芯片比单个24位芯片便宜。


2
是的,从理论上讲,在0.01%的实际情况下,零件的“有效位数”等于“数据位数”是可行的,而其余的规范则要求额外的5个数量级的精度。对于99.99%的零件,情况并非如此。

4
如果将一个用于正电压,将另一个用于负电压,则只能得到13位。级联它们将需要DAC和放大器。您直接在信号上转换,将值写入DAC,然后从输入信号中减去DAC输出。然后,将信号放大,并将其馈入第二个ADC。212
康纳·沃尔夫,

Answers:


11

您的问题中有很多事情。因此,让我们一个接一个地对待它们。

假设我有一对12位ADC,可以想象它们可以级​​联以获得<= 24位输出。我可以考虑简单地将一个用于正范围,将另一个用于负范围,尽管跨接区域可能会有一些失真。(假设我们可以忽略一些误差位,或者也许放置一个第三个ADC来测量0伏左右的值)。

并非如此-您将获得13位分辨率。可以将12位转换器的操作描述为确定4096个bin(2 ^ 12)输入电压中的哪个电压。两个12位ADC将为您提供8192个bin或13位分辨率。

我一直在考虑的另一个选择是使用单个高速ADC并切换参考电压以在较低速度下获得更高的分辨率。

实际上,这就是逐次逼近转换器的工作方式。基本上,一位转换器(又名比较器)与数模转换器一起使用,该模数转换器根据逐次逼近算法产生变化的参考电压,以获得电压的数字化样本。请注意,SAR转换器非常流行,uC中的大多数ADC都是SAR类型。

另外,还应该有一种方法,使用一个固定参考ADC来获得实值结果,然后切换次级转换器的aref以获得两者之间的更精确值。

实际上,它与流水线ADC的工作原理极为相似。但是,不是更改辅助ADC的基准,而是由第一级ADC放大和处理在第一级之后留下的残留误差。

欢迎任何意见和建议。我假设四块8位(或双12位)芯片比单个24位芯片便宜。

实际上,有一个原因是,拥有24位转换器并不像在某些配置中安排四个8位转换器那样简单。还有很多。我认为这里的主要误解是认为一个人只能“增加”位数。为了弄清楚为什么这是错误的,最好将ADC视为决定输入电压属于“ bin”的电路。箱数等于2 ^(位数)。因此8位转换器将具有256个bin(2 ^ 8)。24位转换器将具有超过1600万个bin(2 ^ 24)。因此,为了具有与24位转换器相同的bin数量,一个人将需要超过65万个8位转换器(实际上是2 ^ 16)。

继续进行bin类比-假设您的ADC具有1V的满量程。然后8位转换器“ bin”为1V / 256 =〜3.9mV。如果是24位转换器,则为1V /(2 ^ 24)=〜59.6nV。从直觉上很明显,“确定”电压是否属于较小的区间更难。实际上,由于噪声和各种电路不理想,情况确实如此。因此,不仅需要超过65万个8位转换器来获得24位分辨率,而且这些8位转换器还必须能够解析为24位大小的bin(您的常规8位转换器可能不够好,因为它能够解析为〜3.9mV bin,而不是59.6nV bin)


一个8位转换器的工作范围是256 * 59.6nV = 15.26uV。我从没把参考电压做得这么低和精确:)
Hans

14

划分输入范围将使您获得13位而不是24位。假设您的输入范围为-4.096V至+ 4.096V。然后,一个12位ADC将具有2mV分辨率:2 x 2mV = 8.192V(范围为-4.096V至+ 4.096V)。如果采用正一半,则得到的分辨率为1mV,因为您的范围减半:2 x 1mV = 4.096V。在0V之上为2电平,在下面为2。2 + 2 = 2在一起,所以多了1位,而不是12位。12 12 12 12 12 13 131212121212 1213

关于更改参考电压。我将举一个不同的例子。假设您有一个1位ADC,并且希望通过更改参考来获得12位。如果输入大于,一位将为您提供1 ,否则为0。假设您的参考电压为1V,则阈值为0.5V。如果将参考电压更改为0.9V,则将有一个新阈值0.45V,因此您已经可以识别3个不同的电平。嘿,这可能行得通,我可以使用1位ADC进行12位处理,然后也可以使用12位ADC进行24位处理!VREF2
拿住!没那么快!您可以执行此操作,但是1位ADC的组件必须为12位等级。这是为了参考和比较器的精度。同样,如果ADC的精度足够精确,并且可变参考电压的精度为24位等级,则12位ADC可以执行24位。因此,在实践中您不会获得太多收益。

没有免费的午餐。

编辑
似乎有一个约过采样误解,事实上,有 1位音频ADC,可以给你16位分辨率。
如果您的输入是固定的直流电平,例如在1V输入范围内为0.2V,则您的输出也将始终相同。对于我们的示例,使用1位ADC时,该值为零(电平小于参考值的一半)。现在是这样,无论您是以每秒1个样本还是以1000个样本进行采样。因此平均不会改变这一点。为什么它与音频ADC一起工作?因为电压一直在变化(噪声),根据爱因斯坦(相对论,您知道;-)),这与保持电压恒定和改变参考电压相同。而在过采样时,您会得到几个不同的读数,您可以将其平均以得到与实际水平相当的近似值。
噪声必须足够强以通过ADC的阈值,并且必须满足某些约束条件,例如高斯分布(白噪声)。在1位示例中,由于噪声水平太低而无法正常工作。


进一步阅读:
Atmel应用笔记AVR121:通过过采样提高ADC分辨率


我不确定我是否理解您的想法。当然,如果将+和-分开,则可以在12位的0v至+ 4.096v以及12位的0v至-4.096v的范围内采样,从而在整个范围内总共获得24位?
马延科2011年

1
@MattJenkins,它与符号位相同。想一想。如果我以12位采样0-10V,以12位采样0-(-10V),则只需要一位即可说明信号是正还是负。
2011年

的确如此-因此,尽管您可以采样为24位,但只需13位就可以得到完全相同的分辨率。
马延科2011年

@Matt-分辨率每提高一倍,您的收入就会增加1位。超过8V的2位给您2V的分辨率(),第三位给您一半的分辨率为1V()。8V8V2V=228V1V=23
stevenvh 2011年

@MattJenkins,您可以使用1个热编码并采用1024位而不是10位。物理现实是工程师可以做他想做的任何事情,只是告诉客户您只差了3dB,而​​不是10kW。
2011年

3

是的,理论上您可以做您想做的事,但前提是您有一些完全不切实际的设备。

到目前为止,关于有限的额外准确性的其他几条评论是正确的,correct。

考虑。用12位ADC测量电压,并说出111111000010,您知道实际值位于该值两侧+/- 1到1比特范围内。

如果您的ADC精确到24位,但仅提供12位,则表明vaklue位于111111000010 000000000000的+/-半个比特之内。如果是这种情况,您可以选择一个带有+/-的12位ADC 1/2位范围,将其居中于111111000010000000000000并读取结果。根据需要,这将为您提供实际信号与aDC值之间的差。QED。

但是,12位ADC本身仅精确到大约一半。它的各种错误的总和使它在实际结果达到大约一半但正负不同时声明某个结果。

虽然你想

111111000010表示111111000010 000000000000

它实际上可能意味着111111000010 000101101010或其他。

因此,如果您随后使用第二个ADC并测量低12位和ASSUME,它们相对于确切的12位边界,则它们实际上是相对于上述错误值的。由于此值本质上是随机错误,因此您将向新的12个低位数字添加到12位本质上为随机噪声的位置。精确+随机=新随机。

使用两个可以测量范围并以10个步骤之一给出结果的曲线图。如果缩放到100伏FS,则它们给出ge 0 10 20 30 40 50 60 70 80 90

如果缩放到10伏满刻度,它们会给出1 2 3 4 5 6 7 8 9

您决定使用这两个转换器以1伏的精度测量100伏范围。

转换器1返回70V。然后测量相对于70V的电压,得到-3V。因此,您认为实际值即+ 70V-3V = 67V。

然而实际上70V的结果可能是65 66 67 68 69 70 71 72 73 74中的任何一个

仅当第一个转换器在100 V时精确到1 V时,即使它以100 V的步长显示10 V,也可以实现您想要的。

因此,您的实际结果是67V +/- 5伏特= 62V至72V。因此,您的生活不会比以前更好。您的中心已移动,但可能位于随机位置。

您将能够以这种方式获得适度的改进,因为转换器通常可能比其返回的位(您希望)更准确,因此您的第二台转换器会对此加以利用。


提到了实际上可以工作的系统,但有一个重要的遗漏。如果您对信号进行N次采样,并且加上+ / _半个高斯噪声,您将“在可能的范围内”扩展信号,并且平均值现在将比以前更精确log(N)。该方案具有鱼钩和限定条件,您不能仅获得任意数量的额外位数,但确实提供了一些改进。


在上面的第一种情况下,我提到了24位精度的12位ADC。您可以通过使用12位ADC并使用24位(例如delta sigma转换器)读取其假定值来达到某种目的。如果信号足够稳定,可以保持在同一位范围内,则可以使用第二个ADC读取该稳定信号的第二个12位。

另一种选择-最初只读取具有sigma delta的24位信号,然后锁定在该点上,然后使用第二个ADC相对于它进行连续测量。只要信号保持在第二个ADC的范围内,您就会得到更快的结果。


嗯 一票。一票。在这里[tm]给出了可以通过的最佳答案的答案:-)我很想知道是谁认为这个答案如此糟糕以至于不值得投票,为什么?
罗素·麦克马洪

1

有一种叫做超级采样的东西,可以用来提高许多类型ADC的分辨率。

它通过向信号添加噪声来工作。尽管噪声降低了分辨率,但是有必要使数据将自身拆分为几个位。(我不是信号处理专家,这只是我的理解。)您的噪声可能只有1或2位,但它必须存在。如果您采用一个12位样本-您就有12位。如果您随后取了4个样本,将它们加在一起并除以2,便得到13位样本。(由于奈奎斯特,每个附加位需要4个样本。)

一种简单的方法是将噪声添加到参考电压中。我使用它来将dsPIC33F中的12位ADC提升到16位,以获得更高的分辨率。事先,我在高频下设置了一个异步计时器,并使用DMA将PRNG编号序列排队到输出捕获中,从而提供了相对干净的噪声源。噪声输出将参考电压偏置约0.1%(1k-1Meg分压器)。噪声是双向的,吸收性和源性的。我使用dsPIC33F的DMA对样本进行排队,因此只需很少的CPU干预即可完成。当然,最大采样率降至正常采样率的1/32左右,但这对我的应用程序来说不是问题。

由于噪声并不总是均匀分布的,因此我将校准每个出厂设备的输入,尽管差异可能只有1或2 LSB。


您如何知道添加的噪声具有正确的频谱(白噪声)?您如何确定振幅?如果您的噪音不好,那么您将获得更高的分辨率,但准确性更高。
Federico Russo

@Federico当然-对我来说,这是反复试验。可以使用PRNG来模拟白噪声,并且仅对32个样本就可以很好地工作。如果我是一名真正的电子工程师,我会知道如何正确进行。
Thomas O

以下是ADI公司的一篇文章,可能有助于解释这一点:Analog.com/library/analogdialogue/archives/40-02/adc_noise.html
DarenW 2011年

@ThomasO,我已将此技术与热敏电阻一起使用,以增加8位精度。虽然没有噪音,但我们使用暖气。
Kortuk

@DarenW看起来很熟悉-我想这就是我的主意。
Thomas O

1

使用求和放大器可以对两个DAC输出求和。您可以使用R1 = 100k,R2 = R3 = 100欧姆。这样,输出将为Vout =-(V1 + V2 / 1000)。您将需要双电源,并且如果要使其不反相,则需要放置另一个增益= 1的反相放大器。因此,假设您有12位DAC,具有2个输出和参考4.096V。然后(如果您有第二个反相放大器),DAC 1的增量将使输出增加1uV,DAC 2的增量将使输出增加1mV。这是不是在总共24位。大约22位。从理论上讲,您可以选择R1为R2和R3的4096倍,并获得24位,但是您不会得到更好的结果。即使选择了良好的低噪声运算放大器,您也会在微伏范围内遇到很多噪声问题。

更新 我,尽管这是关于DAC的问题,因为我正在搜索DAC。这是将类似原理应用于ADC的方法。无需求和,您必须减去ADC1结果,然后乘以1000,然后再使用ADC2进行测量。

双ADC分​​辨率

校正-ADC3应该在VGnd(Vref / 2)上,而不是在Vref上,以匹配结果公式

代替AZ431,您可以使用任何其他2.5V基准电压源或其他带有适当无源电压的可调基准电压源来精确获得4.096V。基准温度漂移越小,结果越好。而且它必须是低噪音的。请注意,它可能不够准确。将带有游标的R7和R8之间的500 ohm多匝微调电位计放置到参考输入并将其精确调整为Vref = 4.096V会很好。此外,在R1和R2之间还需要一个微调电位器(2),抽头至U1的正输入端。在VGnd上将其调整为2.048V。U1就是任何低噪声运算放大器。(BTW AZ431太糟糕了。我放了它是因为我有符号)。

对于U2,U3和U4,零偏置斩波放大器至关重要。U2更重要,因为它乘以100。每1微伏达到100微伏。如果使用OP07并将其正确置零,并且温度以10度变化,则将获得13 uV偏移,这在U4的输出上转换为1.3 mV。ADC输出为13 mV,这使得ADC2几乎没有用。

而且U3必须能够达到6.048V-即VGnd(2.048V)+ 2xVinmax(2x2V = 4V)。这就是使用Vcc = + 12V电源的整个想法。使用MAX44252时,Vcc可低至6.5V。由于MAX44252是轨到轨运算放大器,因此可以忽略负电源,并且运算放大器的Vss可以接地。对于任何可以在其输出上低至48mV的运算放大器来说都是如此。

MAX44252具有2-4uV的失调电压(典型值)和1至5 nV的温度漂移。数量为1时,digikey价格为2.64美元,它是Quadopamp,所以只有一个芯片可以完成。

这个怎么运作?让我们以10位DAC为例。分辨率为4.096 / 1024 = 4mV。输入信号必须相对于VGnd,即Vref的一半。ADC1正常测量输入电压。然后通过DAC1输出该值。Vin和DAC1之间的差异是您需要放大,测量并添加到ADC1结果中的误差。U2放大相对于DAC1的差异Vin-DAC1,增益为100。U4放大该差异10并相对于VGnd减去DAC1。相对于VGnd,这使得ADC2 =(Vin-DAC1)* 1000。换句话说,相对于VGnd,Vin上的电压为1.234567V。ADC1的测量值为821因为分辨率为4mV和(2.048 + 1.234567)/0.004 = 820.64175。因此,DAC值将设置为309,即309 * 0.004V = 1.236V。现在ADC2相对于VGnd将获得1.234567-1.236 = -0.001433 * 1000 = -1.433V(理想情况下)。那就是2.048-1.433 = 0.615V共模。0.615V / 0.004 = 153.75。因此ADC2值= 154。避免使用浮点数,以微伏为单位的计算值更容易。若要将ADC2转换为mV,我们必须将该值乘以4:VADC1 = 821 * 4 = 3284mV。要转换为uV,我们需要乘以1000。或者是ADC1值乘以4000。821* 4000 =3284000。因此,相对于VGnd的ADC1电压为3284000-2048000 = 1236000uV。ADC2已经乘以1000,因此我们只需要乘以4:VADC2 = 154 * 4 =616。要获得相对于VGnd的电压,我们需要减去VGnd:616-2048 = -1432uV。我们在这里取VGnd = 2048uV,因为我们有x1000的放大倍数,现在我们添加VADC1和VADC2:1236000 +(-1432)= 1234568uV或1.234568V

当然,这只是做梦,因为当您处理微伏特时,会遇到各种可怕的问题-运算放大器噪声,电阻器噪声,电压偏移,温度漂移,增益误差...但是,如果您使用合格的零件,则至少应使用1%的电阻器和您可以通过编程使偏移量为零,并校正增益,您可能会获得相当不错的结果。当然,您不能指望最后一位输入稳定。也许您可以将分辨率限制为10uV(将结果除以10)。同样,乘以4可以通过对4个连续结果求和以求平均值。

请记住,没有任何测试。我只模拟了放大器级,没有考虑噪声和运算放大器失调。如果有人决定建造它,请将结果写在评论中。


问题询问AD C.你说说DA C.
在SE暗淡失去了信心

对不起。我搜索了DAC,发现了这个问题。我写的时候没有仔细阅读。我会建议如何将相同的原理应用于ADC。
NickSoft

我删除了我的弃权票,因为您的帖子现在与该问题有关。但是我认为这种解决方案无法在实践中起作用。恐怕会有太多的错误。
黯淡了对SE

当然可以。但是,精度取决于所使用的零件。斩波放大器的失调电压为0.1uV,漂移为1-5nV / degC。他们也有纳伏0.1-10Hz pp噪声。结合良好的参考,它可以获得高达10s uV的稳定输出。但是,如果您想获得更多的数字,可以使用便宜的零件。例如,具有4.096V基准的10位ADC的分辨率为4mV。我认为使用该电路可以轻松地将其提高到0.1uV分辨率(也许有更好的参考)。这是+/- 20000个计数。当然,需要针对偏移和增益进行软件校准。
NickSoft'1

这就是全部理论。ADC2读数取决于您的DAC设置(以及运算放大器失调,但这不是最关键的部分),其本身取决于ADC1读数(以及所有这些均具有容差),这一事实将导致您肯定会赢得一个事实。甚至无法保证系统的单调运行(即使您处于计算出的精度范围之内)。
暗淡迷失了对SE

0

log2(a lot)

编辑:请参阅注释以更正我的数学。


我也是这么想的,但请考虑一下:1V输入范围,0.2V输入,1位ADC。不管您的过采样有多高,您始终会读取0,平均值= 0,而不是0.2。
stevenvh 2011年

像这样的过采样将需要信号上的一些“噪声”。正如史蒂文夫指出的。有时,信号本身具有足够的“噪声”即可完成此操作而无需任何新操作。其他时候,您需要向信号中注入一些高频噪声-但是该噪声将在随后进行的后期处理中被滤除。

是的,“取决于信号的性质”。问题并没有说明他是从粘贴在铅砖侧面的热敏电阻读取温度,还是从SDR采样混频器输出。所以他有另一个选择。如果有人能提供准确的数学属性的指针,则信号过采样有效才是有效的,顺便说一句,我真的很感兴趣。(这似乎是一个有用的补充,而不是抱歉,更正的内容只是比我最初的发言要少一些。)
Jay Kominek 2011年

log2(alot)2

我的主要兴趣是在音频信号上,因此尽管24位转换器非常昂贵且并不存在很多,但我可能会级联更多可用的转换器。感谢大家的深入解释。一开始听起来确实可行,不是吗?:)
errordeveloper 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.