如何提高处理器的ADC分辨率?


8

我有一个带有12位内部ADC的Atmel SAM4S MCU。我想以500 Hz的采样率实现16位分辨率。ADC的输入频率相当低(最大频率成分约为20 Hz),并且噪声低(小于1个12位lsb RMS)。

如何使用此处理器的ADC实现16位分辨率?

Answers:


6

您可以通过有意对输入信号进行过采样来提高有效分辨率。这是有关Atmel提供的主题的应用笔记中的想法的简要摘要:

“过采样和抽取”背后的理论相当复杂,但是使用该方法相当容易。该技术需要大量的样品。这些额外的采样可以通过对信号进行过采样来实现。对于分辨率的每个附加位n,必须对信号进行四次过采样。公式3-1给出了用于采样输入信号的频率。为了获得最佳的模拟输入信号表示,必须对信号进行过多的采样,因为取平均后,采样数量越多,输入信号的显示效果越好。

完整的应用笔记可在以下位置获得:http : //www.atmel.com/images/doc8003.pdf

在您的特定情况下,您需要以大约8KHz采样,以从12位ADC中获得相当于16位分辨率的分辨率。

这是我得出这个数字的方式:

f_oversample_rate = f_current_sample_rate * (4 * (desired_bits - current_bits))
f_oversample_rate = 500Hz * (4 * (16 - 12))
f_oversample_rate = 500Hz * (4 * 4)
f_oversample_rate = 500Hz * 16
f_oversample_rate = 8KHz

是否需要一些噪音才能工作?我们已经获得了噪声的最大值,该最大值就足够了,但没有最小值。

2
@SimonJenkins是的。本应用笔记的第3.2节介绍了噪声,并规定噪声电平至少为1 LSB,但硬性最小值略高于0.5LSB,因为这足以切换LSB。如果您的系统不符合该规范,则可以通过抖动添加人为噪声。
skrrgwasme,2015年
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.