张永光,郑仕链
(1.通信信息控制和安全技术重点实验室,浙江 嘉兴314033;2.中国电子科技集团公司 第三十六研究所,浙江 嘉兴314033)
无线传感器网络(WSNs)中,通信的参与方都由一套完整的通信协议所约束,这套协议规定了信号从用户输入到频率输出的全部规约,包括了信息从发送到接收的全部处理过程,只有完全符合协议规范的通信参与者才能实现互通。通信协议在数据传输方面的规定一般被称为帧同步结构[1~3],通信参与方从所接收的码元序列中正确识别帧同步码元后进行同步,以帧同步为基础,进行传输信息的复原。实现通信帧同步的方法通常有两种:一种为集中式插入法,一种为间隔式插入法。集中式插入法在每帧的开头集中插入帧同步码组,间隔式插入法将同步码以分散的形式均匀插入到信息码流中。
同步码元的额外引入会带来通信效率的降低,如卫星通信IESS 系列标准中规定的同步开销达10%之多。无线传感器网络由于能量的限制,如能有效降低通信中的同步开销,必将相应地提高信道利用率,增加通信传输效率。
无线传感器网络中数据的传输都是基于帧结构进行的,传统的帧同步开销是由于周期性地在传输数据流中插入帧同步码元引起的,如果帧同步码元不是额外插入而采用替换传输码元方式的话,则完全可省去额外的帧同步开销。一种新的帧同步方法可如图1 所示形成。
图1 帧同步码形成示意Fig 1 Illustration of the frame synchronization code formation
对信道编码后的发射前数据,按照帧长L,子帧长l 对编码数据进行间隔替换,替换内容为帧同步码元,以替换的码元组合作为接收端的帧同步码,每次间隔替换的同步码元的比特数为m,每帧长L 通过替换得到长ns的帧同步码。需要指出的是,本文帧同步码的形成与纠错码的删除是不同的,纠错码的删除是为了提高传输效率对编码后的数据进行删除然后进行传输,损失了部分编码冗余信息,并且删除位置一般较近,会有3 dB 左右的性能损失。本文帧同步码采用码元替换的方法形成,从后面的讨论可以看出其对纠错性能的影响是很小的。
接收端对信息码元进行检测,当收到第一个与帧同步码相同的码元时,开始进行同步搜索,如果之后的码字全部符合帧同步码元规律,则完成一次帧同步码检测。当连续检测帧同步码次数达到要求时接收端完成帧同步。帧同步的过程分为三个状态:搜索态、捕获检验态和同步态,帧同步过程状态转移如图2 所示。
图2 帧同步过程状态转移图Fig 2 State transmission diagram for frame synchronization process
显然在帧同步码形成过程中对通信数据的替换可能会引入已知位置的误码,这将大大降低接收端译码器的纠错能力。如何以较小的代价在实现通信帧同步的同时尽量不降低接收端信道编码的纠错能力,是本文帧同步方法能否具有实际意义的关键。
从信息论可知,最优的译码算法是概率译码算法,常用的概率译码法有卷积译码所采用的Viterbi 译码法,Turbo码(含TPC 码)、LDPC 等译码所采用的迭代译码法[4~7]等。
完成帧同步后,以帧同步位置为基础,按照设计的同步码与所编码的码字数据之间的位置关系,提取编码码字,作为迭代译码的数据。
相比于常用的额外插入同步信息的帧同步方法,以卷积码和串行级联卷积码(SCCC)为例来分析基于概率译码的帧同步方法的误比特率变化情况。
Viterbi 算法是一种估计一个有限状态过程中状态序列的最优算法,根据产生卷积码的网格图确定最可能的发送序列,该发送序列对应网格图上的某一特殊路径。译码时,将接收序列与网格图上所有可能的传输路径相比较,求其汉明距离或欧氏距离,从中选择具有最小距离的发送序列,距离最小表示接收取此序列的可能性最大。在最大似然(ML)译码和高斯信道AWGN 下,对码率R,级数为v 的卷积码,输入序列长N,对应码字数为2N,误比特率上限pc为[8]
式中 dfree为自由距离;Nd为码字重量为d 的码字个数;wd为码字重量为d 的所有信息序列的平均重量;Eb/N0为对应于信噪比。
本文帧同步方法中每帧长L 通过替换得到帧同步码长ns,最好的情况下ns比特帧同步码和被替换的数据完全相同,最坏的情况下ns比特帧同步码和被替换的数据完全相反,可看成每L 比特帧长内有ns比特误码,新的性能限p'c为
在采用迭代译码法的Turbo 码和类Turbo 码中,软输入软输出(SISO)算法是一种易于实现的形式,它可用于一般的格状编码,处理网格中的并行分支,SISO 模块结构如图3所示。
图3 SISO 模块Fig 3 SISO module
SISO 算法的基本单元是是一个四端口的模块,有两个输入端口和两个输出端口,SISO 模块的输入是信息符号的概率p(u;I)和编码符号的概率p(c;I),输出分别是信息符号概率的更新p(u;O)和编码符号概率的更新p(c;O)。SISO 的作用是接收p(u;I)和p(c;I)作为先验概率分布,根据网格结构计算后验概率分布p(u;O)和p(c;O)作为结果输出。
Turbo 码有三种不同的排列,其中,SCCC 译码器的结构如图4 所示。
在ML 译码和AWGN 高斯信道下,设Aw,h为由重量为w 的信息位生成的重量为h 的码字的个数,SCCC 的误比特率上限ps为[9]
图4 SCCC 译码器结构Fig 4 SCCC decoder structure
式中 外码的码率Ro=k/p;内码的码率Rl=p/n;整个SCCC 的码率k/n;Eb/N0对应于信噪比;erfc()表示误差函数。交织器的长度为N,一般取p 的整数倍,SCCC 的性能限中外码输入序列长W 和内码输出长H 满足
采用SCCC 进行帧同步的性能限同卷积码的性能限分析方法,新的SCCC 性能限p's为
从公式(2)和公式(6)可以看出:无论是卷积码,还是SCCC,性能限的变化情况与ns/L 的大小相关,如帧同步码长ns相比于帧长L 越小,则新的性能限越接近于原始的性能限,对系统性能的影响也越小。
除了对帧同步码长ns和帧长L 进行合理设计,使新的帧同步方法情况下的性能限接近原始性能限外,针对已知替换位置可能引入误码的特点,还可对译码处理流程进行优化,进一步改善概率译码的误比特率性能。
对接收到的卷积码软判决数据,除帧同步码元的替换位置外,均按照实际接收软判决数据情况进行初始化;对帧同步码元替换位置的译码初始化值,编码序列先验软判决值一律设为0。先验软判决值取0 表示2m进制调制输出比特组合的先验概率为等概均匀分布1/2m。如对4 进制的QPSk 调制,每符号比特数为2,输出组合可能为00,01,10 或11,则这4 种组合的等概均匀分布值均为0.25。
在初始化完成后直接进行Viterbi 概率译码,最后判决输出译码结果。
SCCC 各成员译码器工作的实质就是后验概率的交换与更新,由于成员译码器均采用了SISO 的译码方法,使得译码能够充分利用信息序列和编码序列的后验概率进行译码。通过迭代译码的方法,软信息在成员译码器之间交互流动。每个成员译码器的工作就是根据输入的后验概率和编码网格结构对后验概率进行更新。SCCC 中由于外码的信息符号没有传送,可假设为等概率,因此,外码SISO 模块的p(u;I)设为1。迭代译码处理流程如图5 所示。
图5 迭代译码处理流程Fig 5 Iterative decoding processing flow
SISO 采用常用的前向后向算法,对接收到的软判决编码数据,除帧同步码元的替换位置外,其余部分均采用常用的SISO 译码初始化方法,依照实际接收软判决数据情况进行初始化;对帧同步码元替换位置的译码初始化值,编码序列先验软判决值一律设为0。一个SISO 译码器接收信息序列和编码序列的先验软判决值,通过计算输出信息序列和编码序列的后验软判决值;在每次迭代译码过程中译码器得到的不仅有信息序列的软判决值更新,同时也有编码序列的软判决值更新。
迭代译码是为了消除通信数据替换所可能引入的已知位置误码,一般译码迭代次数8 ~10 次后以迭代译码结果为基础,进行译码器的状态调整。以第一级SISO 译码器的迭代译码结果为基础,对第一级SISO 译码器进行状态调整。状态调整方法为对SISO 信息序列的后验软判决值进行归一化,归一化方法为找出信息序列后验软判决值的最大值,然后用该值去除所有信息序列后验软判决值,将归一化后的信息序列后验软判决值作为信息序列的先验软判决值;同样对SISO 编码序列的后验软判决值进行归一化,将帧同步码元替换位置的编码序列后验软判决值作为帧同步码元替换位置编码序列的先验软判决值。
状态调整完成后继续迭代译码,当满足译码迭代停止条件时,停止译码,输出译码结果。迭代停止采用通用的停止准则,如硬判决准则,软判决准则,交叉熵准则,CRC 准则等。
1/2 码率的(2,1,7)卷积码经过QPSK 调制,通过AWGN 信道,接收端采用Viterbi 概率译码方法进行译码,采用对通信数据进行间隔替换来形成帧同步码时,每次间隔替换的比特数为2,子帧长l 取20,50,80,图6 给出了未加编码,编码不进行替换,各种不同替换情况下普通译码和流程改进译码的误比特率(BER)曲线。
图6 卷积码纠错性能比较Fig 6 Comparison of convolution code error correction performance
码率为1/4 的SCCC,外码采用编码状态数为4、码率为1/2 的非系统卷积码(NSC),内码采用编码状态数为4、码率为1/2 的递归系统卷积码(RSC),交织为深度为512 bit的分组交织,采用对通信数据进行间隔替换来形成帧同步码时,每次间隔替换的比特数为2,子帧长l 取20,50,80。经过QPSK 调制,通过AWGN 信道,接收端采用迭代译码方法进行译码,译码迭代总次数为18,在第8 次迭代时进行译码状态调整。图7 给出了未加编码,编码不进行替换,各种不同替换情况下普通译码和流程改进译码的BER 曲线。
图7 SCCC 纠错性能比较Fig 7 Comparison of SCCC error correction performance
从图6 和图7 可以看出:帧同步替换时,子帧长l 所取数值越大,纠错性能越接近于未进行替换的情况,通过对普通Viterbi 译码和迭代译码的流程进行改进,可以极大改善纠错性能。在子帧长l 为80 的情况下,采用改进译码流程的性能较之未进行替换的情况,Viterbi 译码性能恶化不大于0.3 dB,SCCC 译码性能恶化不大于0.2 dB,可见本文帧同步方法对可采用迭代译码方法的编码有更好的适用性。
相比于现有的集中式插入和间隔式插入帧同步方法,采用对通信数据进行间隔替换来形成帧同步码,通过特殊的译码流程来解决数据替换所可能造成的误码问题,在纠错性能恶化很小的基础上节省了一般通信中的帧同步码开销,大大提高了传输效率。可以降低无线传感器网络中的能量消耗,延长网络寿命,有较大的工程实用价值。
[1] Chiani M,Martini M G.On sequential frame synchronization in AWGN channels[J].IEEE Trans on Commun,2006,54(2):339-348.
[2] Villanti M,Iubatti M,Vanelli-Coralli A,et al.Design of distributed unique words for enhanced frame synchronization[J].IEEE Trans on Commun,2009,57(8):2430-2440.
[3] Chiani M.Noncoherent frame synchronization[J].IEEE Trans Commun,2010,58(5):1536-1545.
[4] Gaudet V,Rapley A.Iterative decoding using stochastic computation[J].Electron Lett,2003,30(3):299-301.
[5] Rosnes E,Graell A.Performance analysis of 3D turbo codes[J].IEEE Trans on Inf Theory,2011,57(6):3707-3720.
[6] Xu J.Structured LDPC applied in IMT-advanced system[J].Wireless Communication,Networking and Mobile Computing,2008,6:78-81.
[7] Zhao S,Ma X,Zhang X.A class of nonbinary LDPC codes with fast encoding and decoding algorithms[J].IEEE Trans on Commun,2013,61(1):1-6.
[8] Robertson P.Illuminating the structure of parallel concatenated recursive systematic turbo codes[C]∥Proc of GLOBECOM,1994:1298-1303.
[9] Benedetto S,Divsalar D,Moniorsi G.Serial coneatenation of interleaved codes:Performanee analysis,design,and iterative decoding[J].IEEE Trans on Information Theory,1998,44:909-926.