AMR系统中Viterbi译码的仿真与实现
2014-02-16王宇翔
王宇翔
AMR系统中Viterbi译码的仿真与实现
王宇翔
(武汉邮电科学研究院,武汉,430074)
本文根据AMR技术在GSM系统中物理层信道卷积编码规范,提出了一种可控制信道差错,降低工程实现难度的译码MATLAB仿真方案。结果表明,通过该仿真方案适合AMR语音业务信道卷积码的译码。
AMR;卷积编码;Viterbi;MATLAB仿真
0 引言
在GSM系统中,自适应多速率(AMR,Adaptive MutiRate)编码,是一种新的编解码技术,其核心思想是根据GSM空中接口上下行信号质量的变化情况进行动态地调整上下行语音编解码速率,以此来提高语音质量。与传统增强型全速率(EFR)和半速率(HR)相比,AMR技术可随着无线环境的改变而作相应调整。这不仅提高用户通话的感知质量,还可以提高频率的复用度。
本文通过对GSM物理层技术的研究,面向实际应用,首先以AFS12.2速率的卷积编译码为例,介绍了GSM系统中物理层AMR语音业务信道的卷积码的编译码原理,并在传统卷积码的Viterbi译码基础上提出了适合AMR语音业务信道译码实现方案,给出了仿真结果,为工程仿真和实现提供了参考算法。
1 GSM系统中AMR语音业务信道的卷积编码
AMR 语音信道编码包括12.2、10.2、7.95、7.40、6.70、5.90、5.15及4.75kbit/s等8种速率,其中12.2和10.2只用于全速率,7.40只用于半速率,其他5种可用于全速率和半速率。以12.2kbit/s为例说明卷积码编译码原理。
根据协议,速率为12.2kbit/s的卷积编码方式是将250比特的数据块通过1/2率卷积编码,其生成多项式定义为:
编码结构如图1所示:
图 1 编码结构
输出可以表示为
根据上述描述,可以看出AMR语音业务信道的卷积编码方式采用了“递归迭代”,即输出的编码比特会反馈到编码的输入端。最后,通过寄存器反馈端取出8bit来执行终止。
同时,AMR语音业务信道的卷积编码采取了打孔编码处理。它的原理就是卷积编码的输出端有选择的删除冗余的校验位以达到提高编码效率的目的,被删除的码元的个数决定了最终的编码速率。删除的主要好处是利用相同的编码器,通过改变删除码元的数目就能实现很大范围内的不同码率。
2 AMR的Viterbi译码的关键技术及实现
2.1 Viterbi译码的原理
自1955年爱里斯(Elias)提出卷积码之后,编码界学者提出了各种卷积码译码算法。其中,最为突出也是应用最广泛的是1967年由维特比提出的基于网格图进行路径搜索的维特比译码。Viterbi译码的基本思想是根据接收到的数据符号,在状态转移图中找出最大似然路径的幸存路径,即文献4:
利用Beyesi公式,可得出结论:
为降低译码算法的计算量,利用两条基本性质:
从而
考虑到在系统实现中往往采用对数形式的运算,则
定义:
上式可写为:
求得译码的分支度量,接下来就是根据接收译码系统通过累加、比较、选择最佳路径,判决输出码字。
2.2 加比选运算
对于编码速率为1/2,约束长度为K的情况下,加比选单元可以看成是一个蝶形运算单元,如图2所示:
蝶形运算单元的运算可以分为三个主要的步骤:
(3) 选出分支度量最大的一条作为新状态的幸存路径。
在GSM的自适应速率的话音信道中,其12.2Kbps/s是采用约束长度K=5的卷积编码,每一个符号时间间隔内有16种状态,一共可以构成8个蝶形运算单元。
自适应速率的卷积编码进行了打孔处理,所以处理支路量度的计算方法有一些差别。在进行“加比选单元运算”时,根据循环队列的元素值来计算支路量度。如果队列中第一个元素均为1,则计算接收序列每组中两个码元与两个支路输出比特之间的汉明距离;反之,则只计算元素为1的对应接收码元和其他位置上的一个支路输出比特之间的汉明距离,每进行一次支路量度计算后将队列循环移位,以进行下一次运算。
2.3 回溯算法
幸存路径的存取,是根据从加比选单元输出的一系列状态转移矢量,搜索出一条译码路径,并以正常的顺序输出译码结果,而实际上搜索的过程是在网格图中回溯各个状态点转移的过程。
上述蝶形运算方法的回溯深度是所有符号时间间隔,即采用的全回溯方式来得到译码输出,其具体实现为:
首先,在路径度量列表中找到最大值对应的末状态,作为回溯的起始状态。
其次,回溯过程从状态转移列表的最后一步开始,根据回溯的起始状态向前推导出幸存路径,并且幸存路径中每一步状态对应的第一个符号。
3 仿真结果
以12.2为例,利用MATLAB随机生成一系列数据,按规范中的1/2卷积编码对数据编码,通过打孔处理后,在接收端进行相应的维特比译码。
图3 原始数据与译码输出数据对比结果
图3 为原始数据与译码输出结果对比,可以看出,该译码算法可以很好的实现AMR系统的卷积译码。
在无线通信系统中,信道状况并非理想状态,所以通过加入高斯白噪声的信道来观察译码效果。通过仿真结果可知,该译码方法在一定范围内可以实现低误码率的卷积译码。如图4所示:
Simulation and implementation of Viterbi decoding in AMR System
Wang Yuxiang
(Wuhan Research Institute of Posts and Telecommunications,Wuhan,430074,China)
According to channel convolution coding standards in the physical layer of GSM system of AMR tec hnology,this paper proposed a decoding MATLAB simulation program that can control channel error and reduce difficulty of project implementation.The results show that the simulation program is appropriate for the de coding of channel convolution codes of AMR voice service.
AMR;Convolutional coding;Viterbi;MATLAB simulation