☰
高精度激光器线性度测试:DG70000任意波形发生器如何突破激励源瓶颈
2026/10/13 19:27:00 网站建设 项目流程

高精度激光器线性度测试这事,听着像个纯计量课题,真正做起来其实就是一场信号链路的博弈。之前在配合某重点实验室做一款模拟光通信用激光器模块的验收测试时,我们折腾了大半个月,前两周数据一直不理想,直到把激励源从普通函数发生器换成DG70000系列任意波形发生器,整套测试才算真正跑通。这篇文章就把这个应用案例掰开揉碎,讲讲激光器线性度测试到底对信号源提出了什么要求,DG70000系列在链路里扮演了什么角色,以及现场踩过的几个坑。

无论你是做光电探测、激光器测试的工程师,还是在为实验室选型AWG的仪器负责人,这篇文章里的思路和参数设计方法应该都能直接参考。

1. 激光器线性度测试需求拆解:为什么普通信号源不够用

1.1 线性度测的不是一条线,而是两类场景

很多人以为激光器线性度测试就是测P-I曲线(光功率对驱动电流),画出来看直不直。这只是一个维度,而且是最基础的静态场景。

真正的线性度测试在工程上分两大类:

第一类是静态P-I线性度。驱动电流从阈值以下逐步扫到额定最大电流,用光功率计记录每个电流点的输出光功率,做线性拟合后看最大偏差。这种测试用在器件筛选、批次一致性评估、模拟光链路工作点选择上。指标一般定义成“满量程内的最大相对偏差”,比如1%、0.5%这类要求。高精度激光器的P-I曲线在阈值以上呈现出非常好的线性,但这种线性并不会天然保证模拟信号经过激光器的传输不失真,因为小信号调制下的非线性是另一个问题。

第二类是动态小信号线性度。在直流偏置的基础上叠加一个很小的正弦调制信号,用光电探测器接收,再用频谱仪或高精度ADC分析信号中的二次谐波、三次谐波分量,计算HD2、HD3;或者用双音信号测三阶交调IMD3和SFDR无杂散动态范围。这部分才是模拟光通信、微波光子链路、激光传感系统最关心的指标,因为它直接决定了信号经过电-光-电转换后还能剩多少无失真动态范围。

两类测试都需要一个关键的共同前提:驱动激光器的电信号必须“干净”,也就是幅度精确、波形可控、自身的失真和噪声低到可以忽略。否则你测得的是信号源和激光器的混合失真,不是激光器自己的线性度。

1.2 测试链路对激励源的三条硬要求

把测试链路摊开看,信号流是这样的:任意波形发生器输出的电压信号送进激光器驱动电路,转成驱动电流加到激光管上;激光器输出的光经过光纤和光衰减器到达光电探测器;探测器把光信号重新变回电信号,进频谱仪或示波器/数据采集卡。在这个链路里,信号源是第一环,它的质量直接串到后面所有环节。

对信号源的第一条要求是极低的自身失真。激光器的小信号动态线性度测试里,二次谐波和三次谐波幅度往往是基波以下40dB到70dB的水平。如果信号源自身的HD2或HD3只比基波低50dB,那它和激光器的失真叠在一起,你连归因都没法做。有些普通DDS函数发生器标称的谐波失真能做到-40dBc左右,看起来还行,但在高精度测试里远远不够。

第二条要求是高垂直分辨率。测试里的小信号调制幅度常常只有几十毫伏甚至几毫伏,而驱动电流又需要加一个比较大的直流偏置,比如几百毫安。如果信号源的垂直分辨率只有12bit,满量程5V时理论上最小步进就是1.2mV左右,这是理论上限,实际还要叠噪声。16bit分辨率能把量化步进压到76微伏左右(5V满量程时),量级完全不同。

第三条要求是可编程的波形自由度。静态扫描并不是只给一个简单的斜坡就行,为了克服激光器的热效应,需要用“阶梯+保持”波形,每个台阶保持几百毫秒甚至几秒,等光功率稳定了再测。动态测试需要直流偏置、正弦、双音、chirp等任意叠加。这些东西普通函数发生器做不到,只有AWG能做。

1.3 函数发生器、AWG、专用驱动源怎么选

把三类可选的信号源放在一起对比,选型逻辑就清楚了:

信号源类型波形自由度垂直分辨率失真与噪声底序列/触发能力适用场景
普通函数发生器固定波形,参数调节12~14bit中,谐波通常在-40dBc量级弱,触发简单常规功能验证
AWG任意波形发生器完全自定义,无模板限制通常14~16bit高,谐波和相位噪声表现好强,支持序列、跳变、标记输出高精度、复杂激励测试
激光器专用电流源/LDD直流或低频调制电流分辨率高取决于驱动电路设计弱,多为模拟调制输入纯直流P-I测试

之前我们用普通函数发生器做动态谐波测试,测出来的HD3比激光器手册上的典型值高出将近10dB,一开始怀疑是激光器有问题,后来把信号源直连到参考接收机上测了一遍,才发现问题出在信号源自己的三次谐波上。换了高分辨率的AWG之后,本底一下就降下去了。所以如果你所在的实验室有这种级别的激光器测试需求,别犹豫,直接走AWG方案。

2. 多通道高分辨率AWG方案:测试链路这样搭才靠谱

2.1 整体连接方案:激励、探测、同步三条线

我们在项目里用的就是DG70000系列。先说明一点,这款AWG是被当作“激励源”来用的,但它同时承担了一部分系统同步的角色——这一点经常被忽略,我单独拿出来讲。

物理连接分成三条线:

第一条是激励线。AWG的通道输出接到激光器驱动器的调制输入端。我们的激光器集成在模块里,驱动器本身带跨导放大,AWG输出0~5V电压信号就可以对应到0~500mA驱动电流。输出阻抗设为50Ω,驱动器的调制输入是50Ω匹配,用同轴线直接连,避免反射。

第二条是探测线。激光器输出光经过保偏跳线送到高速光电探测器。探测器的RF输出接频谱仪(动态失真测试),同时探测器有一个分光比约1:99的分路输出,小比例那一路接光功率计做绝对光功率监测。

第三条是同步线。AWG的同步标记输出(Marker)接到示波器/数据采集卡的触发输入,保证激励波形和数据采集在时间轴上严格对齐。这个看起来简单,实际测试中至关重要,后面问题排查部分我会细说。另外,AWG的10MHz参考时钟输出接到频谱仪的外参考输入,把所有设备的时基统一到同一个源上,这样频谱测量才不会有频率偏差。

2.2 DG70000系列核心能力与测试痛点的对应关系

直接上表,把测试难点和仪器能力一一对上:

测试痛点AWG关键能力实际作用
微小调制信号的谐波测不准高垂直分辨率(16bit)降低量化噪声,小信号频谱干净,谐波不被噪声淹没
需要长时间、多段的扫描波形大存储深度任意波形一次下载完整波形,不用反复触发重发
静态扫描热效应污染数据任意波形可编辑自定义“阶梯+保持”波形,契合热平衡时间
多台激光器一致性测试多通道同步输出同时激励多路激光器,保证触发/时序一致
与频谱仪、数据采集系统协同参考时钟输入/输出统一时基,消除频偏和时钟抖动
自动化批量测试SCPI远程控制用脚本批量跑不同偏置点,记录数据

这里面我最看重的是垂直分辨率和存储深度的组合。之前用的信号源标称够高,但实际下载一个100万点的复杂序列时,波形内存很快就见底了,只能压缩点数,结果波形台阶变得粗糙。DG70000系列的大存储深度让我们把P-I测试的扫描台阶做到非常细,同时保留足够长的保持时间,这个在后面的实操流程里会体现。

2.3 波形设计与加载:不要偷懒用内置预设

高精度测试里,波形基本上是预先计算好、下载到AWG里的,不能直接用面板上的内置正弦或内置斜坡就开测。原因很简单:内置波形和定制的“直流+正弦叠加”虽然看起来一样,但内置波形的直流偏置分辨率、相位连续性、信号预校正和你想要的并不一致。

静态P-I测试的波形设计。我们用Sequence模式,把整个扫描过程拆成N个台阶。波形表达式可以写成分段函数:从起始电流I_start开始,每级步进ΔI,每个台阶保持T_hold秒。例如起始驱动电压1.0V对应10mA偏置,步进0.05V对应0.5mA,保持200ms。整个扫描分成80个台阶,总时长16秒。用波形编辑软件生成后下载到AWG。

动态谐波测试的波形设计。我们用的模板是直流偏置加正弦:V_out(t) = V_bias + V_ac × sin(2πft)。V_bias根据激光器的工作点换算,V_ac的峰值幅度不能太大,要保证电流调制深度远小于1,避免信号本身驱动激光器进入强非线性区。比如驱动电压峰值1.2V,调制深度控制在5%以内,也就是V_ac峰值取60mV左右。这个波形同样在PC端算好样点再下载,避免AWG内部实时计算时引入额外量化。

如果要做双音交调测试,波形就是V_out(t) = V_bias + V_ac[sin(2πf1 t) + sin(2πf2 t)],关键是把两个频率设成一个整数倍的采样间隔关系,比如f1=2MHz、f2=2.4MHz,采样率取整数倍频率,保证FFT分析时两个音之间没有频谱泄漏。

3. 实操流程:用DG70000系列完成两类核心线性度测试

3.1 静态P-I线性度测试:从波形编辑到拟合计算

第一步是波形编辑。打开AWG上位机软件,选择波形生成器,自定义出一个阶梯波形。以我们用的激光器模块为例,驱动电压范围0.5V到4.5V,对应电流5mA到450mA,步进50mV,共80级,每级保持200ms。这里有一个细节:每一级的上升沿不能太陡,最好做一个2ms的缓坡过渡,避免电流突变导致激光器瞬态过冲。这种“梯形+平顶”的波形在普通函数发生器上很难实现,在AWG里就是改两个时间参数的事。

第二步是通道设置。设置输出负载为50Ω,垂直量程根据波形峰值自动选择,功放带宽设为限制模式,防止输出高频毛刺。开启通道输出的同时把Marker输出配置为每段扫描开始位置产生一个脉冲。

第三步是采数。光功率计用模拟输出口接数据采集卡,采集卡用AWG的Marker作为触发。这样每一个扫描台阶的起始时间和采集卡的采样时钟是对齐的。每个台阶保持期内,取后半段稳定区的平均值,作为该电流点对应的光功率。

第四步是拟合计算。用Python脚本直接读数据。代码核心就几行:

import numpy as np # I: 每个台阶对应的驱动电流(mA) # P: 每个台阶对应的光功率(mW) I = np.array([...]) P = np.array([...]) # 线性拟合 coef = np.polyfit(I, P, 1) P_fit = np.polyval(coef, I) # 以满量程归一化的残差百分比 residual_pct = (P - P_fit) / (P.max() - P.min()) * 100 max_deviation = np.max(np.abs(residual_pct)) # 计算决定系数R^2 ss_res = np.sum((P - P_fit) ** 2) ss_tot = np.sum((P - np.mean(P)) ** 2) r_squared = 1 - ss_res / ss_tot print(f"最大偏差: {max_deviation:.4f}%") print(f"R^2: {r_squared:.6f}")

这里我建议不要只看R²,R²在高精度线性拟合里经常高达0.9999以上,区分度不够,必须看归一化残差的最大值。还有一点经验:拟合范围一定要剔除阈值以下的数据点,阈值以下本来就不在线性区,硬拉进拟合范围会把阈值段的斜率误差平均到整个区间里,掩盖真实的线性度问题。

3.2 动态谐波与交调线性度测试:咬住小信号

动态测试的流程比静态复杂。第一步是设定偏置点。我们把偏置电流设置为阈值电流的1.5倍,这是激光器线性度最好的区间,同时也是模拟光通信里常用的工作点。如果要对整个工作区间做全面评估,把偏置点从阈值附近一直扫到最大电流,每点重复测试。

第二步是生成DC+AC波形。用AWG输出V_bias+V_ac正弦。调制频率选1MHz到3MHz之间的值,避开电源纹波和机械谐振频段。V_ac峰值幅度取偏置电压的5%,这样用小信号逼近线性系统,测到的谐波才真实反映激光器的本征非线性。

第三步是同步采集。频谱仪用外部触发模式,触发源接AWG Marker,扫描带宽设为Span 20MHz,RBW设为10kHz,VBW设为100Hz,单次扫描。这样能同时看到基波、二次谐波和三次谐波。如果频谱仪底噪不够低,可以打开平均模式连续测几次。

第四步是计算失真指标。可以用频谱仪自带的THD功能,也可以把中频数据导出后用Python做FFT。FFT方法的好处是能精确定位谐波频率,不受频谱仪标记分辨率的影响。示例:

import numpy as np # fs: 采样率, 需要是信号频率的整数倍 fs = 40e6 N = 8192 t = np.arange(N) / fs f_sig = 2e6 # sig 是采集卡采到的中频/直采数据 # sig = ... win = np.hanning(N) spectrum = np.fft.rfft(sig * win) / (N * 1.5) # 简单幅度校正 freqs = np.fft.rfftfreq(N, 1 / fs) def mag_at(freq): idx = np.argmin(np.abs(freqs - freq)) return np.abs(spectrum[idx]) P1 = mag_at(f_sig) P2 = mag_at(2 * f_sig) P3 = mag_at(3 * f_sig) hd2_dB = 20 * np.log10(P2 / P1) hd3_dB = 20 * np.log10(P3 / P1) print(f"HD2: {hd2_dB:.1f} dBc") print(f"HD3: {hd3_dB:.1f} dBc")

用窗函数是必须的,不加窗的话频谱泄漏会让谐波幅度虚高。另外,FFT点数要保证至少包含64个周期的信号,太小的话谐波分辨率不够。

双音交调测试就是把波形换成双音,然后重点看2f1-f2和2f2-f1这两个位置的IMD3分量。这个测试对AWG的线性度要求更高,因为交调分量离双音基波很近,如果AWG自身的DAC转换非线性强,会在同样位置产生假的交调。所以在开始测试之前,必须做一次“AWG直连测试”,也就是不经过激光器,直接把AWG输出接到频谱仪或高精度ADC上,测一遍IMD3,用这个值作为系统本底。

3.3 自动化测试逻辑:把偏置点扫描交给脚本

高精度测试不是测一个点,而是要在多个偏置点、多个信号频率下重复测量。手调AWG和频谱仪非常痛苦,强烈建议用Python的pyvisa库做SCPI控制。DG70000系列支持标准SCPI命令,流程是这样的:

import pyvisa import time rm = pyvisa.ResourceManager() awg = rm.open_resource('TCPIP0::192.168.1.10::INSTR') sa = rm.open_resource('TCPIP0::192.168.1.20::INSTR') bias_list = [0.8, 1.0, 1.2, 1.4, 1.6] # V, 对应不同偏置电流 f_sig = 2e6 v_ac = 0.06 for bias in bias_list: awg.write(f':SOUR1:FUNC:MODE SEQ') # 下载第bias点对应的波形文件 awg.write(f':SOUR1:DATA:SEQuence:DATA1 <自定义波形数据>') awg.write(f':SOUR1:VOLT {bias:.4f}') awg.write(f':OUTP1 ON') sa.write(':SENS:FREQ:CENT 6e6') sa.write(':INIT:CONT OFF') sa.write(':INIT') time.sleep(0.5) sa.write(':CALC:MARK1:FUNC:MAX') freq_data = sa.query(':TRAC:DATA? TRACE1') # 解析数据,提取基波/谐波幅度 awg.write(':OUTP1 OFF')

需要提一句:SCPI指令执行顺序和波形下载流程要先在手动模式下验证一遍,尤其是序列模式下的下载命令,不同固件版本的命名可能略有差异。实测下来,把整个测试流程脚本化之后,一个完整的多偏置点动态线性度测试从一天缩到了两小时。

4. 现场问题排查:四个高频坑与解决实录

4.1 AWG自身谐波把测试结果带歪了

现场最典型的问题:测出来的HD3比激光器手册的典型值高10dB,并且不同偏置点下变化规律很怪。这时候不要急着怀疑激光器,先用一段短跳线把AWG输出直连到频谱仪,用和测试完全相同的幅度和频率测一次本底。我们最初测到的本底HD3约为-63dBc,这个数字对于做-50dBc量级激光器失真测试来说勉强够用,但如果是测-60dBc以下的高线性激光器,就彻底不够了。

解决方案分两步。第一,把AWG输出电平调高到接近满量程,然后用外部衰减器压回目标电平。高分辨率AWG在小幅度输出时,DAC有效位数会下降,噪声和失真占比会上升。通过“大信号输出+衰减”的方式,让DAC工作在高电平区间,可以显著改善小信号失真。第二,在做结果归因时,把AWG本底谐波和激光器失真分开测,用功率相加法则校正:

校正值 = 10 * log10(10^(measured/10) - 10^(source/10))

实测下来这个处理很关键,能挤出5~8dB的虚高失真。

4.2 触发对不齐导致波形“飘”和噪声底抬高

动态测试里最隐蔽的问题来自触发。AWG启动输出和频谱仪开始扫描之间如果不同步,多次测量平均出来的谐波就会互相叠加出一片噪声。我们的第一版配置让频谱仪自由触发,单次测量看起来正常,一开平均模式,频谱底噪直接抬高了3dB。

解决方式很简单,把AWG的Marker输出接到频谱仪的External Trigger输入,然后把频谱仪的触发模式设为外部触发。Marker在波形起点输出一个5V脉宽5μs的TTL脉冲,频谱仪收到脉冲才开始扫描。如果仪器距离开远,触发信号线超过2米,建议用BNC短线配合缓冲器,防止脉冲跳变边沿边长导致触发抖动。

4.3 激光器热效应造成“伪非线性”

静态P-I测试最开始只给了一个连续斜坡,扫描周期3秒扫完全程。结果得到的P-I曲线在电流增大段和电流减小段的回线非常明显,最大偏差3%以上。这不是激光器真的非线性,而是激光管结温随着电流上升而升高,输出光功率同时受热效应影响,扫描越快回环越大。

换成阶梯保持波形之后问题立刻缓解。停留时间从50ms一路往上试,最后取200ms,曲线回环基本消失。不同激光器热时间常数不一样,用内嵌热沉、TEC控温的模块可以缩短到100ms以下,裸管芯封装建议至少留500ms。这里给一个通用经验:把停留时间从短到长扫几轮,看归一化残差最大值收敛到哪个区间,就用那个值。

4.4 接地点环路和共模噪声污染频谱

另一件常见的事是频谱仪底噪下限到不了说明书指标,而且频谱图上出现50Hz及其谐波、开关电源频率的边带。原因是AWG、驱动器、频谱仪各自接了不同插座,地线之间存在电位差,形成地环路。

我们的做法是:整个测试系统从一个电源配电箱单点供电,所有仪器外壳通过一条低阻抗编织铜带接到同一个铜排;信号线全部用双层屏蔽同轴线,屏蔽层一端接机壳;激光器驱动器用隔离DC-DC供电,把驱动部分和测量部分从电气上隔开。这么做之后,地环路的干扰直接降到了频谱仪噪底以下。

症状可能原因处理办法
HD3虚高且无规律AWG自身失真或DAC位数不足直连标定本底,功率相减校正
平均后底噪抬高触发不同步使用Marker外部触发
P-I曲线回环明显激光器热效应阶梯保持波形,延长保持时间
频谱底噪有50Hz边带地环路单点接地、隔离DC-DC

5. 再进一步:把方案扩展到其他测试场景

5.1 多通道扩展:一台设备同步测多路激光器

很多高精度应用不是测一只激光器,而是筛选一批。DG70000系列支持多通道,可以同时输出多路有严格时序关系的激励信号。我们后来做了一个四通道扩展方案,路A和路B分别驱动两只激光器,通道C输出一个第二频率。四路光信号分别送入四个光电探测器,统一用AWG的同步参考时钟做时基。由于所有通道的波形在同一个DAC时钟下生成,通道间的相位偏差可以控制在皮秒量级,这对多路激光器一致性比对特别有价值。

5.2 频率响应与非线性联合测量

单一频率的小信号谐波测试只能测一个频点下的失真。如果有频谱仪或者高速示波器,可以让AWG输出宽带chirp信号,激励激光器从10MHz扫到500MHz,用示波器做快速傅里叶变换,互相关运算后得到频率响应曲线。同时,通过观察响应曲线在哪些频率点出现异常突起,可以反推激光器的非线性谐振机制。这个思路比逐点扫描效率高很多,前提是AWG的瞬时带宽能覆盖chirp的扫频范围。

5.3 关于计量可追溯性的一点体会

重点实验室里做测试,数据不仅要“看起来对”,还要能追溯到计量基准。这个项目里我们做的第一件事,是把AWG输出电压送到有校准记录的万用表上复核,把光电探测器的响应度用标准光源重新标定,把频谱仪的功率读数用标准信号源校验。所有环节的校准证书编号都写进了测试报告的附件里。回头再看,这套追溯链比任何一次测试本身都重要。电子测量设备的说明书指标只能作为参考,真正对结果负责的是你手里那条校准链。

说实话,做完这个项目我最大的体会是,高精度激光器线性度测试的瓶颈往往不在激光器本身,而在激励源的“干净”程度。DG70000系列给我们解决的最大问题,不是某一个参数有多惊艳,而是让激励这一环不再是木桶短板。如果你也在做类似的模拟光链路测试,建议第一步就把信号源当成测量仪器来对待,而不是当成电源来看待——这两者之间的差距,直接决定了你的数据值不值得写进报告。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询