[发明专利]基于SSE的咬尾卷积码Viterbi译码方法有效
申请号: | 201210147267.4 | 申请日: | 2012-05-11 |
公开(公告)号: | CN102684710A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 肖若贵;赵熠飞;李云洲;王京;肖立民;钟晓锋 | 申请(专利权)人: | 清华大学 |
主分类号: | H03M13/23 | 分类号: | H03M13/23 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sse 卷积码 viterbi 译码 方法 | ||
1.一种基于SSE的咬尾卷积码Viterbi译码方法,其特征在于,该方法包括步骤:
S1.取原接收数据前t时间内的码字序列复制拼接到原接收数据的尾部,取原接收数据最后t时间内的码字序列复制拼接到原接收数据的首部,将每个接收码字序列时刻的一个码段内的n0个单精度浮点值分别复制m0份,分别存放到一个M位的寄存器内,每个寄存器存放m0个相同的值,m0为寄存器的位数除以单精度浮点数所占的位数;
S2.对于每个接收码字序列时刻,在当前时刻内对所有可能状态,分别在假设当前时刻编码时输入为0和1的情况下,根据咬尾卷积码编码输出值和当前时刻接收到的数据,并行计算分支度量值,并将计算得到的分支度量值与前一时刻留存路径的度量值相加得到当前时刻的度量值,每次计算m0个度量值;
S3.对每两次计算得到的度量值进行并行比较,选择具有较大度量值的路径作为当前时刻的留选路径;
S4.在最后一个时刻,选择具有最大度量值的状态为译码终止状态,进行回溯判决。
2.如权利要求1所述的方法,其特征在于,所述t时间为5m-7m,其中,m为卷积码的编码约束长度。
3.如权利要求2所述的方法,其特征在于,步骤S2进一步包括:
S2.1对每一时刻,将2m个状态分成2m/(2m0)个块,对于每一块,按其状态的奇偶分成两组;
S2.2在假设当前时刻编码时输入为0的情况下,对于每一组的m0个状态,根据咬尾卷积码编码输出值与当前时刻接收到的数据,计算得到m0个分支度量的值,并将其放到一个M位的寄存器中;
S2.3将与步骤S2.2中所述的每一组的m0个状态相连的前一时刻的度量值放到一个M位的寄存器中,与步骤S2.2得到的m0个分支度量并行相加,得到编码时输入为0情况下当前时刻的m0个度量值;
S2.4在假设当前时刻编码时输入为1的情况下,对于每一组的m0个状态,根据咬尾卷积码编码输出值与当前时刻接收到的数据,计算得到m0个分支度量的值,并将其放到一个M位的寄存器中;
S2.5将与步骤S2.4中所述的每一组的m0个状态相连的前一时刻留选路径的度量值放到一个M位的寄存器中,与步骤S2.4得到的m0个分支度量并行相加,得到编码时输入为1情况下当前时刻的m0个度量值。
4.如权利要求3所述的方法,其特征在于,所述咬尾卷积码编码输出值根据卷积码的生成多项式矩阵,按照咬尾卷积码的编码原理计算得出。
5.如权利要求3所述的方法,其特征在于,所述m0个分支度量的值的计算方法为:
将所述m0个状态所对应的在输入为0情况下的编码输出的码段的最高位按倒序排列将这m0个值放到一个M位的寄存器中,与步骤S1中存放的m0个单精度浮点值做与运算,一个码段内的其他的值按照此规律计算,将与运算之后的全部结果相加得到m0个分支度量值。
6.如权利要求3所述的方法,其特征在于,所述m0个分支度量的值的计算方法为:
将m0个状态所对应的在输入为1情况下的编码输出的码段的最高位按倒序排列为这个值可以事先计算出来,将这m0个值放到一个M位的寄存器中与步骤S1中存放的m0个单精度浮点值l0做与运算,一个码段内的其他的值按照此规律计算。然后再将与运算之后的结果相加得到m0个分支度量值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210147267.4/1.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类