在现代通信中,信源、信宿和信道是组成通信系统的最基本单元。其中信源是产生信息的源,信宿是信息的目的地,信道则是传送载荷信息的信号所通过的通道,信源和信宿之间是通过信道连接的。通常从两方面来衡量通信系统的性能指标:数量和质量。一般数量指标用有效性渡量,而质量指标用可靠性度量。前者主要取决于信源的统计特性,而后者主要取决于信道的统计特性。在信道中传输数字信号,一般要求信源端把信息转换成电信号,并用尽量低速率的二进制数字信号表示,然而为了匹配信道的特性,弥补信道的缺陷,减少传输中的损伤,以更高的速率和更可靠的性能传输信息,需要对信息进行信道编码。而卷积码就是一种有效的前向纠错信道编码方式。维特比译码与卷积码算法共同实现了前向纠错,消除数据流中潜在的噪声,从而增加了数据传输的可靠性,改进了多噪声及衰落信道下译码的准确性,提高了数字系统的性能。
1 卷积码编码原理
卷积码是一个有限记忆系统,它将信息序列分隔成长度为k的一个个分组,在某一时刻的编码输出不仅取决于本时刻的分组而且取决于本时刻以前的(N-1)个分组,这种距离性决定了卷积码潜在的纠错能力。
下面以参数(2,1,7)的卷积码为例说明卷积码编码原理。此卷积码的卷积多项式参数为k=1,n=2,N=7,码的生成多项式为(171,133)卷积码编码器在任何一段时间内产生的n个码元不仅取决于这段时间中的k个信息位,而且还取决于前N-1段规定时间内的信息位。其意义为:输人为1 bit时,输出为2 bit,移位寄存器的个数为m=N-1=6,该编码器的状态数为2m=64,记为Si,i=0~63,观察卷积码的状态转移图可得结论:
图1中D表示将输入延迟一个时间单位;⊕表示异或;X,Y为输入经过不同的延时后的异或结果。
在编码器状态确定的情况下,不同输入所对应的编码器状态网格图如图2所示。
由于(2,1,7)状态数较多为64,所以用只有8个状态的卷积码(2,1,4)来说明卷积码编码器的状态转移过程。实线表示输入为0,虚线表示输入为1。观察图2可知,从第5组节点开始每个节点都可以由两个状态转移而来。类似可得出(2.1,7)从第8组节点开始每个节点可由两个状态转移而来。2 维特比译码原理
Viterbi译码是卷积码的最大似然译码算法,是一种实用化的概率算法。它的基本思想是把已接收序列与所有可能的发送序列作比较,选择其中码距最小的一个序列作为发送序列。从图2的卷积码网格图可以看出,卷积码编码过程就是编码器状态沿着时间轴的一个转移过程。Vi terbi译码则是在如图2所示的网格图上搜索最可能的状态跳转路径,设(n,k,m)编码器输出的码序列为T,寄存器长度为L,经过离散无记忆通道(DMC)传输后送入译码器的序列是R=T+E,其中E为信道的错误序列。译码器根据接收序列R,按最大似然译码准则找到接收序列在如图2所示的编码器网格图上所走过的路径,这个过程就是译码器计算和寻找最大似然函数的过程,或者说是寻找最大度量路径的过程。其中最大似然函数为
寻找最大度量路径时首先要在t时刻读取所有状态的幸存路径度量值,再根据t+1时刻的输入算出跳转路径的度量值,将t时刻的幸存路径度量值和t+1时刻的跳转值相加,可得到t+1时刻到状态S的幸存路径度量值。这样每个状态都有一个幸存路径,根据这些幸存路径和最终编码器所处的状态就可以得到编码器的状态转移路径即译码结果。
3 维特比译码实现
维特比算法是将接收到的信号序列和所有可能的发送信号作比较,选择其中汉明距离最小的序列作为现在的发送信号序列。译码一般由图2所示的网格图中的S0状态开始,由于有6个寄存器,当每个寄存器的值都为已知时再输入才能得到唯一的编码器输出,所以译码初期连续接收12 bit的信息,它是由6 bit的输入得来的,由于6 bit的输入有64种可能的输出,所以将接收到的12 bit与64种可能相比对找出汉明距最小的一组即为想要的编码器输入也即译码器的输出。
一个完整的译码器一般包括以下7部分:状态发生器、累加器、比较器、度量值寄存器、信息序列寄存器、判决器、其他控制电路等,如图3所示。
对于(2,1,7)卷积码,在一个译码周期内,累加器完成64条支路度量值计算,比较器组完成同一状态的路径距离值比较,将较小者存入64个度量值寄存器。判决器选出64个信息序列寄存器中的最小者,并将相应信息序列寄存器的译码结果输出。
当确定各寄存器的初值后,从当前状态经过加比选蝶形运算后,到达下一状态,通过对每一分支度量的累积计算,经比较分析找到与接收序列距离最近的幸存路径。程序中的Nextstaterow是经过加比选得到的下一状态,将每次加比选的结果Nextstaterow保存下来放在一个数组Nextsatate中,当译码完成后Nextsatate中的各值即为译码所走过的路径,按照Nextsatate中的值,通过如图2所示的网格图回溯即可得到译码结果。
在信息传输的过程中,由于各种噪声的影响会造成接收到的数据有可能是误码,但连续出现2 bit的误码的概率又非常小,所以这里只考虑出现一比特误码的情况。当出现误码时两条岔路汉明距相等,由于基本不会出现2 bit的误码所以等到下一个节点时判断汉明距的大小就可以找到正确的输出。
图4是译码输出与编码器输入的比对,误码率很低,在所截取的图片中无误码出现,由仿真结果可清楚地看出译码器的输出与编码器的输入完全重合,说明译码器具有良好的前向纠错功能,用于通信系统可以提高信息传输的可靠性。
4 结束语
验证了Viterbi译码方案的可行性,这种译码方法得到的输出误码率可低至10-6。这种方案已用于某导航系统中,经测试,该译码方案在低信噪下也能达到较低误码率。