首先,感谢知乎的邀请,有机会作为圆桌心动的「信号」| 非常想问的嘉宾,和大家聊聊实验中的信号。
(本回答多图预警)
信噪比在各行各业中的非常重要,实验物理中也不例外。可以说,实验科学家有很多精力都放在了如何提高信噪比上面。
不过,如果要具体谈有哪些技术可以提升信噪比,这就非常复杂了。技术千千万。在选择技术之前,我们首先要对系统进行噪声分析。因为,噪声和噪声是不一样的!只有分析清楚了系统存在哪些噪声,这些噪声的来源都在哪里,我们才能对症下药,削弱这些噪声,增强我们的信号。
通俗来讲,我们想要的东西就是信号,而任何我们不想要的东西都是「噪声」。但是严格来讲,只有「随机」的东西才是噪声,它们在数学上的特征是满足一定的概率分布,但相互之间没有相关性。而其他也具有规律性的东西,则是「干扰」。举个栗子,在雨天嘈杂的广场上,我们想听清楚一个人对我们说的话(信号),雨点落下的(随机)声音是噪声,而广场上小孩子的(有规律的)哭闹声则是干扰。
噪声的随机性意味着,如果我们不断采样并求平均值,噪声的波动幅度将会越来越小。这是数学上著名的大数定律。因此,多次采样求平均是最常用的降低噪声的方法。不过,代价就是——如果要把噪声降到 1/N,采样需要增加到 N^2。这可不是线性的增长,而是平方级的增长。因此,求平均值降噪的效果会越来越差,最终难以为继。
而干扰并不是随机的。因此,采样求平均的办法对干扰无能为力。对付干扰,最重要的是找出干扰源,并且移除或者屏蔽干扰源。其实,你也可以把干扰看成是信号——只不过是我们不想要的信号。换一个需求场景,它可能就变成我们想要的信号了呢。
下面,我们先来看看如何对付真正随机的噪声,再来看看如何对付干扰。
随机的噪声充斥在所有的信号采集系统之中。信号源、探测器、各种电子原件和线材,都会产生噪声。不过,在不同的频率上,这些噪声的强度通常也不一样。就好比,我们听到的雨声和海浪声,音调也不一样。我们可以把频率作为横轴,噪声的强度(noise spectral density)作为纵轴,画一条曲线出来,这就是系统的噪声曲线。下图是一个实例:LIGO 的噪声曲线[1],非常复杂。
常见的噪声曲线有白噪声和粉噪声(1/f 噪声)。
白噪声(white noise)在噪声曲线上是一条水平线。也就是说,在任何频率上,白噪声的强度都一样。粉噪声(1/f 噪声)是噪声强度反比于频率的噪声。频率越高,粉噪声越小。
老式电视机出问题是显现的「雪花」图像,就是一种白噪声。耳机中听到的「沙沙」声,也是一种白噪声。
电子元件中的白噪声,主要有两种来源。一种是带电粒子的无规则热运动,称为「热噪声」。显而易见地,降低温度可以削弱热噪声。这就是为什么射电天文望远镜的接收机为了追求极致的灵敏度,需要用液氦来冷却。
另一种则来源于电荷与光子能量的量子化,称为「散粒噪声」。散粒噪声基本上就是探测器的本底噪声了。在微观层面,电流其实是量子化的。一个电子跨过一个半导体能带,就产生一个单位电荷的电流;如果是光子探测器(例如照相机),一个光子打上来,要么打出一个信号,要么打不出信号。散粒噪声的英文 shot noise 很形象地表现了这个特性,就是信号是「一炮」「一炮」随机出现的。雨点下落打在地面上的声音,以及照片严重曝光不足时底片上出现的「噪点」,就是散粒噪声。[2]
粉噪声的强度与频率成反比。它的来源就比较复杂了。和白噪声相反,有很多信号系统中的粉噪声来源,理论上还没完全搞清楚。电子元件中,有一类粉噪声叫做「闪烁噪声」,可能和杂质、温度变化等等有关。这种噪声好像飘忽不定的烛火,时不时闪烁一下。很显然,对抗粉噪声最有效的办法,就是把信号采集频率,移动到粉噪声很微弱的高频。
干扰源的种类就何其多了!就拿电磁波来说,人类通信技术发展到现在,可以说空间中到处都充满了各种频率的电磁波。随便选一个出来,都是干扰。
但至少,在频率谱上,我们可以把干扰源划分成三种。第一种是频率非常确定的窄带干扰。例如民用的交流电,50 Hz 或者 60 Hz 的地方,会有非常尖锐的信号。另一种是频带比较宽的宽带干扰,可能来自于各类电波通讯等。这两种干扰都有明确的频率范围,我们可以根据它们的频率,猜测可能的来源。例如,可以查找一下本地有没有相似频率的电台、本国各个手机、电台、wifi 的通信频段都在哪里等等。而第三类则是不固定出现的干扰。它们就不太好追踪了。雷电、太阳爆发等自然现象会产生这些干扰,偶发的人类活动也会产生这些干扰。
我以前参加培训,听说过一个美国绿岸天文台的故事。有一段时间,绿岸天文台的工作人员,每天傍晚十分都会收到一个来自特定方位的神秘信号干扰,持续几分钟之后就消失了。他们对此束手无策。经过几个月的排查之后,他们发现,这个干扰源,是住在十几公里之外的一户居民,每天晚上用微波炉做饭!
常见的噪声有白噪声和粉噪声。常见的干扰有窄带、宽带和偶发性的干扰。
削弱噪声、提高信噪比的核心思路,就是要寻找噪声最小的频段或时段进行信号采集。在这个过程中,我们需要对整个系统进行噪声分析,参考噪声谱,见招拆招,把可能移除、削弱、规避的噪声源一个一个解决掉。
这个是最根本的方法,但也是有点难展开讲的事情。例如 @sun 提到的查分信号就是一种采样方案。但我们也有很多很多其他的方案,需要根据实际应用场景的需求来设计。
我就简单举个例子吧。光谱学里面,吸收光谱的信噪比常常不是最理想的。因为吸收光谱遵循比尔定律,吸收的光强度正比与光源的光强度。因此,光源的噪声会被带进信号里面。但如果把光谱方法换成不依赖光源强度的方法,例如改成衰荡光谱(ringdown spectroscopy),测光经过介质之后,衰减完的寿命,这就完全与入射光强度无关了。因此,入射光的噪声就完全移除了。
往下则说一说技术手段。
最简单粗暴的办法就是移除已知的噪声源。如果没法移除,至少可以屏蔽。就像屋子外面太吵,听不清屋里的人说话,那就把窗户关上。这就是为什么,大型射电天文台(例如 FAST)要挑选在人烟稀少的深山老林里面,还要规划设立出无线电静默区。
但无线电静默这种待遇非常稀有,普通实验室肯定是没法做到的。但是屏蔽(关窗户)却简单易行。电子电路中,使用合适的线缆和接头,并且保证接地良好,就能很好地屏蔽空间中的大部分电磁干扰。这是因为金属对电磁波的趋肤效应和法拉第笼效应。电子元件通常也会被放置在金属盒子中,将其与外部隔绝,既屏蔽外界的干扰,也避免电子元件本身发出射频,对其他元件造成干扰。
激光实验室里面,装置四周用黑色的帘幕拉起来,就是最常用的屏蔽自然光和灯光的方式。同时,这也是激光安全的一部分。这就是为啥激光实验的照片常常是黑灯瞎火的——这并不只是为了拍照效果,也不是说科学家都是夜猫子,只在半夜才工作哦。
对振动敏感的机械或光学系统,需要设置避震系统,并且常常会被安排在地下室。常有这种传言,说原子力显微镜(AFM)这样的精密仪器,哪怕安置在地下室,也还是能够感受到白天地面车辆或者地铁运行带来的振动噪声,搞得大家更喜欢在半夜做实验。这都是被逼的呀!LIGO 也使用了可能是世界上最精良的避震系统。
对声学实验室,可以使用隔音墙和隔音海绵。
信号采集系统本身也会产生噪声,例如上文提到的电子元件中的热噪声、散粒噪声等等。这些噪声没办法屏蔽的。但是,我们会发现,这些噪声在不同频率上的强度并非完全一样。如果能把原始信号移动到噪声频率谱上噪声强度最低的频率上去,就可以避开本底噪声很高的区域,和其他没有被彻底屏蔽掉的干扰信号。
这种移动信号频率的方法,就是信号的调制和解调。以前收音机流行的时代,我们经常听到调频XXX赫兹,调幅XXX赫兹,指的就是电台调制信号的方式。
信号调制时,需要选择一个「载波」——这个载波就可以选择系统噪声强度最低区域的频率。调频(FM),就是把原始信号的变化,反映到载波的频率变化上面。调幅(AM),就是把原始信号的变化,反映到载波的振幅变化上面。其实还有调相(PM,是一种特殊的调频方式),专门改变载波的相位。
通常来讲,信号的振幅受到各种干扰和线路衰减的影响,比较容易「变质」。因此,AM 相对于 FM 和 PM 来说更不稳定一些。但 AM 实现上是最容易的。而且有一种特殊的 AM —— 开、关、开、关的 AM,其实就把 0,1 的数字信号加载到载波上了,也是很可靠的调制!
几十年前,技术还比较落后的时候,光谱学里面就经常使用一种 AM 方法:在光源前面放一个抠了小孔的挡板转轮[3]。用电机驱动转轮转动,光源就会以几十~几百赫兹的频率开、关、开、关。探测器那边,把解调器调到对应的频率就可以了。
在频谱上,我们不光可以通过调制来移动信号的频率,还可以接着使用滤波器,把信号频率之外的频率都过滤掉。视情况,可以组合使用低通、高通或者带通滤波器。如果有尖锐的特定频率的干扰,也可以使用带阻滤波器。
还是用上面灵魂画手的示意图,调制+滤波的策略,画在频谱上大概就是下面这个样子
用电容、电感、和电阻,就可以制作出最基本的模拟滤波器。更复杂的滤波器当然需要更多的电路元件和精心设计,有一些还可以调节带宽。不过市面有售的滤波器种类和型号都是非常非常多的。
当然,如果采集的是数字信号,应用各种数字滤波器就更简单了,敲几行代码就行。
我们不仅可以在频域上对信号进行滤波处理,还可以直接在时域上对信号进行处理。有一些干扰信号有固定的出现时间,例如很多脉冲实验中,打开和关闭脉冲的一瞬间,电子元件都会辐射出包含各种频率的干扰。但这些干扰都只会短暂出现。在采集时域信号时,只需要把这些特定的时间段遮挡住,不去采集,就可以避免干扰。
此外,我们可以对信号应用多种窗函数。窗函数主要有以下两个作用。
窗函数可以纠正信号的相位偏差。数学上的傅里叶变换,需要从时间 -∞ 积分到 +∞。但实际上我们只能采集到一个时间窗口中的信号。对这个信号作傅里叶变换,内含的假设是:窗口时间就是信号的周期。可是,实际情况下,很有可能窗口的左边沿和右边沿并不是相同的数值。如果你简单地将窗口中的信号复制平移,它们是接不上的,形成边缘的剧烈「抖动(jitter)」。这种抖动,会在傅里叶变换中变成细碎的锯齿。而窗函数通常最左和最右边都是 0,而且导数也是 0。把原始信号乘上窗函数,就可以让接头处平滑,从而消除频谱中的细碎锯齿。
窗函数还可以调整信号中各个时间段的信噪比。通过选择窗函数,我们可以牺牲频谱分辨率以获得更高的信噪比,或者牺牲信噪比以获得更高的频谱分辨率。数学上有证明说,如果主要的噪声是白噪声,则把窗函数的形状和信号本身的包络形状相匹配,可以得到最好的信噪比。这叫做匹配滤波器(matched filter)。定性地来说,这个证明的意思是,白噪声在任何时刻的平均强度都是一样的,而如上图所示的这种信号,它在衰减,采样开始的时候信号更强。因此,信号强的地方信噪比也更强,而我们在数据处理的时候就应该给予它们更高的权重。匹配滤波器的形状,正好就体现了这种加权的效果。
当然,使用窗函数也不是没有代价的。它会使谱线变得略宽,从而降低频谱的分辨率。
在电路设计中,有几个小细节总是有用的:
好了,我已经大致把我知道的「渔」说完了,欢迎补充。更多捕「鱼」技术,可以参考各类教材。