财新传媒
位置:博客 > 知识分子 > 从钻戒到物理量的数字化

从钻戒到物理量的数字化

撰文 | 吴进远(美国费米国家加速器实验室)

责编 | 陈晓雪

“模拟量的数字化听上去非常高大上,可相关的概念却存在很久了”。我刚讲了这么半句话,一位年轻同学举手了:“老师,现在顾不上这个了,您讲点实用的吧。我马上要向女朋友求婚,想买个钻戒,我想知道买多少克拉的合适,克拉又是怎么回事。”

克拉来源于一种豆角树的豆子,它们的重量非常均匀,因此被商人们用来衡量宝石的重量。你看,重量本来是模拟量,但是可以通过和豆子比较,变成一个数字量,而模数转换中的一个灵魂性的要素就是比较。当然啦,买戒指可千万不要和别人比较,还是要量力而行,只要你们两人都喜欢,大小无所谓。你放心,不是有句话说学琴的孩子不变坏吗,同理,每天读《知识分子》的同学也不俗气。

只是你自己,别把“克拉”的“拉”字给拉掉了。一克拉是200毫克,少个“拉”字,重量增加5倍,一般人很难买得起。好啦,你去买钻戒吧,今天不求婚的同学继续上课。

我们今天要讲的,就是物理量的数字化。

科学研究离不开科学观测,科学观测的目标可以是自然现象,也可以是受控制的实验现象。

在计算机没有出现的时代,人们将被观测现象呈现的物理量用仪器测定下来,记录到工作日志本上,有时,会拍一些照片,洗印出来,贴到本子里。现在,这些工作大部分都可以由计算机完成了。

要想将物理量的数值,以及它们的变化传输到计算机内,必不可少的一种“神器”就是数字化器件。

实际上,不仅是科研工作,我们平时打电话,拍照片,都离不开数字化器件。语音或光强信息本来都是模拟量,它们必须通过数字化器件才能变成数字量,从而进入手机被处理存储与传输。

数字化器件包含两大类,第一类是模数转换器(analog to digital converter, ADC),另一类是时数转换器(Time to digital converter, TDC)。

ADC的功能是将输入电压幅度或者在一段时间内累计的电荷量变换成为数字量,图1 是ADC工作原理的示意图。

近代主流的ADC器件的转换过程包括采样以及数字化两个主要步骤。

首先,ADC器件将连续变化的输入电压的瞬间幅度通过模拟开关器件采样纪录到一个电容上,使之在短时间内维持采样瞬间得到的电压值。接着,ADC器件利用比较器阵列等电路将采样电压的幅度转换成为由一组0与1两种逻辑电平组成的二进制数字,最终输出到后级的微处理器等逻辑电路做进一步处理。这类ADC通常由一个时钟脉冲信号驱动,每隔一段时间就会进行新的采样并生产新的数据。

TDC的功能是将输入信号的到达时间转换成为数字量,其工作原理如图2所示。

在很多情况下,TDC与一个比较器电路配合使用。比较器将输入电压与一个固定的阈值电压相比较,当输入电压高于或低于阈值电压时,分别输出高或低两种不同的逻辑电平。这样一个逻辑脉冲被送到TDC器件,在器件中将逻辑脉冲的到达时刻通过一个计时器测量下来,变成一组数字信号输出出来。

当然,时间也是一种模拟量,所以,严格来说,TDC也是一种ADC。只不过由于时间测量的特殊性,我们把这两种数字化器件归纳为两个不同的种类。

由于大多数物理量,比如力、压强、温度、光亮度等等都可以通过转换器件转变为电压来模拟,文章的第一部分将着重讨论ADC的性质。而TDC在各种物理学实验当中也有不少特殊的应用,同时更加容易通过逻辑电子电路来实现,我们也将在文章的第二部分做出介绍。

模数转换

01

模拟量的数字化,主要参数体现在横竖两个方向。

在竖的方向,是指将满度电压(通常是1V或2V)分割成许多份。如果一个ADC是8比特的,这表示输入电压的高低最终会被转换成为一个8比特的数。也就是说,满度电压会被分割成为256份左右。同理,9比特分割成512份, 10比特分割成1024份等等。ADC的比特数直接影响其测量精度。

在横的方向,ADC的采样速率是一个重要的指标。

对于一些变化比较慢的物理量,比如房间里空气的温度、湿度、压强等,每秒1个采样点乃至十分钟一个采样点就够了。

我们手机中通常都装备了加速度、角速度、磁场强度等传感器,由于有了加速度传感器,当我们把手机横过来时,手机会把显示的照片或文字自动横过来。由于有了角速度传感器,我们的手机可以轻松变身为虚拟现实显示器。而有了磁场传感器,我们的手机上可以安装罗盘,这样出门可以找到北。这些传感器的采样率大约是每秒10到100点,如图3所示。

数字相机在拍摄视频的时候,每个像素的采样率通常是每秒30点,拍摄慢动作镜头时,是每秒采样120或240点。

在手机或其它数字语音传输系统中,其采样速度至少是每秒8000点。

而在很多科学实验当中,我们需要更快的采样速度。比如在自由电子激光的成像系统中,每个像素的采样速度需要达到5MSPS量级(MSPS是每秒100万采样点的意思)。

实验室中通常使用的数字式示波器,采样速率大多在1-10GSPS范围内(GSPS是每秒10亿采样点的意思)。

这里特别提醒,ADC所产生的原始数据数量非常大。比如当我们的示波器用1 GSPS采样,每个采样点生成8比特数据,则每秒可以产生1 GB的数据,如果不对数据进行压缩,只需要8秒就能填满一个8 GB的存储卡。(当然,大多数存储卡的写入速度压根就没有这么快。)因此,在大多数应用当中,ADC所生成的数据往往需要利用另外的触发电路,仅将有用的数据截取出来。另一个比较常用的解决方案是将ADC的数据进行压缩,这种压缩可以是有损的也可以是无损的。经过压缩,全部信号当中变化比较缓慢,包含信息较少时间段里的数据只需要比较少的比特数就可以表达,因而所占用的存储空间会相应减少,

 时数转换

02

时数转换(TDC)的功能是把一个脉冲信号的到达时刻或者两个脉冲信号之间的时间间隔转换为数字。

我们这里举一个例子来说明时数转换的应用。如图4所示,当一个高能粒子依次飞过若干个探测器单元HA,HB,HC 与 HD时,这些探测器单元会产生一组脉冲。这些脉冲信号之间的时间间隔,反映了粒子的飞行速度。

比如粒子击中HA的时刻为TA,击中HD的时刻为TD。根据粒子在探测单元上所击中的位置,我们可以算出粒子径迹的长度。有了长度和时间差,我们就可以算出粒子的速度。

当粒子的动量固定时,质量越大的的粒子飞行的速度越慢。粒子的动量可以根据粒子飞过磁铁M偏转时的曲率半径算出来。在已知动量的情况下,根据带电粒子的速度,可以计算出它的静止质量。得到静止质量后,再与已知粒子的静止质量相比较,我们就可以知道飞过的带电粒子是什么了。这有点类似阿基米德测定出皇冠的比重,再与已知材料的比重相对照,就可以知道皇冠是不是纯金制做的了。

时数转换适合于使用纯粹的高速数字逻辑电路器件来实现,尤其是用现场可编程门电路阵列(FPGA)来做,并且可以和数据采集与传输的其它功能集成到一个芯片当中,使用非常方便。

TDC由于实现起来非常方便,往往可以用来替代采样速率不太高的ADC。比如图5中,VIN是待数字化的输入信号,需要的采样频率为2MSPS,VR是我们生成的一个锯齿波参考信号,其周期是500纳秒长。

当VR穿过VIN时,用一个比较器电路可以得到一个逻辑电平的跳跃。在稳定工作状态下,参考电压的上升坡度或斜率是已知的,比如为(2V/400 ns)。只要我们用TDC测量得到比较器输出跳跃的时间T1,T2等,就可以知道VIN在这一时刻的高度V1,V2等。比如当我们测出T1=150ns,我们就可以算出,V1 = 150*(2/400)= 0.75 (V)。

容易误入的陷阱误区

03

我们设计实验装置的时候,往往会把注意力放在ADC器件本身,然而,一个万万不可忽视的地方,是在ADC之前。也就是说,我们要把一个什么样的信号送入ADC,这是设计出一个好系统的重要前提条件。

送入ADC的信号通常要用一个放大器来放大。对于放大电路,我们直觉上总希望它的速度快一些,噪声低一些。然而在实际应用上,却不是速度越快,噪声越低越好。这就需要我们从时间轴和电压轴这横竖两个方向处理输入信号。

在时间轴上,前面谈到了,ADC每隔一段时间采样一次。因此,我们就不可能知道电压的整体变化情况。好在根据采样定律,如果输入的信号带宽有限,假设没有超过f的频率成分,则只要采样频率高于2f,我们就可以根据采样获得的离散数值,完全重建原始信号。

反过来,当ADC的采样频率选定为f时,前级放大电路必须将信号的带宽限制在f/2以内。如果前级的带宽太宽,反而会增加数据中包含的噪声。

采样定律对于前级放大器带宽的限制,在我们常用的数字示波器参数上就可以体现出来。我们在示波器的面板上,往往可以看到如图6所示的两个数据。这两个数据中5GS/s 是采样率,另一个 500 MHz 是放大器的带宽。显然带宽小于采样率的一半。

在电压轴上,与我们通常的直觉相反,在输入信号中要存在一定的噪声,ADC才能达到最佳的运行特性。这种前期处理叫做dithering,作者认为可以翻译成“加颤”(当这种前期处理被用于二维图像时,通常被称为“抖动显示”)。

在很多包含机械传动机构的仪表当中,比如如图7所示的气压表,当输入的物理量缓慢变化时,传动机构会被“涩住”。为了获得正确的读数,可以轻轻地敲打一下,在稳定的输入变化量当中加上一点颤抖。这个例子说明,外界的噪声有时可以帮助我们获得更精确的测量结果。

对于电学测量,我们通过一个例子讨论ADC输入信号的加颤。考虑一个高性能的ADC,假如当输入电压在51.5到52.5毫伏之间时,输出数字量52,而当输入电压在52.5到53.5毫伏之间时,输出数字量53。当一个输入电压稳定缓慢地变化时,我们得到52和53两个数字输出,输出的数字量如图8中浅蓝色曲线所示。

根据这两个数字,我们对于原始的输入波形只能得到一个粗略的印象,也就是说中间比较高,周围比较低,但无法知道其精确的形状。

现在我们在输入信号上加一个很小的随机噪声,叠加后的信号如图9中黄色曲线所示。这个叠加后的信号,不断地上下跳过52.5毫伏这个阈值,使得输出数字在52和53之间来回变化。

这样来回跳跃的数字,显然携带了更多的信息,我们可以想象,当输入电压越高时,输出数字为53的概率会比较大。当我们把每个采样点与周围若干个采样点的数据相加平均后,得到一个滑动平均值,可以看出,这个滑动平均值比较好地反映了原始的输入波形,如上图中粗线所示。

在一个系统当中,加入噪声反而可以帮助我们获得更精确的结果,这听上去有些违背直觉,但这却是千真万确的。这个方法,已经在数字音响技术中使用了很多年。

通常,ADC的输入电路大多如图10所示。

如前所述,我们在设计ADC的输入预处理电路时,要记得注意检查一下:(1)频带不要太宽,也就是说,驱动ADC的放大器应该是一个低通滤波器。(2)要有适当的噪声。

近代科学实验当中,我们的实验观测数据大多是由数字化系统生成的。数字化系统的质量直接影响到我们所获取数据的质量,甚至影响到实验的成败。因而,每一位实验科学工作者都应该对此给予足够的重视。

推荐 8