摘 要:介绍一种基于LabWindows/CVI的光谱测量数据采集系统,利用LabWindows/CVI的编程优势,提高了编程效率与光谱仪数据分析的处理能力。给出了傅里叶变换光谱测量方法的设计原理、硬件系统构成以及LabWindows/CVI软件数据采集系统,包括实现干涉图数据采集、实时显示、数据分析处理和光谱分辨率的精确计算等功能。实验结果证明该系统满足设计需求。
关键词:傅里叶变换光谱仪;LabWindows/CVI;干涉图;数据采集;数据分析
傅里叶变换光谱仪FTS(Fourier Transform Spectrometer)具有高通光能力,多通道探测、高分辨率、光谱范围宽等优点,是光谱分析强有力的工具,常用于宽光谱、复杂光谱或极弱光谱的测量[1]。目前傅里叶变换的光谱测量范围主要集中于红外波段,但是利用光束折叠技术的方法,可以将傅里叶变换的光谱测量范围扩展到可见光波段。与传统文本语言编程相比,LabWindows/CVI编程更适合FTS系统对干涉信号进行采集、加窗、快速傅里叶变换等信号处理方法的需求,进而提高了测量系统干涉图的数据采集、分析和处理能力[2]。
本文设计的基于LabWindows/CVI的傅里叶变换光谱测量数据采集系统,采用了光束折叠的方法,通过参考光对被测光在DSP数据采集系统中进行实时数据采集,并通过PCI转接卡,将结果传到计算机上进行显示处理,充分利用LabWindows/CVI软件的编程优势,进而实现了光谱分辨率的精确计算。
1 系统设计原理
1.1 傅里叶变换原理
傅里叶变换光谱技术(FTS)[3]的研究始于1880年迈克尔逊发明的干涉仪,它依靠动镜移动与固镜之间的不同波长光程差产生干涉图样。利用光束折叠技术,将傅里叶变换光谱测量范围由红外扩展到可见光[4],这是测量光谱的有效方法。测量原理是:采用两路干涉仪——参考光干涉仪和被测光干涉仪,并使之动镜处于同一运动电移台上,如图1所示,当电移台移动时,使用普通迈克尔逊干涉仪的被测光干涉仪产生的光程差为2x下,被测光干涉仪将光束折叠四次,得到的光程差为8x,光电传感单元接收的干涉条纹电流强度I为:
当被测光同样为He-Ne激光时,得到的干涉图的交流成分为:It(x)=It0 cos(4?仔?滓0x)。
因而当光源同为一种单色光源时,得到的干涉图信号是余弦波,并且被测光干涉图的周期是参考光干涉图周期的4倍,即被测光干涉图信号在一个周期内可以包含8个参考光干涉图的过零点。
1.2 采集系统的设计方案
系统的整体框图如图1所示,参考光干涉仪和被测光干涉仪产生的干涉图信号,经过光电传感单元,将光信号转化成电信号,其中参考光干涉仪的电信号经过过零比较器产生时钟脉冲信号,对被测光经传感单元出来的信号在DSP数据采集系统中进行采集,将采集到的数据通过PLX Technology公司提供的PCI接口卡芯片Plx 9052送入计算机,运用LabWindows/CVI软件进行数据处理和显示。
计算机通过MPC08运动控制卡来控制处于同一电移台上参考光干涉仪和被测光干涉仪上动镜的移动状态,从而保证干涉图的实时产生。
2系统硬件构成
硬件系统是由自行研制的DSP数据采集系统和电移台运动控制系统构成。
2.1 DSP数据采集系统
DSP数据采集系统是基于MOTOROLA56001芯片和主控芯片ADSP21020自行研制的多通道数据采集系统,采样频率可达400 kHz,具有12 bit的分辨率。A/D采样触发方式有两种:软件搜索峰值和过零检测。软件搜索峰值以搜索参考信号的最大值和最小值作为对被测光采样的触发时刻;而过零检测方法是检测参考光信号经过零比较电路出来的信号的过零点作为对被测光采样的触发时刻。在DSP数据采集系统内部通过触发时刻信号由IEEE 单精度DSP微处理芯片ADSP21020的双向主机端口来发送命令对被测信号进行采样。将采样的数据存储到DSP56001的SRAM区,由ADSP21020读取通过PCI接口卡芯片PLX9052传送到计算机上的LabWindows/CVI界面显示。
2.2 运动控制系统
干涉仪中动镜的运动状态是由运动控制系统控制的,因而运动控制系统的好坏直接影响干涉图产生的效果。此运动控制系统是由乐创自动化技术有限公司提供的MPC08运动控制卡、北京卓立汉光公司提供的高精度电移台KSA400-11-SF、伺服电机驱动器和交叉压板构成。计算机通过运动控制卡控制电移台的运动状态。在LabWindows/CVI的工程中加入动态链接库(MPC08.lib),在C文件中加上运动控制卡的MPC.h文件即#include “Mpc.h”,就可以直接调用运动控制卡中自带的一些函数来进行控制平移台的运动状态,如开始和停止等。
3 LabWindows/CVI数据采集系统软件设计
3.1 LabWindows/CVI的特点
LabWindows/CVI是美国NI公司开发的32 bit以ANSI C为核心的开发平台,将功能强大、使用灵活的C语言与数据采集、分析和表达等测控专业工具有机结合[5]。其集成化开发平台、交互式编程方法、丰富的面板功能和库函数等特点使LabWindows/CVI自身功能更加强大、应用方便,成为工程技术开发人员建立检测系统、自动测量环境、数据采集系统、过程监控系统首选的软件[6]。
3.2 LabWindows/CVI与硬件系统的通信
只有提供正确的连接DSP数据采集系统的基于PLX9052芯片的转接卡和运动控制卡MPC08的驱动,LabWindows/CVI才可对数据采集系统进行控制。动态链接库的设计主要解决硬件系统与应用程序之间的通信,使用LabWindows/CVI平台开发的应用程序不能直接调用 Windows的 API函数,而在 Windows平台下,应用程序与DSP数据采集设备的通信都要使用 Windows的API函数,因此,两者之间必须建立联系[7]。
常用的调用动态链接库中的方法是在工程中加入动态链接库(.lib)因而直接将运动控制卡的动态链接库MPC08.lib和MPC.h添加到LabWindows/CVI工程文件中,可以实现与运动控制系统的通信。而针对自行设计的DSP数据采集系统的通信,是将PCI接口卡的PLX9052的动态链接库PlxApi.lib、PciApi.h、Plx.h、PlxApi.h、PlxDefinitionCheck.h、PlxError.h、PlxType.h添加到LabWindows/CVI工程文件中,并在C文件中加上#include“PlxApi.h”,来实现与自制DSP数据采集系统之间的通信。
3.3 数据采集系统的界面设计
LabWindows/CVI数据采集系统的界面包含数据获得主界面和数据分析界面。主界面如图2所示,包括参数初始化、运动控制、单次数据采集和分析、N次数据采集和分析、数据显示模块及光程差点搜索六个部分。
(1) 参数初始化部分CaspaInit: 通过回调函数CaspaInitializationCallback()对DSP数据采集系统初始化,包括分配端口地址、进行两路信号的通道选择、设置HeNe激光波长、选择触发模式;
(2) 运动控制部分Translation Stage:包括初始化MPC08控制卡TransInit、设置运动状态、选择运动类型、设置运动速度和运动距离等功能;
(3) 单次数据采集和分析部分FTVis Specture: GetData函数实现数据的采集功能,将采集到的数据显示到图2右侧中,利用分析按钮将界面转到数据分析界面;
(4) N次数据采集和分析部分FTVis Specture with Averaging:选择数据采集的次数、窗函数的类型,以及通过数据分析按钮转到数据分析界面对N次采集的数据求平均傅里叶变换;
(5) 光程差点搜索部分:通过此部分找到光谱信号的最大值,以此为中心两边等距离扫描。
3.4 数据采集过程
数据分析界面包括时域分析和频域分析、存储数据和打印页面等功能。数据采集在FTS中是一个非常重要的模块,数据采集结果的准确性直接影响FTS的频谱分析。因而在第一步初始化DSP采集系统和运动平移台成功的条件下,通过对平移台运动扫描过程即获得干涉图数据采样过程,根据需要选择一次或者多次扫描采样,从而进一步对采样的数据进行时域和频域处理及分析,过程如图3所示。
3.5 实验结果与时频分析
建立数据采集系统后,将采集到的数据点数显示在图中,利用LabWindows/CVI中的高级分析库中的信号分析处理函数中的频域分析处理函数FFT (PaddingFFTReal,PaddingFFTIm,FFTDataPoint),对采集的数据进行傅里叶变换得到相应的频谱图,根据频谱图,可以计算光谱信号的分辨率,数据分析面板如图4所示。
从数据分析界面右上角部分,可以看到数据采集的结果大概是三角函数余弦波,在一个周期内参考光对被测光采样8个数据点。这与前面介绍的傅里叶变换原理的结果相吻合。在数据分析和处理中,充分利用了LabWindows/CVI优于C语言的四个特点:
(1) 利用FFT()函数对采集到的数据做傅里叶变换;
(2) 利用窗函数对数据进行滤波;
(3)利用SetAxisScalingMode() 函数灵活放大或者缩小Graph中的图形;
(4) 利用Graph控件的光标功能:用GetGraphCursor()和SetCtrlVal()函数直观地显示光标位置,从而直观地计算光谱分辨率。
在FTS中,傅里叶变换光谱的分辨率是一个非常重要的参数,在LabWindows/CVI软件中,可以通过在傅里叶变换图中坐标的位置方便地计算出傅里叶变换光谱仪的光谱分辨率(即最大光强一半时的光谱宽度),为(15 802.265-15 801.982)=0.283cm-1,这与理论值(光程差的倒数1/2x=1/(2×20.74)=0.241cm-1)非常接近。
实验结果表明,通过动态链接库的调用,可以成功地实现 LabWindows/CVI与硬件系统的通信,实现了FTS干涉图的数据采集,显示、频谱分析,及光谱分辨率的计算。
本文介绍了基于LabWindows/CVI的光谱测量数据采集系统,在利用LabWindows/CVI开发应用程序时,通过调用动态链接库DLL,实现了计算机与DSP数据采集系统和运动控制系统之间的通信,充分体现了模块化特点,保持了各自的独立性。本文的创新点在于采用光束折叠的方法,可以测量可见光的光谱,其次充分利用LabWindows/CVI中的信号分析处理函数,可以直接对获得的信号进行傅里叶变换,尤其利用其坐标优点来计算傅里叶变换光谱中的信号分辨率,获得很大的方便性和直观性。
参考文献
[1] BELL R J. Introductory fourier transform spectroscopy[M].New York:Academic Press,1972:33-34.
[2] BRASUNAS J C, CUSHMAN G M. Unifom time-sampling Fourier transform spectroscopy[J].Optical Society of America,1997,36(10):2206-2210.
[3] SAPTARI V. Fourier-transform spectroscopy instrumentation engineering[M].Tutorial Texts in Optical Engineering volume TT61 Arthur R.weeks, Jr., Series Editor A Publication of SPIE-The International Society for Optical Engineering Bellingham,Washington USA.2003.
[4] Wang Xuzhu,ROBERT K Y. CHAN, AMELIA S K. CHENG. Near UV-near Fourier transform spectrometer using the beam-folding position-tracking method based on retroreflectors [J] .SCIENTIC INSTRUMENT 79,123108,2008.
[5] 宋宇峰. Lab Windows/CVI逐步深入与开发实例[M].北京:机械工业出版社,2003.
[6] 王建新、杨世凤 隋美丽. LabWindows/CVI测试技术及工程应用[M].北京:化学工业出版社, 2006.
[7] 罗锦,孟晨,苏振中. 动态链接库技术在虚拟仪器系统 构建中的应用[J].计算机工程,2003,29(3):176-177.