刘亦伟
(北京全路通信信号研究设计院集团有限公司,北京 100070)
铁路通信作为通信系统的重要行业应用具有其特殊的应用需求,如应用信息传送的高可靠性、高可用性、底时延、低误码率等[1-2]。在铁路广播通信系统中,使用前向纠错技术可以有效降低系统误码率[3-4]。但现有的前向纠错编码技术通常使用固定码率,且码块之间相互不独立。固定码率对于变长的应用层数据可能会造成通信系统承载能力的浪费。由于码块间不独立,部分码块损坏可导致整个应用层信息错误或丢失。研究喷泉码(RaptorQ)技术,将其作为一种前向纠错的编码方式[5]应用于铁路广播通信系统中,可在保证系统误码率的同时,最大限度的利用系统资源。同时,依赖于喷泉码自身的编码特点,译码是否成功仅与接收到的信息数量相关,部分信息的丢失不会对应用层信息造成影响。本文通过对不同丢包率条件下,达到不同误码率等级要求时所需的译码开销进行仿真,实现对喷泉码性能研究的目的。
喷泉码是一种没有码率的编码方式。编码后生成的码组包括两部分:系统码(Source symbols)和修复码(Repair symbols)。其中系统码由信源的内容按照码组的符号(symbol)大小直接分割形成;修复码由系统码通过运算生成。系统码的个数由每个码组的长度和信源内容的大小决定,修复码的个数由用户根据网络承载能力,丢包率等因素按照系统需要规定[6]。发送过程中源节点在不知道这些数据包是否被成功接收的情况下,持续发送数据包。例如:假设信源包含k个原始码组,在喷泉码编码时可以产生k+n个码组。其中n个新加码组为修复码,称之为overhead。接收端只要收到k(1+ε)个码组的任意子集,即收到一个稍微大于原来k值的N,就可通过译码,以高概率(和ε有关)成功地恢复全部信源内容。喷泉码包含两类,卢比变换LT 码和Raptor 码[7]。
铁路车地广播通信系统由地面发送系统和车载接收系统两部分组成,如图1 所示。地面发送系统由地面数据服务器和通信发送基站两类设备组成。应用数据由数据服务器发送给通信基站后,由通信基站通过无线方式发射。
列车上装备车载电台。当列车进入基站覆盖区后,由车载电台接收数据,并将译码后的应用数据传送给对应的车载设备。
由于广播系统中地面与车载设备的通信没有信息反馈机制,因此需要使用前向纠错技术。广播通信系统数据处理流程如图2 所示。RaptorQ 所在的前向纠错层,承担了降低应用数据传输误码率,提高系统整体可靠性的重要任务。
图1 铁路车地广播通信系统示意图Fig.1 Schematic diagram of railway broadcast communication system
图2 广播通信系统数据处理流程示意图Fig.2 Schematic diagram of data processing flow of railway broadcast communication system
地面侧和车载侧均包括3 个逻辑层次,即应用层、前向纠错层、物理层。地面设备侧,应用数据首先到达前向纠错层,通过RaptorQ 编码将信源信息变为系统码组和修复码组。RaptorQ 编码后,将所有码组传递给物理层,由物理层完成加扰,时隙映射,调制等工作后,通过无线方式发出。
车载设备侧,从无线通道接收到数据后先经过物理层,完成解调、信息提取、解扰等工作。此时信息恢复为RaptorQ 编码后得到的系统码组和修复码组。由于无线传输过程中存在误码的影响,接收到的码组数量将小于等于发送的码组数量。利用喷泉码译码是否成功仅与接收到信息数量相关,部分信息的丢失不会对应用层信息造成影响的编码特点,对接收到的码组进行译码。理论上来说,当接收到的总码组数量大于等于系统码组个数时即可将应用数据成功译出,对于应用数据来说不会出现误码。
因此,选择合适的码组长度和修复码个数,是降低系统压力,减少译码开销,提高系统整体性能的关键环节。为了达到这个目的,本文对不同码组长度在不同丢包率条件下的译码开销进行了仿真。
喷泉码在铁路车地广播通信系统中纠错性能的仿真实验基于LINUX 系统进行。使用C 语言在Ubuntu14.04 操作系统下进行仿真模型搭建。
系统仿真架构包括5 个部分,如图3 所示。
图3 喷泉码纠错性能仿真系统示意图Fig.3 Schematic diagram of error correction performance simulation system of RaptorQ
1)生成定长的随机数作为信源。信源的长度根据工程上的实际需求来确定,这里使用1 800 Byte。
2)将信源(随机数)进行RaptorQ 编码。
3)编码后的系统码组和修复码组通过同样的消除信道,以此来模拟网络中的丢包现象。
4)接收端将收到的码组进行RaptorQ 译码。
5)将译码后的数据与信源数据进行比较,得到应用层数据的误码率。
喷泉码纠错性能仿真使用1 800 Byte 的随机数作为信源。选择了4 种码组长度大小(symbol size)作为研究对象,分别为16 Byte,32 Byte,48 Byte,64 Byte。每一种码组的长度都对网络丢包率从1%到10%的情况进行了测试。每组仿真传输都从k个系统码组和1 个修复码开始,此时传输的总码组数为(k+1)。传输1 000 次,每次接收端译码成功则成功次数加1。如果1 000 次传输的成功次数不为1 000,即接收侧出现了误码时,修复码个数加1,传输的次数清零,此时传输的总码组数为(k+2),以此类推。直到1 000 次传输,接收成功次数也为1 000,即误码率为0%时停止,此时传输的总码组数为(k+n),记录此时所需要的修复码的个数n,计算译码开销S。这里译码开销S为修复码与系统码个数的比值,即:
1)仿真的码组长度分为4 种:16 Byte,32 Byte,48 Byte,64 Byte。
2)需要编码的信源大小为:1 800 Byte。
3)每种参数组合的仿真次数为1 000 次。
4)当出现丢包时认为丢失了一个码组。
5)丢包率仿真范围1%到10%,步长1%。
1)对于每种码组长度和丢包率,仿真起始的修复码个数为1。
2)尝试1 000 次编码、传输、解码。
3)解码成功,则成功计次数加1。
例如:在1%丢包率下,初始修复码个数为1,若传输1 000 次的解码成功率不为100%,则修复码个数加1。直到修复码个数为n时,解码成功率为100%,记录修复码的个数。
4)将信道的丢包率加1%,进行下一个丢包率的仿真。
5)重复1)~4)。
6)找出每种丢包率下,解码成功率为100%时的译码开销,译码开销计算方法见公式(1)。
4 种码组长度在不同丢包率下达到100%译码成功率时所需要的译码开销仿真结果如表1 和图4所示。
通过对仿真数据和曲线的分析可以得到以下结论,对于固定大小的信源, 1 000 次传输达到100%的译码成功率:
1)对于任意的码组长度和丢包率,通过增加修复码的个数,总可以实现1 000 次传输100%的译码成功率;
2)随着网络丢包率的增加,需要的译码开销随之增加;
3)当网络丢包率增加时,码组越大,所需的译码开销增长越快。
表 1 不同丢包率和码组长度译码开销测试结果Tab.1 Test results of decoding overhead for different packet loss rate and code block length
图4 丢包率与译码开销关系图Fig.4 Relation diagram of packet loss rate and decoding overhead
4)对于不同的网络丢包率,使用的码组长度越小所需要的译码开销越小。
5)同样的译码开销,码组越小可以抵抗的网络丢包率越大。
本文介绍了铁路车地广播通信系统架构,探讨喷泉码作为前向纠错码在系统中的作用,研究了喷泉码译码开销与码组长度的关系。通过仿真实验对喷泉码的性能进行了测试。测试表明,在同样的网络条件下,码组长度越小,译码开销越小。同样的译码开销下,码组长度越小,可以抵抗的网络丢包率越大。
因此在实际使用中,在满足系统需求的前提下,应优先考虑使用小长度的码组进行喷泉码编码传输。但考虑到处理时间问题,小长度的码组可能需要更大的处理时间,因此在铁路通信系统设计时还需要进一步考虑。建议后续对码组长度和处理时间相关问题做深入研究。