将观察的模拟量转换成数字量,给观察和处理到来很大的便利。比如一个数字温度计可以清晰的显示出你的体温,这要比判断水银温度计方便。 - \$ ~* H# {4 C8 a; G数字温度计 }: d/ h0 k8 ^: M, y; h- r 但这里也会出现一个问题,信号转换成数字信号会产生量化误差,会降低数值的精度。比如数字温度计只显示到 1 摄氏度,则在摄氏度范围内所显示的温度都一样,这对判断你是否发烧有时也会带来麻烦。 5 ]; U1 n/ J6 S% e# G6 R0 { 那么该如何提高 ADC 转换精度,降低量化误差对于测量结果的影响呢? 8 `$ r7 a6 K8 r- ~, ~ 1.ADC 的信噪比(SNR) ADC 将模拟信号转换成有限个数的数字编码,通常取连续区间的整数。比如 0~255 就构成了 8 位 ADC 的数字编码集合。变化后的数字就与原来模拟信号产生了量化误差。对于理想 ADC,这种量化误差一般位于 LSB。 - _, U5 n0 T! I! k* J0 v/ k7 q8 U " f9 w! }8 R' [% E; P! J如果在每次采样之间信号变化若干个量化区间,而且变化与采样时间不同步,这种量化误差基本上呈现一种白色噪声,取值均匀分布在从直流到采样频率一半的频率区间内。 ADC 可以表示成两个阶段时间采样和幅度量化 SNR 表征了 ADC 结果中的信号能量与噪声能量的比值。在上述理想假设下,仅仅考虑量化误差所产生的噪声,对于满量程模拟信号经过量化之后对应的信噪比有下面公式给出: . e, w( q3 S" v7 n! Z, s# g 其中 N 是 ADC 的位数,也称为 ADC 的分辨率。当转换结果的 SNR 增加时,对应的 ADC 的有效位数也增加了,一个 ADC 的有效位对应 6dB 的信噪比。所以前面提到的减少数字量化误差本质上是如何提高转换结果中 SNR。 2.Nyquist 定理和过采样 Nyquist 定理,也称为 Shannon 采样定理,表明如使用均匀时间间隔的信号采样完全恢复原来的信号,采样频率至少比原信号最高频率大两倍,否则就会在采样的数据中出现“混叠”虚假的干扰信号。 2 e9 G7 y8 G) t3 @- ]. [: u3 `; ~# l2 s 为此,实际应用中常常在采样前使用低通滤波器将高于采样频率一半的成分去掉,做到这一点有时比较困难。 7 a5 i. ~6 Y3 k/ S7 e' g$ e 在下面的动图中,可以看到不同比例下所显示的图片因为空间像采样频率不满足 Nyquist 频谱而出现的混叠现象。 二维图片中的混叠现象 4 W* i2 D9 | E2 V. e 过采样就是采用比 Nyquist 频率高多的采样速率采集信号,然后再对信号进行平滑滤波、下采样,这样就可以避免使用抗混叠低通滤波器了。 3. 使用白噪声进行过采样 3.1 带有白噪声时过采样后的信噪比(SNR) 如果采样后的数据转化成数字信号时的量化误差为白噪声,那么它的能量密度均匀分布在直流到 Nyquist 采样频率一般的频率空间里,它与是采样频率之间没有关联。 ( l! r9 E# u& C! Z' Q6 ] 当使用高的采样速率的时,量化噪声分布在更宽的频率范围内。如下图所示: 过采样如何影响量化噪声的 根据上图所示,当采用更高的采样频率时,同样的量化噪声能力(绿色方框所示)就会分布在更宽的频率空间(灰色方框),这样就只有少部分的噪声落在信号频谱范围内了:。而信号频谱范围外的噪声可以通过数字低通滤波器消除掉。 因此,每增加一倍的采样频率,就会提高信噪比 3dB,相当于提高了 ADC 个 bit。增加 6 个 dB 就可以提高 ADC 转换精度 1 个 bit。 * D0 d# I9 A5 A O- l所以,假设需要增加 p 个 ADC 的有效转换比特,那么所需要的采样频率为: 3.2 数据抽取(Decimation) 通常情况下的频率是将 m 个数据相加之后再除以 m。这相当于对数据进行了低通平滑滤波,将信号中的毛刺去掉。 这种简单的平均并不能够带来结果的 bit 位的增加。数据抽取(Decimation)和过采样结合可以增加数据的有效位数。应用中,将个数据累加,得到 N+2p 位的数,然后在右移 p 位,便可以得到 N+p 位的数据了。 3.3 什么时候采用过采样可以提高 ADC 的有效位数? 为了能够使得过采样加数据抽取可能够提高 ADC 的有效位数,需要满足以下条件: & \$ H1 S U, w9 `! x+ C 在输入信号中应该有一定的噪声,具有在感兴趣频率范围内均匀分布的高斯分布的噪声; 噪声的幅值应该能够使得信号 ADC 结果最后一位跳动,否则所采集到的数值都一样,经过平均抽取就无法有效提高精度了。 % \! ]9 a1 a! P- O4 v4 O: T 通常情况下 ADC 内部的热噪声以及输入信号中的噪声就可以满足上面的要求,否则就要另外增加白色噪声,此时成为噪声扰动(dither)方法。那么就有两个问题出现了: , p% H. N b5 |+ s; D 第一就是如何判断采集过程中有复合高斯分布的白噪声? 8 }. A" r& V9 y- I+ r" _ 如果没有如何人工添加? ( o/ @6 t; d. A& L 2 r4 I4 x! O9 n s/ [+ H$ l对于第一个问题在实际中可以通过对一个直流信号进行采集数据的直方图统计,通过它的分布,可以进行 Gause 检验验证是复合高斯白噪声分布的。下面两个图显示了两种可能的情形。 数据直方图分析 对于第二个问题,可以在需要添加噪声的时候,将二极管,或者电阻所产生的热噪声注入到输入信号中。此过程需要保证注入的噪声与输入信号之间不相关。因此在一些反馈系统中,这种直接注入白色噪声的方法就会失效。 下图显示了单片机采集 1.65V 直流电压所得到的 ADC 数据,在 EXCEL 表格中绘制的直方图分析表格,它反映了单片机 ADC 内部的热噪声。 对于 DC=1.65V 采样的 ADC 结果的直方图分析 使用三角波信号扰动进行过采样 为了使得过采样数据能够提高有效 ADC 位数,需要采样数据能够在多个数字之间变动。如果输入数据噪声非常小,采集到的 ADC 数据是稳定的,此时就需要额外在信号中加入波动的噪声,以使得采集到的数据能够有变动。 一种常使用的扰动噪声信号就是三角波信号。理论分析可知,加入的三角波在周期上应该等于 ADC 采样时间再乘以过采样倍数,三角波在幅度上为 n+0.5LSB,n 可以取 0,1,2,3。 如何增加三角信号来提高过采样性能 ! T1 N' O @; W 如果输入信号与加入的三角波信号不相关时,通过过采样可以得到结果的信噪比为: 4 S9 h' Y+ R9 S: S- H; { 因此,每增加一倍的采样率,就可以增加一位有效 ADC 位数。但实际上,这个增加的位数有可能减少,因此一般情况下,如果需要增加 p 位的 ADC 分辨率,施加三角波扰动过采样的频率应该等于: , y: P- F0 s# m0 t% k对比前面通过白噪声过采样的情况,再增加同样 ADC 有效位数时,使用三角波扰动所需要增加的采样频率更低。 不像前面所分析的白噪声,可以直接由电子器件内部的热噪声产生。如果需要在输入信号中添加三角波形,则需要借助外部的电路完成。下面显示了在原有的信号采集调理电路回路中,通过 RC 电路将单片机所产生的 PWM 方波信号转换成三角波,然后在叠加在输入信号的幅值上去。 使用硬件电路完成增加三角波扰动 0 P0 `; O5 i5 C; i1 @) J6 G" {1 F 虽说使用外加三角波扰动可以更加有效提高采样位数,但它要求三角波的周期与采样周期之间保持有效的倍数关系,这往往需要对单片机内部的时钟设置有了更高的要求,有的时候可能无法满足。 如果单片机电路中还带有 DAC 模块,则可以利用 DAC 产生所需要的白噪声,或者三角波噪声,叠加到采样信号中,通过过采样有效提高采样的有效位数。 : b, J0 h& l+ G/ O/ d+ ^ 在本学期“信号与系统”课程中,关于采样定理的讨论将会在第八周,第四周的内容进行讨论。 " L0 C8 U. ?4 a0 A 噪声,有的时候会干扰信号被人讨厌,但有的时候则会帮助澄清信息,改善 ADC 的精度。有噪声的世界就是这么奇妙。 |
噪声,ADC的伴侣 |