优化上一项工作时把之前瞎玩做过的一个demo也想了起来,也分享出来好了。
本次是基于python控制可调谐激光器(TL)的输出波长对待测器件(DUT)的光谱透过响应(S21)通过光谱仪(OSA)进行测量。原理和测量电器件的矢网(VNA)类似,但是目前测S参数只能手动换DUT的输入输出方向进行测量,还是很笨。此外只能测光频域响应,并不能像VNA那样测出DUT对信号的附加相移。
环境:Anaconda 3 +PyVisa+GPIB
设备:
光谱分析仪(OSA) Anritsu 9740A (Res 0.03nm)
可调谐激光器(TL) Photonics(现被EXFO收购) Tunics 3642HECL (tuning step 1pm)
GPIB板卡 Agilent 82350B
待测器件(DUT): Micron Optics F-P Filter FSR:12.5G Fitness:1000 3dB bandwidth: 12.5MHz
装置连接图:
实现思路:
1.确定需要测量的频响范围。
2.使用一段短光纤作为校准件测量系统传递参数的初始值S21_Ref。
3.设定TL的输出功率,要求测量范围内功率平坦;控制波长按设定的步进变化,测量每一出射波长下光谱数据的中心波长和功率值,记录并移动到下一波长。
4.将DUT代替短光纤进行测量,得到DUT的传递参数曲线S21_DUT。
5.用S21_DUT-S21_Ref作为DUT的S21曲线。
6.如需要测试S11则对环形器的3端口进行测量即可,如需要测试S12和S22将DUT反接即可。
代码:
第一段是先封装了一个OSA类,用于进行OSA的控制,把不好记的指令转成直观的方法。
# -*- coding: utf-8 -*-
"""@author: FibLab"""
import visa
class OSA:
def __init__(self):
#Start communications with Optical Spectrum Analyzer - should check the address before
self.resmgr = visa.ResourceManager()
self.in