电模数转换的性能很大程度上受限于电时钟的抖动水平,但光子学技术具有宽带宽、高精度等特点,目前超短光脉冲的抖动已达到10fs左右,具有显著提高模数转换性能的潜力。因此,光模数转换具有巨大的应用前景。但由于通道的不一致性,以及光采样的非线性等,需要一定的算法进行校正和恢复。光模数转换系统在对各个通道信号进行数据采样时不可避免地带有随机误差,有时甚至带有显著误差。数据校正技术利用数据的冗余性,剔除原始数据中的显著误差,对数据进行校正以降低随机误差对测量值的影响并提取通道特征值,根据信号相关性推导得出的信号重构表达式进行失配校正,保证了数据的有效性。为满足实时性应用的需求,需要实时完成后端数据的校正处理。由于高速PADC后端采集的是高速大容量的多通道并行数据流,如何提高后端数据校正算法实现的实时性成为其关键之一。
FPGA具有强大的计算能力,能够高速并实时处理大规模的数据量,本文研究在FPGA上实现数据校正恢复算法、提高后端处理性能的方案,其中包括获取各个信号通道之间的失配量,进而修正通道间的不一致性,完成光模数转换中光采样系统后端数据处理模块。
1 数据校正的原理及方法
相位编码的光模数转换系统结构如图1所示。锁模激光器(Mode-Locked Laser,MLL)经过时间波长交织采样时钟生成模块,产生高速的光采样时钟。信号通过波分复用(WDM)模块马赫-曾德(MACH-ZENHNDER)调制器输出到由两个WDM端口(A端口和B端口)组成的双端口信号输入源。光采样时钟通过电光调制器(EOM)对RF信号进行采样。采样之后的光脉冲再通过WDM解复用成多路单波长光信号,每一路经过光电探测器(PD),转化为电信号,再由电子模数转换器(ADC)转换成数字信号。多路数字信号在信号重构模块进行数据校正、复合和储存。
图1 光模数转换系统结构图
校正时,系统中输入幅度为A、频率为ω、相位为φ的正弦信号,端口A、B第i个通道的采样信号输出可表示为式(1)及式(2)。
其中,O为偏置,G为增益,Pi为第i通道的光功率,C为与调制器相关的一个参数。
对A、B端口做频域变换处理,由于输入信号为已知正弦信号,因此利用快速傅立叶变换可以提取出偏置O以及增益G,根据此特征参数,可以去除第i个通道采样信号中的偏置、增益和时延差,得到信号表达式如式(3)及式(4)所示。
进而通过差分运算可得:
使用搜索法,当差分后的信号Souti的SFDR(无杂散动态范围)最大时找到最优的处理参数C。
在获取到校正所需的偏置、增益以及调制器相关参数C之后,在后续的测试中,用其对各个通道的数据进行校正,就可以恢复出被采样的信号。
根据上述原理,校正具体流程,如图2所示:给予系统一个已知频率正弦信号;对同一波长的差分信号对进行FFT(快速傅立叶变换)提取并校正增益、偏置和相位失配量;利用校正后的差分信号进行差分运算,并找到最优的反余弦运算参数;根据得到的失配量还原出各通道的原始采样信号;步骤2-4得到了所有通道的失配参数,在接下来的实时信号重构时用来校正。
图2 信号校正流程
2 信号重构模块设计与实现
在数据校正算法中,存在着大量浮点数的运算,这导致了通过Verilog语言直接在FPGA上实现算法存在许多障碍和困难。因此使用Xilinx提供的System Generator中间层作为算法到FPGA工程的转换。首先,使用System Generator提供的Simulink模块搭建起Simulink工程,将由MATLAB实现的数据校正算法在Simulink上加以实现。直接通过System Generator编译生成Xilinx的FPGA工程。从而实现可在FPGA上运行的数据校正算法,算法实现的过程如图3所示。
图3 算法实现架构图
实验采用MATLAB配合Xilinx System Generator forDSP进行了算法实现与测试。在实验测试中,以式(1)和(2)作为模型,产生测试信号作为数据源。首先使用System Generator中的RAM模块存储输入数据。使用数学运算模块(AddSub Block、Multi Block、Divide Block等)构建特征参数提取表达式,由于其中加减乘除不同模块的运算时延不同,在实际实现中,需要将中间计算数据存储在RAM中,实现数据同步。由于需要获得偏置O及增益G,通过System Generator中提供的快速傅立叶变换FFT模块对信号进行频域变换处理,分别提取出信号在指定频率处的偏置和增益。根据获得的特征参数,搭建System Generator处理模块,包括数学运算模块、存储模块、时延模块和流程控制模块,通过迭代去除A、B端口的偏置、增益和时延差。再将校正后的信号进行差分运算,进而使用搜索法寻找最优的反余弦处理参数。其中反余弦处理是通过查表法构造反余弦键值映射表得到。根据得到的三个失配量,搭建数据恢复模块,最终得到校正恢复后的信号数据。
3 结果与讨论
在XilinxFPGAVirtex-ML605的开发板上进行了实验测试。测试中,输入标准正弦信号的频率为250MHz,SystemGenerator仿真设定的时钟周期也为250MHz。图4是幅度、偏置和相位特征参数提取的实验结果。由图可见,五次实验运算中,MATLAB和System Generator的算法仿真提取的三个特征参数的平均误差率均在1%以内。
图4 幅度、偏置和相位特征参数提取的实验结果仿真数据
图5 System Generator和MATLAB恢复的数据与原始信号的比较
图5给出了采用MATLAB与SystemGenerator仿真恢复校正后的信号与原始被采样信号的比较。由实验结果比较可以看出,使用MATLAB进行校正处理恢复的信号与原信号的偏差均值小于2%,而使用SystemGenerator数据校正后的信号与原信号的偏差均值小于2.5%。二种实现方案的偏差相差很小。偏差主要来源于以下因素:
(1)在整个Simulink数据流中存有大量的数据截取和补长,并且各条路的时延不同,其中同步问题也带来一定的误差,从而导致数据精度的流失。
(2)Xilinx提供的FFT模块中数据的输出数据包含了一定数据精度的误差。
通过System Generator将Simulink搭建的算法模块进行翻译,生成ISE工程文件,并将其进行编译烧入到FPGA开发板中,进行协仿真,在30ms后算法达到收敛,经验证FPGA最后的恢复数据与System Generator中的仿真数据结果相一致。
4 结语
本文给出了一种基于FPGA实现光模数转换系统数据校正处理算法的方案。在方案中,由于数据校正算法的复杂性,提出了应用Xilinx的System Generator中间层,将大量的浮点数的数学运算转化成FPGA可运行的逻辑电路,并将算法在FPGA上进行仿真和实现。测试结果表明:用在FPGA上实现的算法恢复的信号与原被采样信号偏差均值小于2.5%,论证了该基于FPGA的实现方案的可行性。