APP下载

基于FPGA的自由空间光通信抗湍流算法

2022-09-09谭晓川王碧瑶李少波马明毅杨乾远

无线电工程 2022年9期
关键词:误码交织湍流

谭晓川,王碧瑶,李少波,马明毅,杨乾远

(1.中国电子科技集团公司第五十四研究所,河北 石家庄050081;2.河北省光子信息技术与应用重点实验室,河北 石家庄050081;3.中国电子科技集团公司第三十四研究所,广西 桂林 541004)

0 引言

自由空间光通信技术具有抗干扰能力强、通信容量大和空间传输损耗小的特点,在复杂电磁环境下具有很好的应用前景[1-2]。当前,自由空间光通信存在的主要问题是大气湍流信道对激光传输质量的影响,光束在大气信道中传输时,受湍流效应影响,会产生随机起伏和光强的抖动,影响通信链路的稳定性和可靠性,甚至造成链路中断[3-4]。在自由空间通信中,湍流引起的激光功率衰落的典型持续时间是0.1~10 ms,最大衰落深度可超过30 dB,并呈现出衰落持续时间越长频率越低的现象[5]。

针对上述由大气湍流效应产生的通信问题,通常采用自适应光学等手段进行光学波前修复和补偿[6-7],抑制大气湍流对信号带来的影响,从而提升信号质量。但自适应光学系统存在体积功耗较大,且难以对大型湍流进行抑制的问题。不同于传统的自适应光学手段,本文采用数字信号处理的方式进行大气湍流抑制,创新性地提出了一种适用于不同湍流条件的交织算法矩阵模型,采用交织加编译码的抗湍流算法进行了FPGA内的算法实现及验证,为自由空间光通信湍流抑制提供了一个新的解决思路。

1 抗湍流算法原理

受大气湍流影响,自由空间光通信中会产生大范围、突发性错误,传统的纠错码技术修复误码的能力有限,且很难抵抗大量的连续突发误码,因此无法有效地进行纠错。为此,提出了采用交织加纠错码的抗湍流算法,利用交织把较长的突发错误或者几个分立的突发错误离散成为随机错误[8],在一一对应的情况下进行数据位重组,再利用纠错码技术进行有效纠错[9]。通过交织进行连续突发错误处理的示意图如图1所示,连续错误被打散到不同位置进行纠错译码,使得错误数据得到有效的恢复。

图1 交织处理连续误码能力示意Fig.1 Interleaving algorithm for processing continuous error

在自由空间光通信大气湍流抑制算法中,交织器的设计算法作为其中的关键,其性能优劣直接影响到大气湍流的抑制效果。针对此问题,设计了一种适用于不同湍流环境的交织器算法。

2 交织器算法设计

在纠错码性能一定的情况下,大气湍流抑制性能的好坏主要取决于交织器的算法。常用的交织方式分为分组矩阵式与随机式[10-11]。分组矩阵式通过逐行读入、逐列写出的方式,操作简单且资源占用少,因而受到广泛使用。而随机式交织器通过生成随机矩阵将序列打散,离散度相对更高,通信双方一般采用存储的方式将随机矩阵序列进行存储。

针对自由空间光通信的信道特性,分别设计了交织矩阵为5 000×5 000的分组矩阵交织器和随机交织器,通过仿真得到了强弱湍流环境下2种交织器的突发错误矩阵分布,其误帧分布统计如图 2 所示。

可以看出,分组矩阵交织器能够将错误分布得足够均匀,但是其离散度有限,特别是在强湍流模型下,分组矩阵交织会造成局部的集中分布。即使在交织之后也不能得到较好的离散,影响后续纠错码的性能。然而对于湍流较小的情况,分组交织能够很好地将误帧分散于整个大帧之中,达到分布均匀的目的,因此分组交织可以很好地应用于小湍流情况下的信道中。而随机式交织器能够将错误打得足够散,使得错误分布广,但存在局部分布不均匀的情况。

结合2种交织矩阵的优点,提出了一种分组随机矩阵的交织方案,其设计思想为,首先进行分组交织,将突发错误进行打散,再进行组内的随机交织,将连续的误码进行分散。因此新的分组随机交织方案既继承了随机交织的优良离散性,又继承了分组交织的均匀性,使得误码可以更好地均匀离散。

(a) 小湍流下分组解交织后误码分布位置

(b) 强湍流下分组解交织后误码分布位置

(c) 小湍流下随机解交织后误码分布位置

(d) 强湍流下随机解交织后误码分布位置

在交织中通常使用相邻误码在交织后的错误离散距离评估交织算法的性能[12]。错误离散距离常用计算式如下:

通过信道模拟了小湍流和大湍流情况下3种交织方式的错误离散距离性能参数,其结果如图3所示。

(a) 小湍流下的错误离散距离

(b) 大湍流下的错误离散距离

错误离散距离数值越小,说明错误分布相对分散,离散性能越好;错误离散距离数值越大,则说明分布不均匀,性能越差。因此可以看出,在小湍流信道条件下随机交织的性能较差,在大湍流信道条件下分组交织的性能较差。而改进后的分组随机交织在大小湍流信道中数值均为最小,效果最优。测试结果表明,随机分组交织方案解决了分组交织抑制大湍流能力差及随机交织在小湍流下性能差的问题,在不同的大气湍流环境中,数值最小,离散度最优,因此选用随机交织矩阵作为抗湍流算法并进行FPGA设计。

3 抗湍流算法FPGA设计

由于在传统的FPGA芯片中,芯片自身内置储存空间相对较小[13],而自由空间光通信中大气湍流造成的误码数量在Mbit量级[14-15],结合纠错码纠错能力,解决大气湍流造成的误码数量交织矩阵的深度需达到百兆量级。为满足信息交织过程中的信息缓存需求,设计采用外挂DDR3的FPGA进行交织结构的算法运行[16-17],同时加入了链路性能反馈模块进行交织矩阵大小的自适应调节,当误码率增大时,增加交织深度;误码率减小时,减少交织深度,便于DDR3内部缓存的合理化运用。抗湍流算法的设计验证板卡采用Xilinx公司型号为XC7K325TFFG900的FPGA,同时外挂4片Micron公司型号为MT41K256M16HA-12DDR3的储存芯片,用于大容量数据缓存,每片DDR3容量为512 MB。FPGA不仅处理速度高,而且可配置性好[18],使用Xilinx公司FPGA提供的专用DDR3接口模块MIG(Memory Interface Generator)IP核可以轻松实现FPGA与外部存储器之间的接口设计[19-20]。

自由空间光通信系统中,通常包含了发射端及接收端用于进行系统测试及算法验证,因此抗湍流算法的实现也包括了发射端及接收端,其功能模块结构完全相同,接收端算法为发射端算法的逆过程。抗湍流算法FPGA设计如图4所示,主要包括了数据源模块、编译码模块、DDR3读写控制模块、链路反馈模块、MIG配置核及DDR3六个部分。

发射端抗湍流算法流程为产生数据源后,经过纠错模块进行预编码,通过存入数据缓存器FIFO(First In First Out)中等待DDR3读写控制模块进行读取,DDR3读写控制模块通过逻辑控制状态机的方式进行DDR3状态的切换及从FIFO接口中读取数据的控制,通过配置DDR专用接口模块MIG核进行DDR3数据交互的方式实现抗湍流算法。MIG核与DDR3交互流程如图5所示。

图4 抗湍流算法FPGA设计Fig.4 Anti-turbulence algorithm FPGA design

图5 MIG核与DDR3交互流程Fig.5 Interaction flow of MIG core and DDR3

DDR3的写入/读出方式采用了设计好的分组交织矩阵的方式,按照顺序将数据写入DDR3,读出时根据设计好的随机分组矩阵进行对应数据的读取,数据经过抗湍流算法处理后由激光器调制发出。接收端抗湍流算法与发端对称,先在DDR3中按照随机分组矩阵进行数据写入,顺序读出后完成解交织部分送入纠错模块进行操作,最后在接收端得到发送数据。

4 仿真试验与性能分析

4.1 功能测试

根据设计方案进行了FPGA代码编写并在板卡上进行了测试。首先进行了功能性验证,设计了帧数据产生并通过编码模块,送入DDR3中进行交织后,再由接收端进行逆过程,得到接收端数据后进行数据及功能分析。交织后的数据时序如图6所示,通过Matlab模拟了数据经过不同模块后的数据源码并将各个模块FPGA板上测试结果导出数据后进行比对。

图6 交织后的数据时序Fig.6 Data timing after interleaving

比对结果显示,可以通过使用DDR3的方式实现分组随机交织的抗湍流算法,验证了整个方案的正确性。

4.2 误码分布测试

为验证分组随机交织算法的性能,采用加入误码模块、改变传输数据的方式来产生人为的误码,从而进行湍流模型的构建,测试得到了大小湍流条件下的3种交织算法的误码率,测试结果如表1所示。

表1 不同湍流条件下3种交织算法的误码率测试

由于测试系统带有纠错模块,当系统误码率越低时,说明离散度越好,纠错的数量越多,从表中可以看出,随机分组交织算法在2种湍流模型中误码率最低,与仿真结果趋势相同,验证了随机分组交织算法的离散性能最优,在不同环境下的湍流信道中表现最好。

4.3 延时测试

由于DDR3自身为保证数据的正确性,存在周期性的自刷新操作,当DDR3进行自刷新操作时,不能够进行正常的读写,在一定程度上影响了交织模块的功能效率。为此加入了DDR3乒乓设计操作,使用2片DDR3进行读写并行操作,在一定程度上能够减少延时,同时在交织模块与前后模块进行交互时加入了异步时钟FIFO进行数据量的缓冲。

测试了不同交织深度的DDR3在进行交织操作时的延时,针对交织模块进行了不同数据量读取速度的测试,在程序中加入计数器测试了交织整个过程的时钟数量作为时延数据,测试结果如表2所示。

表2 不同数据量下的DDR3读写速率测试表

从多次的测试数据可以看出,在DDR3读出/写入时加入乒乓可以在一定程度上抑制数据延时。由于DDR3产生的数据自刷新会产生一倍以上的数据时延,影响数据速率。通过采用异步时钟FIFO可进行跨时钟域处理,在降低读取速率的基础上抑制DDR3的自刷新现象。

5 结束语

本文提出了一种数字域抗大气湍流的算法,基于常用的交织方式并结合湍流特点,提出了一种可应用于不同湍流环境中的交织矩阵算法,仿真结果表明交织矩阵在不同湍流条件下具有更优的错误离散距离,算法能有效减少湍流效应对于链路性能的影响。利用FPGA进行演示验证,首次提出了使用DDR3的方式进行抗湍流算法的硬件实现,通过数据与Matlab模拟结果比对测试,进行了算法的功能性验证,通过误码分布测试验证了分组随机交织的离散性能最优,对算法延时特性进行了测试和相应的优化,提出了DDR3乒乓结构的设计算法,将系统自刷新延时比例从3.21降低至2.14,减少了系统延时。

猜你喜欢

误码交织湍流
“新”与“旧”的交织 碰撞出的魅力“夜上海”
湍流燃烧弹内部湍流稳定区域分析∗
“湍流结构研究”专栏简介
交织冷暖
SDH传输设备信号传输过程中误码问题的分析
误码问题处理两例
100Gbps误码检测系统设计与实现
奥运梦与中国梦交织延展
作为一种物理现象的湍流的实质
湍流十章