我们从Analog 的“不完美”中学会了什么?
扫描二维码
随时随地手机看文章
在仪器仪表系统中,常常需要将检测到的连续变化的模拟量如:温度、压力、流量、速度、光强等转变成离散的数字量,才能输入到计算机中进行处理。这些模拟量经过传感器转变成电信号(一般为电压信号),经过放大器放大后,就需要经过一定的处理变成数字量。实现模拟量到数字量转变的设备通常称为模数转换器(ADC),简称A/D。
自然界产生的各种信号,都是模拟信号,比如人们说话的声音,眼睛看到的景色,身体感受到的温度、湿度、压力、流速、光、电、风以及每个人的呼吸、血压、体温、心跳、体重、血糖,体脂等等,都是一个连续的量。而对于连续信号,我们必须有一个通用的标准去测量它们,这样就出现了尺子,温度计等。这些测量工具通过把现实生活中的连续信号转换成了离散信号,给了我们一个数据,用以比较两者的关系。这些模拟信号最终都需要放在电脑、手机等数字领域设备进行处理、存储或者传输,那么如何把模拟信号转换成数字信号呢?这就需要一个转换器芯片,它就是芯片界的翘楚—ADC!ADC (模拟数字转换器)是连接模拟世界和数字世界的关键接口。它的核心作用就是把模拟世界的连续信号,转换成数字世界的离散信号,然后让计算机处理。因此是连接到现实世界的任何电子系统的基本部件。它们也是决定系统性能的关键因素。
在传感器输入/输出的模拟世界中,如果您能够始终如一地实现 0.1% 的性能(我将在此处使用该术语作为精度、分辨率和可重复性的组合),那么您的状态就相当不错了。
等一下:这只是千分之一,或 10 位,当它与 16 至 24 位转换器以及处理 32 位或更多位的处理器一起使用时,这似乎非常粗糙。我可以理解处理器需要更多位,以最大限度地减少各种累积误差,这些误差将在重复计算步骤中累积。但是模拟方面呢?
现实情况是,当您对从传感器到 A/D 转换器的整个过程进行适当的误差预算时,考虑到各种模拟信号链组件、噪声、温度系数和时间漂移、偏置电流以及其他因素,0.1% 大约是你会得到什么。当然,如果你修整信号通道,并校准它,你会做得更好;事实上,如果您在各种条件和工作点(电压、温度)下对其进行校准,您可能会降低到 0.05%(11 位)甚至 0.025%(12 位)。真的很难做得比这更好,而且很少需要。
看到现实世界的性能与系统中假定的可用位数之间的差距,教会我退后一步并考虑后续分析。我学会问的最重要的问题是:“这个数据/答案/分析有意义吗?还是根本就没有意义?” 我学会了对获得的数据和分析保持谦虚和怀疑,因为很容易被表面上的精确所包裹,以至于你错过了更大的图景,以至于有些事情不太对劲。
我们都知道算法的首字母缩写词 GIGO,是“garbage in, garbage out”的缩写。但是对于 GIGO 有一个很少提及的替代解释,即“垃圾进,金出”。换句话说,如果结果说某事如此这般,那么它一定是这样——你怎么能怀疑呢?
许多年前,我有一位导师对我们的告诫很简单:“在你计算之前,停下来思考一下。” 他坚持我们首先要使用合理的近似值,大致确定合理答案和结论的范围。他要我们做他所谓的“信封背面”计算,他非常坚持,我什至用信封做了一个特殊的“堵嘴”垫,以证明我所做的确实就是这样一个快速粗略的计算。
这个定制的垫子完全由信封制成,作为一个明显的提醒,提醒人们进行粗略计算作为对精确结果的初步“完整性检查”的重要性。我使用这个定制的“信封背面”垫来提醒我,有时候我需要先做一个粗略的计算。
你是否曾经无意中被别人的过分精确误导,当他们完全错误而不是大致正确时?更糟糕的是,您是否曾经通过跳到精确但具有误导性的结论来自欺欺人?