4、同步检测技术:锁相放大器原理、相敏检波器(PSD)的工作机制、如何利用同步检测从噪声中提取信号

做光电传感器这么多年,我遇到过最头疼的问题就是——信号被噪声淹没了。尤其是环境光干扰,它不像白噪声那样均匀,而是带有各种频率成分的杂散光。你想想看,一个微弱的光电信号,可能只有几微伏,而环境光噪声能到毫伏甚至伏特级别。这时候,普通的滤波手段基本失效。

那怎么办?我个人的经验是:同步检测技术。说白了,就是给信号一个「身份证」,然后只认这个身份证的信号,其他的统统不要。这个技术里最核心的两个东西,就是锁相放大器和相敏检波器。

4.1 锁相放大器原理

锁相放大器,英文叫 Lock-in Amplifier。我第一次用这玩意儿是在一个激光测距项目里,信号被日光灯管的100Hz频闪干扰得不成样子。当时我师父跟我说:「别慌,用锁相放大器,把信号从噪声里『拎』出来。」

它的核心思想其实很简单:你发射的信号是已知频率的,比如1kHz的正弦波。那么接收端也只认1kHz的信号,其他频率统统视为噪声。这就好比你在嘈杂的酒吧里,只听得见你朋友喊你名字的声音,其他声音自动过滤掉。

锁相放大器的工作流程大致分三步:

  1. 调制:把待测的直流或低频信号,调制到一个已知的载波频率上(比如10kHz)。
  2. 相敏检波:用与发射信号同频同相的参考信号,与接收到的混合信号相乘。
  3. 低通滤波:把相乘后的结果中的高频成分滤掉,只留下与参考信号相关的直流分量。

这里有个关键点:锁相放大器不是滤除噪声,而是把信号「搬」到一个噪声很少的频段,然后再提取出来。我刚开始做的时候,总以为它是某种超级滤波器,后来才明白,它其实是利用了信号的相关性。

核心公式(理解即可):

输入信号:Vsig = A·sin(ωt + φ)

参考信号:Vref = B·sin(ωt)

相乘后:Vout = (A·B/2)·[cos(φ) - cos(2ωt + φ)]

经过低通滤波后,只剩下直流项:Vdc = (A·B/2)·cos(φ)

你看,只要调整参考信号的相位φ=0,就能得到最大的直流输出。

4.2 相敏检波器(PSD)的工作机制

相敏检波器,简称PSD,是锁相放大器的心脏。它本质上就是一个乘法器。但别小看这个乘法器,它决定了整个系统的性能。

我在一个项目中用过模拟乘法器芯片AD633做PSD,结果发现它的线性度在高频段很差。后来换成了开关型PSD,效果好了很多。这里我给大家总结一下常见的PSD实现方式:

类型 原理 优点 缺点 我推荐的应用场景
模拟乘法器型 用模拟乘法器芯片(如AD633、MC1496)直接相乘 精度高,带宽宽 成本高,功耗大 实验室精密测量
开关型 用模拟开关(如DG201)将信号按参考频率切换极性 电路简单,成本低,动态范围大 有开关噪声,带宽受限 工业现场,环境光抑制
数字型 ADC采样后,在MCU或FPGA内做数字乘法 灵活,可编程,无温漂 需要高速ADC,延迟较大 多通道系统,自适应系统

我个人最常用的是开关型PSD。为什么?因为它简单、皮实。你想想看,工业现场温度变化大,模拟乘法器容易漂移,而开关型PSD只关心信号的极性,对幅度不敏感,稳定性好很多。

开关型PSD的工作机制是这样的:

  • 参考信号是一个方波,控制模拟开关。
  • 当参考信号为高电平时,输入信号直接通过(增益+1)。
  • 当参考信号为低电平时,输入信号反相通过(增益-1)。
  • 这样,与参考信号同频同相的信号会被「整流」成直流,而噪声则被平均掉。

避坑指南:

我曾经在一个项目中,PSD的输出一直有低频波动。查了两天,最后发现是参考信号的占空比不是严格的50%。方波占空比偏离50%,会导致PSD输出一个与信号幅度相关的直流偏置。所以,一定要确保参考信号的占空比精确为50%,或者用差分结构来消除这个偏置。

4.3 如何利用同步检测从噪声中提取信号

好了,理论讲完了,咱们来点实际的。怎么用同步检测技术从噪声里把信号捞出来?我给大家画个流程图,一看就明白。

同步检测信号提取流程图 光电传感器 (含环境光噪声) 前置放大器 (低噪声设计) 带通滤波器 (中心频率=调制频率) 相敏检波器 (PSD) 参考信号发生器 低通滤波器 (提取直流分量) 输出信号 (纯净直流电压) ① 传感器输出包含信号+环境光噪声 ② 前置放大后,带通滤波器粗滤噪声 ③ PSD利用参考信号做相关检测 ④ 低通滤波器提取纯净直流信号 关键参数: • 调制频率:避开环境光噪声频段 • 低通截止频率:决定噪声抑制能力 • 时间常数:越大噪声越低,但响应越慢

从流程图里你能看到,整个信号链路上有几个关键点:

  1. 调制频率的选择:我一般选在1kHz~100kHz之间。太低的话,容易受到1/f噪声和工频干扰;太高的话,传感器和放大器的带宽跟不上。我做过一个项目,环境光主要是LED照明(100Hz~1kHz的频闪),我就把调制频率选在10kHz,完美避开。
  2. 带通滤波器的Q值:Q值越高,选择性越好,但相位延迟也越大。我个人的习惯是Q值取10~30,既能有效抑制带外噪声,又不会让相位调整太麻烦。
  3. 低通滤波器的时间常数:这是决定噪声抑制能力的关键。时间常数越大,等效噪声带宽越窄,输出越干净。但代价是响应速度变慢。比如你要测一个缓慢变化的信号,时间常数可以设到1秒;但如果是快速变化的信号,时间常数只能设到10毫秒。

注意:

同步检测技术有一个前提——参考信号必须与发射信号严格同步。如果参考信号有频率偏移或相位抖动,输出就会衰减甚至完全消失。我见过有人用MCU的PWM做参考信号,结果PWM的时钟源精度不够,导致输出漂移。后来换成了晶振分频,问题才解决。

4.4 实战经验:一个环境光抑制的案例

最后,我分享一个实际案例。几年前我做了一个红外光电传感器,用于检测传送带上的物体。现场环境光非常复杂,有日光灯、LED灯、还有太阳光从窗户射进来。传感器输出信号的信噪比只有-20dB,也就是说噪声比信号大10倍。

我的解决方案是这样的:

  • 发射端:用10kHz的方波调制红外LED。
  • 接收端:用PIN光电二极管+跨阻放大器,然后经过一个中心频率10kHz、Q=10的带通滤波器。
  • PSD:用模拟开关DG201实现开关型相敏检波。
  • 低通滤波:时间常数设为100ms,截止频率约1.6Hz。

结果怎么样?输出信号的信噪比从-20dB提升到了+40dB,整整60dB的提升!环境光干扰几乎完全被抑制掉了。嗯,这里要注意,低通滤波器的时间常数100ms意味着传感器对快速移动的物体响应会有些滞后,但对于传送带这种应用,完全够用。

一个小技巧:

如果你觉得锁相放大器太复杂,也可以用现成的芯片,比如AD630。它内部集成了开关型PSD和低通滤波器,外围电路只需要几个电阻电容。我早期做项目时就用它,省了不少事。

好了,同步检测技术就讲到这里。说白了,它就是利用信号的相关性,把信号从噪声里「揪」出来。你想想看,环境光噪声是随机的,而你的信号是有规律的——只要抓住这个规律,噪声再大也不怕。