把整台锁相放大器做进 FPGA,痕量氧气实测拟合优度 0.999
做气体检测的工程师都懂一种绝望:把激光对进气室、示波器一看——屏幕上只有一堆毛刺,理论上应该存在的吸收峰,早就埋进噪声里了。氧气浓度要测到 0.02%,也就是 200 ppm 这一级,靠"眼力"是没戏的。
2026 年《光电工程》上有一篇公开论文,把这件事做得很漂亮:用 LabVIEW FPGA 搭了一套数字锁相放大器,配合 TDLAS(可调谐半导体激光吸收光谱)测痕量氧气。这篇稿子把它拆开讲讲——不背公式,只看工程上是怎么落地的。
一|锁相放大:只认同频同相的分量
数字锁相放大链路(示意)
TDLAS 的套路是给激光加调制:论文里用5 Hz 锯齿波做扫描,叠加 10 kHz 正弦波做调制,激光器中心波长 760.59 nm,正好压在氧气的吸收线上。光穿过气室,浓度信息就调制在了光强里。
但探测器输出的信号比噪声还弱。锁相放大的思路是:既然我知道信号藏在 10 kHz 上,就拿一个同频同相的本地振荡去和它相乘(相敏检波),再过低通滤波——同频的留下来,其他频率一律当噪声滤掉。解调出来的二次谐波幅值,和氧气浓度线性相关。
原理一句话讲得完,难的全在实现上。
二|模拟方案的三个老大难
传统锁相放大器用模拟电路搭:相敏检波器、低通滤波器、放大器,一级一级焊出来。问题也是明摆着的——
一是温漂。模拟器件的参数随温度漂,开机两小时和刚开机不是一个状态,长期测量读数慢慢走。二是参考信号不稳,本地振荡抖一点,解调输出跟着抖。三是改参数难:滤波截止频率、调制深度都是电路决定的,换一种气体、换一条谱线,板子可能就得动刀。
三|整台仪器做进 FPGA
浓度标定趋势(示意,实测 R²=0.999)
这篇论文的做法是把锁相放大器的核心全部搬进 FPGA:任意波形生成(DDS)、相敏检波、低通滤波,一条链路全在芯片里跑。ADC 用 12 位、65 MSPS 的模块采样,DAC 用 14 位、125 MSPS 的模块回写,上位机通过千兆网 UDP 实时收发参数。
最值得看的一个细节:生成正弦波不用查表。传统 DDS 靠一张相位-幅值查找表,表深了占资源,表浅了有谐波。这篇设计用 LabVIEW 的高吞吐率数学函数,在 120 MHz 定时循环里实时计算正弦离散点,改频率、改相位就是改一个输入参数——调制参数可以测量中途在线改,这是模拟方案给不了的灵活性。
四|LabVIEW 在这里省了什么
FPGA 开发的传统路径是写硬件描述语言,调试周期长、改一行等一次编译。这套设计用 LabVIEW 图形化写 FPGA: DDS、相敏检波、低通滤波都是框图上的结构,上位机界面和 FPGA 逻辑在同一个工程里,前面板一屏看全解调波形和标定曲线。
对做测试系统的工程师来说,这才是重点:换气体、换谱线、换量程,改的是框图里的参数,不是整个程序骨架。一台仪器的架构可以复用到下一台,这是测试系统从"一次性工程"走向"产品"的关键一步。
五|冷静一点看
这是论文的实测结果:0.02%~15% 浓度范围内,二次谐波幅值与氧气浓度的线性拟合优度 R² 达到 0.999。当然,实验室指标和工业现场之间还隔着振动、温度、光路污染这些现实问题,真上产线还得自己验。但"数字锁相根治温漂、图形化架构改得快"这两个方向性结论,是站得住的。
写在最后
把淹没在噪声里的信号捞出来,是测试测量这行最老也最硬的手艺。你手上的系统里,有没有那种"信号明明存在、就是测不稳"的难题——是卡在传感器、采集,还是算法?评论区聊聊,说不定下一个案例就拆它。
#LabVIEW #FPGA #锁相放大 #TDLAS #数据采集 #微弱信号检测