
简介这份PPT课件围绕锁定放大器Lock-in Amplifier的原理与实际应用展开面向物理、化学、生物及工程领域从事微弱信号检测的学习者与研究人员帮助其理解如何在强噪声背景下提取有用信号。课件从1962年首台锁相放大器问世讲起梳理模拟锁相放大器、数字锁相放大器及基于单片机、专用DSP和PC平台模块化方案的技术演进并系统讲解调制、相敏检测与低通滤波三大抑制噪声的出发点深入剖析相关检测、互相关函数、参考通道与相关器组成等核心内容同时结合光学干涉测量、磁共振、光谱分析、电生理学研究等场景说明其应用价值。资源包为1个PPT文件大小约2.4MB结构紧凑、图文并茂适合课堂讲授与自学参考。目前已有98人学习可作为微弱信号检测课程复习与知识梳理的实用资料。1. 从一份 PPT 标题说起锁定放大器到底在解决什么问题实验室里常有这样的场景光电探测器的输出信号只有几微伏而环境噪声、工频干扰、放大器自身噪声加起来可能有几十毫伏信噪比差到示波器上根本看不出波形。这时候用普通放大器继续放大噪声和信号一起被放大毫无意义。锁定放大器Lock-In Amplifier就是为这种场景准备的它的核心不是放大而是把信号从噪声里挑出来。这份以锁定放大器及其在实际中的应用为题的 PPT本质上要讲清三件事相敏检测器如何利用参考信号的相位关系提取同频分量、相关器如何用互相关运算压制非相关噪声、以及在实际测量中怎么设置时间常数、灵敏度、参考频率这些参数。适合做微弱信号检测的电子、物理、材料方向从业者也适合需要从噪声里抠出周期信号的嵌入式工程师。2. 锁定放大器的相敏检测原理与相关器数学基础2.1 为什么普通带通滤波做不到的事相敏检测能做到普通带通滤波器靠的是频域选择把中心频率设到信号频率带宽压窄。但带宽越窄滤波器 Q 值越高建立时间越长而且中心频率会随温度漂移。锁定放大器换了个思路——它不依赖模拟滤波器的陡峭程度而是把待测信号与一个已知频率的参考信号做乘法运算再积分。设输入信号为V_sig(t) A·sin(ω₀t φ) n(t)其中 n(t) 是噪声。参考信号为方波或正弦V_ref(t) B·sin(ω₀t)乘法器输出V_psd(t) A·B/2·[cos(φ) - cos(2ω₀t φ)] n(t)·B·sin(ω₀t)关键在后面的积分器低通滤波器2ω₀ 项被滤掉噪声与参考信号不相关乘积积分后趋近于零只剩下 A·B/2·cos(φ)。这就是相敏检测器PSD的全部数学基础。输出是一个与信号幅度成正比、与相位差成余弦关系的直流分量。2.2 相关器视角互相关函数怎么把噪声压下去从统计信号处理角度看相敏检测就是计算输入信号与参考信号的互相关函数在 τ0 处的值R_sr(0) lim(T→∞) (1/T)∫₀ᵀ V_sig(t)·V_ref(t) dt因为噪声 n(t) 与参考信号不相关R_nr(0) → 0。积分时间 T 越长噪声残留越小等效噪声带宽越窄。这就是为什么锁定放大器的时间常数参数直接决定信噪比改善程度——时间常数 τ 对应低通截止频率 f_c 1/(2πτ)等效噪声带宽 ENBW ≈ f_c/2一阶低通。下表给出常见时间常数与等效噪声带宽、建立时间的对应关系实际调参时可以直接查时间常数 τ等效噪声带宽 ENBW建立时间约 5τ适用场景1 ms159 Hz5 ms快速扫描、信号较强100 ms1.59 Hz0.5 s常规测量1 s0.159 Hz5 s微弱信号、慢变10 s0.0159 Hz50 s极微弱信号、长时间积分100 s0.00159 Hz500 s科研级测量注意时间常数不是越大越好。τ 增大等效噪声带宽变窄但建立时间也线性增长。如果信号本身在缓慢变化比如温度扫描实验τ 太大会把真实变化也积分掉。2.3 参考信号的相位与谐波一个容易被忽略的误差源参考通道的相位调节直接决定输出大小。当参考与信号相位差 φ0 时输出最大φ90° 时输出为零。实际测量中信号经过探测器、电缆、前置放大器后会产生相移所以锁定放大器面板上的 Phase 旋钮不是装饰——它是在补偿整个信号链的相位延迟。另一个坑是谐波响应。如果参考信号是方波它含有 3f、5f、7f 等奇次谐波输入信号中这些频率的分量也会被检测到。对于纯正弦信号测量建议用正弦参考如果只能用方波参考要确认输入信号中不含参考频率的奇次谐波成分否则读数会偏大。3. 用 Python 仿真锁定放大器从乘法器到低通滤波的完整链路3.1 搭建仿真环境与信号模型在动手接硬件之前先用 Python 把整条链路跑一遍能帮你理解每个参数的作用。下面这段代码模拟一个幅度 10 μV、频率 1 kHz 的信号叠加幅度 10 mV 的白噪声和 50 Hz 工频干扰信噪比约 -60 dB。import numpy as np import matplotlib.pyplot as plt from scipy import signal # 采样参数 fs 100_000 # 采样率 100 kHz T 1.0 # 仿真时长 1 秒 t np.arange(0, T, 1/fs) # 待测信号1 kHz幅度 10 uV f_sig 1000 A_sig 10e-6 sig A_sig * np.sin(2*np.pi*f_sig*t) # 噪声白噪声 10 mV RMS 50 Hz 工频 5 mV np.random.seed(42) noise 10e-3 * np.random.randn(len(t)) hum 5e-3 * np.sin(2*np.pi*50*t) vin sig noise hum # 参考信号与信号同频同相 ref np.sin(2*np.pi*f_sig*t) # 相敏检测乘法 psd vin * ref # 低通滤波时间常数 100 ms 对应截止频率 1.59 Hz tau 0.1 fc 1/(2*np.pi*tau) b, a signal.butter(1, fc/(fs/2), low) vout signal.lfilter(b, a, psd) print(f输入信号幅度: {A_sig*1e6:.1f} uV) print(f输入噪声 RMS: {np.std(noise)*1e3:.1f} mV) print(f锁定输出稳定值: {vout[-1]*1e6:.2f} uV) print(f理论输出 A/2: {A_sig/2*1e6:.2f} uV)运行后你会看到输出稳定在约 5 μV正好是信号幅度的一半——这是相敏检测的固有系数因为 cos(0)1乘法后产生 A/2 的直流分量。3.2 参数扫描时间常数和相位差对输出的影响把时间常数从 1 ms 扫到 10 s观察输出噪声和建立时间的变化能直观理解为什么 τ 是锁定放大器最核心的参数。taus [1e-3, 10e-3, 100e-3, 1.0, 10.0] results [] for tau in taus: fc 1/(2*np.pi*tau) b, a signal.butter(1, fc/(fs/2), low) vout signal.lfilter(b, a, psd) # 取后 20% 数据计算稳定后的波动 tail vout[int(len(vout)*0.8):] results.append((tau, np.mean(tail)*1e6, np.std(tail)*1e6)) print(f{时间常数:10} {输出均值(uV):14} {输出波动(uV):14}) for tau, mean, std in results: print(f{tau:10.3f} {mean:14.2f} {std:14.4f})输出会显示τ1 ms 时波动约 0.5 μVτ10 s 时波动降到 0.005 μV 以下但建立时间从 5 ms 变成 50 s。这就是信噪比与测量速度的权衡。3.3 相位扫描找到输出最大的那个角度实际硬件上相位旋钮要手动调仿真里可以直接扫。下面代码扫描 0 到 360 度画出输出随相位的变化曲线。phases np.linspace(0, 2*np.pi, 73) outputs [] for phi in phases: ref_phi np.sin(2*np.pi*f_sig*t phi) psd_phi vin * ref_phi b, a signal.butter(1, 1.59/(fs/2), low) vout_phi signal.lfilter(b, a, psd_phi) outputs.append(np.mean(vout_phi[-10000:])*1e6) outputs np.array(outputs) max_idx np.argmax(np.abs(outputs)) print(f最佳相位: {np.degrees(phases[max_idx]):.1f} 度) print(f最大输出: {outputs[max_idx]:.2f} uV) print(f最小输出: {outputs.min():.2f} uV)结果应该显示最佳相位接近 0 度因为参考与信号同相输出呈余弦规律。如果实际测量中扫相位发现最大值不在预期位置说明信号链有额外相移需要检查电缆长度和前置放大器带宽。4. 锁定放大器实际应用中的参数设置与排错4.1 灵敏度、时间常数、参考频率的联动设置拿到一台锁定放大器无论是 SR830 这类台式机还是基于 AD630 的自制板开机后按这个顺序设参数设参考频率必须与待测信号频率一致。如果信号频率未知先用频谱仪或示波器 FFT 找到峰值频率再设到锁定放大器上。参考频率误差 1 Hz在 τ1 s 时就会导致输出严重衰减。设灵敏度从最大档位开始比如 1 V逐步往下调直到输出读数在满量程的 30%70% 之间。不要一上来就设最小档否则过载后读数不可信。设时间常数根据信号变化速度选。静态测量用 1 s 以上动态扫描用 10 ms100 ms。扫描速率要满足每点停留时间 ≥ 5τ否则输出还没稳定就采下一个点。调相位用 Phase 旋钮找到输出最大或者用自动相位功能如果有。设滤波器斜率一阶 6 dB/oct 够用需要更强噪声抑制时用二阶 12 dB/oct但建立时间会翻倍。注意参考频率不要设成工频的整数倍50 Hz、100 Hz、150 Hz否则工频干扰会直接混入检测通道。如果信号频率恰好落在这个范围考虑用陷波器先滤一道。4.2 常见故障输出为零、输出漂移、读数偏大输出始终为零先查参考信号有没有接、频率对不对。很多锁定放大器要求参考输入幅度在 100 mV 到 5 V 之间太小会触发不了。再用示波器看乘法器输出如果 PSD 输出有信号但最终输出为零检查低通滤波器是否被旁路或时间常数设得过大导致还没建立。输出缓慢漂移通常是直流偏置或热漂移。检查输入耦合方式微弱信号测量建议用 AC 耦合把直流分量隔掉。如果漂移周期与温度变化相关检查前置放大器的温漂指标。读数比预期偏大可能是谐波响应或参考信号串扰。把输入短路看输出是否为零如果不为零说明参考信号通过寄生电容耦合到了输入通道需要屏蔽或改变布线。4.3 用 AD630 搭一个最小锁定放大器验证链路如果手头没有商用锁定放大器用 AD630 平衡调制解调器可以搭一个最简验证电路。AD630 内部集成了乘法器和比较器外围只需几个电阻电容。# 典型 AD630 锁定放大器外围参数供参考 # 参考输入方波幅度 1 Vpp频率 1 kHz # 信号输入经前置放大后 10 mVpp 以内 # 低通滤波R1 MΩ, C1 uF, 截止频率 0.16 Hz # 输出接万用表或 ADC读数 信号幅度 × 0.637方波参考系数接线要点AD630 的 Sel 引脚接参考方波IN 和 -IN 接差分信号输出经过 RC 低通后得到直流。方波参考的系数是 2/π≈0.637所以输出读数乘以 1.57 才是信号幅度。这个电路的信噪比改善有限但足以验证相敏检测的基本原理。5. 从锁定放大器到数字锁相进阶技巧与验证方法5.1 数字锁相环替代模拟相敏检测的边界现代很多场景用 ADC 采样后做数字锁相核心运算和模拟锁定放大器一样但灵活得多。数字锁相的优势是参考频率可以任意设、相位可以精确计算、多个频率可以并行解调。边界在于 ADC 的位数和采样率要检测 1 μV 信号ADC 至少 16 位且采样率要满足奈奎斯特条件并留足余量。一个实用的数字锁相实现思路是对输入信号分别乘以 cos(ω₀t) 和 sin(ω₀t)各自低通滤波得到同相分量 I 和正交分量 Q然后计算幅度 R√(I²Q²) 和相位 θarctan(Q/I)。这样不需要手动调相位且能同时得到幅度和相位信息。# 数字锁相I/Q 解调 I signal.lfilter(b, a, vin * np.cos(2*np.pi*f_sig*t)) Q signal.lfilter(b, a, vin * np.sin(2*np.pi*f_sig*t)) R np.sqrt(I[-1]**2 Q[-1]**2) * 2 # 乘 2 补偿 1/2 系数 theta np.degrees(np.arctan2(Q[-1], I[-1])) print(f解调幅度: {R*1e6:.2f} uV, 相位: {theta:.1f} 度)5.2 验证锁定放大器性能的三个实操方法方法一已知衰减器法。用一个精密衰减器把已知幅度的信号衰减到目标量级接入锁定放大器看读数是否与衰减后的理论值一致。偏差超过 5% 就要查系数设置。方法二噪声注入法。在输入信号上叠加已知幅度的白噪声改变噪声幅度观察输出读数是否稳定。好的锁定放大器在噪声幅度变化 20 dB 时读数变化应小于 1%。方法三时间常数验证法。把时间常数从 1 s 切到 10 s观察输出波动是否按 √10≈3.16 倍下降。如果下降比例不对说明滤波器不是理想一阶或者有额外噪声源。5.3 一个容易被忽略的技巧参考频率选在噪声谷点如果待测信号的频率可以选比如用 LED 调制光信号把调制频率选在系统噪声谱的谷点而不是默认的 1 kHz。前置放大器的 1/f 噪声在低频段大工频干扰在 50 Hz 及其谐波处大白噪声基底在中间频段平坦。用频谱仪扫一下系统噪声谱找一个噪声最低的频率点作为参考频率信噪比能再改善几个 dB。这个技巧在光电检测和锁相热成像里很常用PPT 里如果只讲原理不讲这个实际测量时容易吃亏。本文还有配套的精品资源点击获取