解码借助于二进制卷积码加密的数据序列的方法 |
|||||||
申请号 | CN03806880.X | 申请日 | 2003-03-20 | 公开(公告)号 | CN1643798A | 公开(公告)日 | 2005-07-20 |
申请人 | 西门子公司; | 发明人 | L·芬; S·勒塞尔; G·施泰布; | ||||
摘要 | MaxLogMAP 算法 解码借助于二进制卷积码加密的K位信息比特组成的数据序列的方法。在其第一计算行程中,在格构图中,沿正方向和沿反方向准确地计算量度值,然而从该格构图中,只有一个选出作为进一步的计算行程的支持 位置 ,存储在 存储器 中。借助于该支持位置在进一步的计算行程中准确地计算位于第一计算行程的支持位置之间的量度值。构成 软输出 值用于解码,在n个行程以后准确地得出所有的所述软输出值。 | ||||||
权利要求 | 1.方法,用于解码借助于二进制卷积码加密的K位信息比特组成的 数据序列, |
||||||
说明书全文 | 本发明涉及用MaxLogMAP算法解码借助于二进制卷积码加密的K 位信息比特组成的数据序列的方法。例如根据GSM/EDGE移动无线电标准制造的,无线电通信系统的语 音信道中和数据信道中,为了数据编码或数据解码采用二进制卷积代 码。对于所谓的“软输入/软输出解码”的一种优选算法是通常借助于 最大近似(MaxLogMAP算法)实现的著名的“逐符号记录似然性最大 经验概率”算法(LogMAP-Algorithmus)。 基本的MAP算法例如说明于L.R.Bahl等的文章“Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate”, IEEE Transactions on Information Theery,284-287页,1974年 3月,MaxLogMAP算法可以参阅J.Hagenauer等的文章“Iterative Decoding of Binary Block and Convolutional Codes”IEEE Transactions on Information Theory,vol.42,no.2,429-445 页,1996年3月。 借助于所谓的“滑动的窗口”(解码窗口)进行的Window-MaxLogMAP 算法说明于A.J.Viterbi的文章“An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes”,IEEE Journal on Selected Areas in Communications,vo.16,no.2,260-264页,1998年2月。 二进制格构图用作借助于二进制卷积代码加密的数据序列解码的 基础。属于数据序列的一位信息比特的格构图的段把m(卷积代码的记 忆长度)个以前的信息比特所有可能组合记录成为2m个输出状态。此 外,把所有由此得出的信息比特的“换算”(编码)记录成2(m+1)个状 态过渡,并且把得出的2m个目标状态记录成下个紧随的信息比特的输 出状态。在此一个信息比特序列对应于格构图内部的一定的路径,其 中借助于MaxLogMAP算法得出格构图中最可能的信息比特的顺序。 在实现MaxLogMAP算法时原则上在一方面为收缩的实现,与另一 方面为面向处理器的实现之间加以区别。 在收缩的实现中,力争在整个格构图中有尽可能高的解码步骤平行 度。这种实现有高达50Gbit/s的极高数据流量要求时采用。 面向处理器的实现适用于很少的硬件费用时数Mbit/s的中等数据 流量要求。 这两种实现的先决条件都是,可以只借助于一个解码器窗口合理地 对大的、成块传输的数据序列实现解码。 出于数据流量和硬件费用的原因为了解码一般地采用Window- MaxLogMAP算法。 与之相比较,利用无解码窗口的MaxLogMAP算法得到的解码结果 (软输出值)尽管更精确,然而在这种情况下却要求更大的硬件费用 和存储器费用。 在一定的信噪比时的码组差错率方面,对MaxLogMAP算法的一个 变通由DE 39 10 739 C3或DE 42 24 214 C2中说明的“软输入-维 特比算法”(SOVA)构成。然而与MaxLogMAP算法比较SOVA算法却具 有解码器误差和所构成的软输出值之间的很小的相关性。 本发明的任务在于,如此地实施用MaxLogMAP算法解码借助于二 进制卷积码加密的数据序列,使得在很少的硬件费用条件下把准确的 软输出值构成为解码结果。 本发明的任务通过权利要求1的特征完成。有利的扩展方案在从属 权利要求中给出。 根据本发明的方法属于MaxLogMAP算法的面向处理器实现。 一方面通过根据本发明的存储器级联,并且另一方面通过采用用于 量度(Metrik)运算的支持位,可以把MaxLogMAP算法有效地集成在 刚好一个用户专用的模块(ASIC)上。 通过放弃使用解码窗口,不必在解码结果的精确度上打折扣。 根据本发明量度值在第一计算行程中生成地(produktiv)计算, 而在另一个计算行程中以存储的支持位为基础再生地计算。 通过根据本发明的存储器级联可以实现理想的数据流量。 通过根据本发明的方法可以节省存储器位置,以及因此节省ASIC 模块的面积。从而节省下的面积提供给其它的信号处理算法,由此可 以在ASIC模块中实现附加的算法。 图1是根据现有技术用于准确地计算软输出值的MaxLogMAP算法 的原理图, 图2是根据现有技术用于计算软输出值的Window-MaxLogMAP算法 的原理图, 图3是根据本发明用于准确地计算软输出值的MaxLogMAP算法的 原理图, 图4是根据本发明的量度值计算和存储的举例。 图1示出根据现有技术用于准确地计算软输出值的MaxLogMAP算 法的原理图。 用MaxLogMAP算法进行借助于二进制卷积码加密的K位信息比特 组成的数据序列的解码。 在格构图TREL中,在格子段T1开始对每个单个的格子段TSN把 阿尔法量度值Mα-calc-store计算和存储成对数过渡-概率。与此并 列地同时在格子段T2开始对每个单个的格子段TSN计算和存储贝塔量 度值Mβ-calc-store。 两个计算在格子段TSM相互通过,其中从此时刻起进行用于计算软 输出值的判断处理,就是说完成数据序列的一个信息比特的解码。这 里在正向进行的“正向判断处理”FDP时,在通过格子段TSM以后,采 用利用以前计算和存储的贝塔量度值Mβ-calc-store当前计算出的 阿尔法量度值Mα-calc来计算软输出值。 该过程在反向进行的“反向判断处理”BDP中同步完成,其中利用 以前计算和存储的阿尔法量度值Mα-calc-store当前计算出的贝塔 量度值Mβ-calc用于计算软输出值。 在下面适用: k信息比特数量, s卷积码解码的状态 m代码记忆长度 T格子段上需要的数量, 其中T=K+m,而 π过渡阶段的长度,有π>5*m 以量度存储器的字宽为w,并且假定标准化各个量度值,实现 MaxLogMAP算法需要两个量度处理器和总共2·K/2·w·2m个存储器位置。 这将达到: 的数据流量。 在此,上述的参数tsegment取决于用于实施算法所采用的模块技术 (ASIC)、取决于存储器结构和取决于ASIC模块中采用的时钟频率。 在假定具有100%概率的起始状态值(“初始状态”)而其余的“状 态”具有0概率的格子段中有不均匀的概率分布的条件下,在终止代 码时开始各自的量度值计算。 在所谓的“tailbiting”代码中事先不知道起始状态,所以必须 为两个方向引入长度π的过渡阶段。过渡阶段的所属的量度值用Mα- pre或者用Mβ-pre标出。 图2示出根据现有技术用于计算软输出值的Window-MaxLogMAP算 法的原理图。 在长的数据序列采用借助于滑动的解码窗口实现的Window- MaxLogMAP算法。Window-MaxLogMAP算法的特别优点是其有效的实 施。 与图1比较,沿正方向在格子段T1开始准确地计算阿尔法量度值 Mα-calc。与之相反地,估算第一解码窗口DP1的贝塔量度值Mβ- calc-1或第二解码窗口DP2的贝塔量度值Mβ-calc-2。 如果这两个解码窗口DP1和DP2达到格构图TREL的右边缘,就有 了所有的终止信息。准确地计算贝塔量度值Mβ-calc-1或贝塔量度值 Mβ-calc-2,并且构成相应的软输出值。 再把量度值Mα-pre、Mβ-pre-1和Mβ-pre-2分配给一个过渡阶 段。 Window-MaxLogMAP算法在前述的文章“An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes”中详细地说明。 在其实现中,在与图1可比较的数据流量的条件下总共需要 [w/Ψ]+1个量度处理器以及(1+θ)·Ψ·w·2m个存储器位置。 在此: Ψ格子段上的数量,用于存储各自的2m个量度, W格子段中解码窗口的大小,而 是取决于用于实施算法所采用的模块技术(ASIC)、取 决于存储器结构和取决于ASIC模块中采用的时钟频率的参数。 然而在特别地在高频率信道的码率接近于1(借助于点化产生的) 时,通过采用解码窗口造成不再能够容忍的性能恶化。 图3示出根据本发明用于准确地计算软输出值的MaxLogMAP算法 的原理图。 与图1比较,还是沿每个格子段TSN的正方向计算阿尔法量度值并 且沿反方向计算贝塔量度值。然而现在根据本发明只选取和存储用作 支持位置的所选出数量格子段上的量度值。 所述的存储在一个优选的实施方案中在一个按层级联地划分的存 储器内部完成。 在下面适用: m代码记忆长度 sm馈送-正向-终止的-代码的“记忆-长度-移动”(在递归-终 止的-代码中和在tail-biting-代码中sm=0) k信息比特数量, T格子段上需要的数量, 适用T=K+m; π过渡阶段的长度,有π>5*m。 δ(1)第一量度值计算的支持位置的第一存储器层SP(1)的存 储器深度, δ(n-1)第n-1量度值计算的支持位置的第n-1存储器层SP(n-1) 的存储器深度,而 δ(n)第n-1量度值计算的支持位置的第n存储器层SP(n)的 存储器深度。 在格构图TREL中对每个单个格子段TSN在第一行程中在格子段T1 开始沿正方向FDP计算阿尔法量度值Mα-calc(1),并且在格子段 T2开始沿反方向BDP计算贝塔量度值Mβ-calc(1),作为对数过渡- 概率。 然而根据本发明,现在从为选择k/δ(1)个用作支持位置的格子 段的第一行程的计算出的量度值Mα-calc(1)或量度值Mβ-calc (1),分别在具有存储器深度为δ(1)的第一存储器层SP(1)中存 放第一行程的量度值Mα-calc-sel(1)或Mβ-calc-sel(1)。 在第二行程中,以第一行程的每两个相邻的支持位置为基础,再次 计算安排在第一行程的各自支持位置之间的那些格子段TSN的量度值 Mα-calc(2)或Mβ-calc(2)。 如同在第一行程中那样,从为选择k/δ(1)/δ(2)个再次用作 支持位置的格子段的第二行程的计算出的量度值Mα-calc(2)或量 度值Mβ-calc(2),在具有存储器深度为δ(2)的第二存储器层SP (2)中存放第二行程的相应的量度值Mα-calc-sel(2)或Mβ- calc-sel(2)。 用以前的行程的支持位置为基础的量度值的计算相应地既沿正方 向继续也沿反方向继续。在此在通过格子段TSM后构成相应的软输出 值,其中相应地新使用空出来了的存储器层。 在此确定软输出值的判断处理如在图1中所示。各个存储器层相互 级联地构成。 在n个行程以后确定所有的软输出值,其中第n个存储器层具有δ (n)的存储器深度,带有k/δ(1)/δ(2)/.../δ(n)个格子段 或支持位置的所存储的量度值。 与在图1或图2中指出的数据流量比较,根据本发明的方法需要总 共2.n个量度处理器以及 个存储器位置。 在此适用: 取决于一个格子段需要多少个ASIC 时钟周期,以及在存储器上提供有多少端口。 借助于现存的MaxLogMAP Window算法实现,可以导出参数,并且 用于在由图1或图2所知的常规实现与根据本发明的实现之间的比 较。 结果参见下表: 逻辑(k门) 存储器 (kbit) “面积” (k门) MaxLogMAP 101 1080 2300 Window- MaxLogMAP 233 138 500 存储器级联实现 233 106 450 在相同的数据流量并且无损于MaxLogMAP算法的精确性,通过避 开解码窗口使得在根据本发明的存储器级联实现中相对图1中所示的 常规实现降低了80%以上的硬件费用成为可能。 在此该比较的先决条件是: -通过软输入和软输出缓冲器在系统接口上的过顶有(R-1 +1).wsoft.k.amemory 其中一般k=K,然而在用解码器窗口实现时可以是k=W+((nβ-1)* δ);式中R为码率,wsoft为软值的字宽,以及amemory为每存储器比特 的面积单位。 -通过控制和接口的过顶:Aoverhead。 -量度处理器,包括寄存器比特的刻度: Aviterbi(w)·fparallel+2(m+1)·w·aflipflop 其中Aviterbi是对给定字宽w的维特比算子,而aflipflop表示每比特的 寄存器面积单位,fparallel是在一个ASIC时钟周期中实施的蝴蝶计算的 数量,并且可以取以下的值:{1、2、...、2(m-1)}, -一个量度-字宽w=16, -一个软值字宽wsoft=8 -一个存储器比特面积amemory=2 -一个寄存器比特面积aflipflop=10单位, -一个维特比算子/蝴蝶Aviterbi=12500单位, -一个过顶Aoverhead=50000单位。 所述的单位相当于约150MHz的时钟频率时0.18微米ASIC技术 的一个门当量。 在下面比较GSM/EDGE标准相关参数组的数据: -码率R=1/6 -记忆长度m=6 -块大小K=1000 -解码器流量 大于2Mbit/s -平行度 fparallel=1 配置(@2.6Mbit/s) “面积” (K门) 准确实现 2个量度处理器 2250 窗口实现(线路融合 限度=160) 窗口还在软输入和 软输出存储器中 7个量度处理器(1+θ)个量 度存储器,以δ=32、θ=1 1个带有窗口的软输入和软输 出存储器 480 窗口实现(线路融合 限度=160) 6个量度处理器(1+θ)个量 度存储器,式中δ=40、θ=1 1个软输入和软输出存储器 500 窗口实现(线路融合 限度=160) 5个量度处理器(1+θ)个量 度存储器,式中δ=54、θ=1 1个软输入和软输出存储器 425 存储器级联实现 6个量度处理器 2个第1层的支持位置存储 器,式中δ1=18;(1+θ2)*2 个第2层的支持位置存储器, 式中δ2=8;θ2=1; (1+θ3)*2个量度存储器,式 中δ3=7;θ3=1; 1个软输入和软输出存储器。 450 配置(@2.6Mbit/s) “面积” (K门) 存储器级联实现 6个量度处理器 2个第1层的支持位置存储 器,式中δ1=10;(1+θ2)*2 个第2层的支持位置存储器, 式中δ2=10;θ2=0; (1+θ3)*2量度存储器,式中 δ3=10;θ3=0; 1个软输入和软输出存储器。 400 在UMTS(W-CDMA)中和在UTRAN TDD卷积代码中对于卷积解码采 用以下的参数: -码率R=1/3 -记忆长度m=8 -最大块大小K=300 -解码器流量大于2Mbit/s -平行度 fparallel=8 配置(@3.125Mbit/s) “面积” (K门) 准确实现 2个量度处理器 2891 窗口实现 带有软输入/软输出存 储器上的滑动窗口 6个量度处理器 δ=40、θ=1 1848 存储器级联实现 4个量度处理器 δ1=20、δ2=15 θ1=0、θ2=1 1206 在UMTS(W-CDMA)中和在UTRAN TDD涡动代码中考虑到可以用很 小的扩展把MaxLogMAP解码器扩展成涡动解码的一部分。从而在此也 可以把存储器级联实现与直接实现和窗口实现比较: -码率R=1/3 -记忆长度m=3 -最大块大小 K=5200 -解码器流量 大于2Mbit/s -平行度 fparallel=1/4 配置(@3.125Mbit/s) “面积” (K门) 准确实现 2个量度处理器 1727 窗口实现 带有滑动窗口,也是用 于软输入/软输出存储 器 6个量度处理器 δ=40、θ=1 159 存储器级联实现 8个量度处理器 δ1=13;δ2=10、δ3=8、 δ4=5 θ1=0、θi=1,式中 I={2,3,4} 448 图4示出根据本发明的量度值计算和存储的举例。 在第一行程D1中计算阿尔法量度值或贝塔量度值。在作为支持位 置的每第六个格子段TSN=1、7、13、...、73中分别把2m个计算出的 阿尔法量度值存储在存储器层SP(α1)内,并且分别把2m个计算出的 贝塔量度值存储在存储器层SP(β1)内。 在第二行程D2中从存储器层SP(α1)或SP(β1)中读出量度 值,并且从安排在支持位置之间的格子段准确地计算所属的阿尔法量 度值或贝塔量度值。重新相应地在格子段上挑选支持位置并且存储所 属的量度值。例如在此指出两个存储器层SP(α2)和SP(α2′)或 SP(β2)和SP(β2′)。 在第三行程D3中从双侧抵达格子段TSM,并且对“反向判断处理” 采用当前所计算的2m个贝塔量度值连同所存储的2m个存放在存储器SP (α2)中的阿尔法量度值确定软输出值。正好如此地,对“正向判断 处理”采用当前所计算的2m个阿尔法量度值连同所存储的2m个存放在 存储器SP(β2)的贝塔量度值确定软输出值。 在总共n=3个行程Dn以后构成所有的判断值Mdecisions。 |