一种基于Viterbi译码的多路并行循环块回溯算法是根据Viterbi译码原理,其过程包括:提出一种仅需采用卷积码编码回溯的译码算法,回溯算法对Viterbi译码幸存路径信息的存储视情况可采用单口RAM或者双口RAM,RAM单元数的大小恒为回溯深度T的2倍与卷积码状态总数的乘积。RAM要分多块使用,分块多少由回溯深度和回溯块的大小决定。每块RAM都对应一个回溯单元和一套回溯选通网络,回溯时只有一部分RAM需要读写操作,同时有效的并行回溯路径数是回溯深度与回溯块大小的比值。回溯过程中,始点是路径度量的最小值对应的状态值作为当前回溯状态,随后,由当前回溯状态结合选出的当前幸存路径,回溯到下一个译码状态值,并且需要对多块RAM连续访问,回溯的当前状态值也在两块RAM之间实现连续切换,最后,回溯结果是反序排列的,寄存后以正常顺序输出译码结果。
【技术实现步骤摘要】
基于Viterbi译码的多路并行循环块回溯技术
一种卷积纠错编码的Viterbi译码方案——多路并行循环块回溯算法,涉及通信芯片中的信号处理,,属于无线通信领域,尤其涉及面向芯片设计做面积和功耗的优化。
技术介绍
积码作为一种前向纠错编码技术,在无线通信、移动通信、深太空通信、磁盘存储纠错等方面应用十分广泛。但是卷积码的译码比较困难,已知的两种方法是代数译码和概率译码。代数译码是根据卷积码的本身编码结构进行译码,译码时不考虑信道的统计特性。概率译码在计算时要考虑信道的统计特性。典型的算法如:最大似然译码、Viterbi译码、序列译码等。Viterbi译码算法是由Viterbi于1967年提出的一种最大似然译码方法,它通过计算累积码距,在相应的卷积码格状图上寻找唯一的最大似然路径,再根据这条路径所通过的延时寄存器的状态,来重构发送的数据。Viterbi译码又分为硬判决和软判决两种。在硬判决译码过程中信号之间的差别用汉明距离来表示,而在软判决中用欧氏距离来表示。由于软判决充分利用了接收信号的信息,因而可比硬判决得到更多的好处,当然实现的难度也增加了不少。Viterbi算法的译码过程又有寄存器交换算法和回溯算法,无论哪种方法,译码器的前端需要一个基2、基4甚至基8的ACS(Add-Compare-Select)网络,完成译码输入的分支度量、路径度量操作。寄存器交换算法面积的占用和功耗巨大,除了对码率要求特别高的场合下,一般不采用。回溯算法技术应用广泛,但回溯算法技术的译码输出延时要大于寄存器交换算法技术,针对回溯算法前人提出了各种各样硬件结构的实现方案,通常是对电路面积、功耗和速度进行各种优化。以(2,1,2)码为例,其篱笆图如图1所示,该卷积码的编码器具有2个寄存器,则有s0,s1,s2,s3共4个状态,图中实线箭头表示编码输入为“1”,虚线箭头表示编码输入为“0”。箭头旁边的码字代表编码输出,由此便构成了卷积码的篱笆图。在接收端译码时也使用这样的篱笆图,在每个时刻,将接收码字与图中的编码码字比较得出二者之间的差值距离(汉明距离或欧几里得距离),即分支度量,图中每个时刻到达每个状态都有两个转移路径,只能取其中具有较小的分支度量的分支作为幸存路径,每个时刻每个状态的分支度量与这条路径上前面所有的分支度量累加,以得到路径度量值。在经过一定时间的这样的操作之后,便可得到一条度量值最小的路径,称为幸存路径,在这条路径上可以找到相应的编码输入,即可得到译码输出值,这个过程称为回溯译码,回溯的-->时间长度称为回溯深度。Viterbi译码器参数的选取十分重要,回溯深度,回溯块的大小将直接影响译码器的性能,设卷积编码器的约束长度为K,那么理论上需要回溯的深度为(5~10)*K,保证译码格形图上幸存路径已经收敛,可以回溯了。回溯块大小的选取需要根据实际情况判断,如各类通信信道的特征等,有时需要根据实际的仿真结果确定。
技术实现思路
本专利技术的目的是提出一种可实现高数据译码率的Viterbi回溯技术,并且使实现该技术的硬件体系结构具有较低的功耗需求和芯片面积需求。本专利技术的总体思路是:根据Viterbi译码理论,首先选择合适的译码状态编码方案,最大限度地简化回溯单元逻辑;其次,根据Viterbi译码参数回溯深度T和回溯块S的大小决定选取单口RAM还是双口RAM,RAM分块数是2×(T/S),如果T/S非整数,用大于T/S的最小整数代替,这些RAM存储幸存路径分支信息,回溯时有多路回溯同时读取多块RAM中的数据,而每条回溯路径在回溯到第一块RAM时开始循环读取最后一块RAM中的数据,回溯产生的译码状态值在连续的RAM块之间切换。而RAM中幸存路径信息的写入由第一块RAM开始,到最后一块RAM结束,然后循环到第一块RAM,回溯时再配以适当的选通网络即可完成译码器的回溯过程。本专利技术的特征依次包含以下步骤:1.基于Viterbi译码的多路并行循环块回溯算法,其Viterbi译码的分支度量和路径度量采用公知的基2蝶形ACS网络,设所需译码的卷积码约束长度为K,则卷积码编码器有K-1个寄存器,相当于K-1位二进制数,对应2K-1个状态,与编码输入端最近的寄存器设为寄存器的最低位,与编码输出端最近的寄存器设为寄存器的最高位,编码寄存器的二进制值就对应回溯的状态值,例如“00…001”可以转换到下一个状态“00…010”和“00…011”(省略号代表同样的二进制位),是一个左移过程,假设当前状态值是“00…001”,那么它可以回溯到下一个译码状态“00…000”或者“10…000”,于是,回溯时就可以简化为对当前回溯状态值的右移操作,并把最高位设置为当前的幸存路径分支信息。2.对卷积码的Viterbi译码参数设置为回溯深度T,回溯的块大小S,且T/S恰好是整数,大小最适宜的值是2到6之间,有T/S路同时循环回溯。由于T和S正好成整数比,恰好不存在对幸存路径信息存储的RAM的同时读写操作,故使用单口RAM即可,RAM-->大小为S×2K-1bit,一共有M=2*(T/S)块。每一块RAM对应一个当前状态寄存器。(1)回溯时幸存路径信息依次写入M块RAM中,当写入第T/S块RAM的最后一个字时,回溯过程启动,最小路径度量值对应的译码状态选通到第T/S块RAM对应的当前状态寄存器中,以它为始点进行回溯,再过长为S的写时钟周期,将在第(T/S)+1块RAM处启动第2条回溯路径,此后回溯过程同前。如果第M块RAM的幸存路径信息写入操作完成,将重新启动第1条回溯路径。随后,从第1重块RAM复回溯。(2)正常回溯时从某一块RAM读取的幸存路径信息,由当前状态值控制通过2K-1选1的MUX选取一位幸存路径分支信息,当前状态值和幸存路径分支信息输入到回溯单元进行右移操作产生下一个回溯的译码状态值。该状态值需要再通过两级2选1延迟的MUX(2K-2线输入K-1线输出),第一级该状态值与最小路径度量值对应的状态值送入MUX,第二级是前一级的输出和后一个回溯单元第一级的输出作为MUX的输入。第二级的输出连接当前状态寄存器。(3)如果回溯到RAM的第一个2K-1位字,下一周期将回溯到前一块RAM的最后一个2K-1位字对应的幸存路径信息,两块RAM之间存在当前状态值的切换,即当前RAM对应回溯单元的输出经选通器传给前一块RAM的当前状态寄存器,一个2选1延迟MUX即可完成当前译码状态的连续切换。对每一条回溯路径需要连续切换的次数是T/S-1。(4)译码输出阶段,当某一条回溯路径已经回溯了T-S个时钟周期时就开始记录译码结果了,在随后的S-K+1个时钟周期里,该回溯路径对应的当前状态寄存器最低二进制位经M选1MUX左移输入S bit的移位寄存器中,在第S-K+2个时钟周期,当前状态寄存器值直接输入到S bit移位寄存器的最高K-1bit即可。此时移位寄存器中的S bit译码结果可以并行输出了。(5)RAM的使用。在多路径并行回溯时,共有T/S+1个RAM处于读写状态,其余T/S-1个RAM可以通过片选使能信号禁止它们工作,降低系统功耗。M块RAM的工作情况有规律可寻,可以通过对M块RAM的片选使能信号进行简单的编码处理来完成。3.如果T本文档来自技高网...
【技术保护点】
一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:基于Viterbi译码的循环多路并行回溯电路的工作步骤包括,首先需要选取一定数量的RAM块,用来存储幸存路径分支信息;再将其分为几个分块,回溯时电路同时、循环地在 几个分块组成的回溯长度的RAM中读取数据,并得出各个回溯长度的RAM对应的译码,将各个分块的译码值连接起来,完成译码过程。
【技术特征摘要】
1.一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:基于Viterbi译码的循环多路并行回溯电路的工作步骤包括,首先需要选取一定数量的RAM块,用来存储幸存路径分支信息;再将其分为几个分块,回溯时电路同时、循环地在几个分块组成的回溯长度的RAM中读取数据,并得出各个回溯长度的RAM对应的译码,将各个分块的译码值连接起来,完成译码过程。2.根据权利要求1所述的一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:其Viterbi译码的分支度量和路径度量采用公知的基2蝶形网络,若所需译码的卷积码约束长度为K(整数),则卷积码编码器有K-1个寄存器对应2K-1个状态,与编码输入端最近的寄存器设为寄存器的最低位与编码输出端最近的寄存器设为寄存器的最高位,编码寄存器的二进制值就对应回溯的状态值,3.根据权利要求1所述的一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:卷积码的Viterbi译码参数设置为回溯深度T,回溯的块大小S,RAM大小为S×2K-1bit,一共有M=2*(T/S)块。每一块RAM对应一个当前状态寄存器。4.根据权利要求1所述的一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:当回溯深度T,回溯的块大小S,T/S恰好是整数,大小最适宜的值是2到6之间有T/S路同时循环回溯。由于T和S正好成整数比,恰好不存在对幸存路径信息存储的RAM的同时读写操作使用单口RAM。5.根据权利要求1所述的一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:回溯时幸存路径信息依次写入M块RAM中,当写入第T/S块RAM的最后一个字时,回溯过程启动,最小路径度量值对应的译码状态选通到第T/S块RAM对应的当前状态寄存器中,以它为始点进行回溯。6.根据权利要求1所述的一种基于Viterbi译码的循环多路并行回溯电路,其特征在于:Viterbi译码的循环多路并行回溯电路再经过长为S的写时钟周期后,将在第(T/S)+1块RAM处启动第2条回溯路径,此后回溯过程同前。如果第M块RAM的幸存路径信息写入操作完成,将重新启动第1条回溯路径。随后,从第1块RAM重复回溯。7.根据权利要求1所述的...
【专利技术属性】
技术研发人员:周斌,程东旭,
申请(专利权)人:北京中电华大电子设计有限责任公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。