CN108476027B - 窗口交织的turbo(wi-turbo)码 - Google Patents
窗口交织的turbo(wi-turbo)码 Download PDFInfo
- Publication number
- CN108476027B CN108476027B CN201680078962.6A CN201680078962A CN108476027B CN 108476027 B CN108476027 B CN 108476027B CN 201680078962 A CN201680078962 A CN 201680078962A CN 108476027 B CN108476027 B CN 108476027B
- Authority
- CN
- China
- Prior art keywords
- input
- interleaver
- sequence
- output
- decoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2771—Internal interleaver for turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2739—Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2742—Irregular interleaver wherein the permutation pattern is not obtained by a computation rule, e.g. interleaver based on random generators
- H03M13/2746—S-random interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2771—Internal interleaver for turbo codes
- H03M13/2775—Contention or collision free turbo code internal interleaver
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明涉及一种交织器(104),具体用于一种信道编码器(100),用于将k个索引输入符号的输入序列(101)映射到k个索引输出符号的输出序列(105),k是正整数,包括用于根据交织函数将该输入序列的输入索引映射到该输出序列的输出索引的装置,其中,对于k个输入索引的特定子集,由交织函数定义的该输入索引和该输出索引之间的距离小于或等于阈值p,p是小于k的正整数。这种交织器可以有利地与滑动窗口解码结合使用。
Description
技术领域
本发明总体上涉及交织器设计领域,并且具体涉及一种交织器以及一种具有带结构的交织方法。本发明还涉及获得这种交织器,以及在通信系统中使用这种交织器,例如,用于信道编码和解码。
背景技术
下文介绍通信系统中有关时延或延迟的背景及其与信道码的关系。
每个通信系统中,存在由信道编码器或信道解码器引起的时延或延迟。根据应用的不同,时延可能会对服务质量(quality of service,QoS)和体验质量(quality ofexperience,QoE)产生很大影响。
通信系统中造成这种时延有几个原因。结构性时延可以被视为延迟的原因,其取决于系统设计,而不取决于发射机或接收机的处理能力和内存。造成大的结构性时延的一个方面是发射机和接收机链中信号的逐块处理。特别是,前向纠错(forward errorcorrection,FEC)方案造成的大的结构性时延。
通常,信道解码器需要对应于整个码字的编码符号以便开始解码操作。编码符号可以涉及二进制符号和非二进制符号,其中在二进制码的情况下,一个符号是一个比特。因此,只要整个码字未被接收,解码器就不能启动。对于长码字,这可能会造成大的时延。
某些信道码具有特殊的结构,即使整个码字不可用,也允许解码器开始解码操作。这种码可以用一种被称为滑动窗口解码器(sliding window decoder,SWD)来解码,其中只要有部分码字可用就足以启动解码过程。
如果使用滑动窗口解码器SWD,则对窗口内的符号进行解码,所述窗口的长度为w。完成窗口(m<w)内m个目标符号的解码后,窗口被移动到新的位置,然后在此解码新的目标符号。重复该过程直到整个码字被解码。尽管在纠错性能方面滑动窗口解码器SWD具有次优性,但其允许更多的延迟灵活性:某个窗口内的符号一旦可用,解码器就可以真正地开始解码第一目标符号。
可以将卷积码作为可以用滑动窗口解码器SWD来解码的码的示例,其中每个编码符号仅取决于某些先前编码的符号。卷积码的另一示例可以是具有带对角结构的奇偶校验矩阵的低密度奇偶校验卷积码(low-density parity-check convolutional code,LDPC-CC),这种卷积码也允许使用滑动窗口解码器SWD。LDPC-CC例如因如下文献而周知:A.J.和K.S.Zigangirovz,具有低密度奇偶校验矩阵的时变周卷积码,IEEE信息论汇刊,45.6(1999):2181-2191("Time-varying periodic convolutional codes with low-density parity-check matrix"IEEE Transactions on Information Theory,45.6(1999):2181-2191.)。
下文介绍关于交织器的背景。
交织器是一个确定性函数,其将一个序列作为输入,并以不同的顺序输出相同的序列。交织是一种通常用于改善信道码性能的技术。
长度为k的交织器,具体是块交织器,可以通过具有j的双射函数f(j)来表示,f(j)取0到k-1的整数值。该函数f(j)定义了从输入向量读取样本或符号的顺序,即,从输入向量中的位置f(j)读取交织器的第j个输出。
下文介绍关于turbo码的背景。
作为并行级联卷积码,turbo码是一种强大的纠错码,首次在如下文献提出:C.Berrou,A.Glavieux,近最佳纠错编码和解码:Turbo码,IEEE通信汇报,44.10(1996):1261-1271("Near optimum error correcting coding and decoding:Turbo-codes",IEEE Transactions on Communications,44.10(1996):1261-1271)。在例如3GPP WCDMA或LTE中使用的turbo码的编码器由两个卷积编码器(成员编码器)和交织器f(.)组成。
在turbo码中使用的现有交织器,即turbo交织器,通常被设计为使得输入尽可能随机地打乱。这确实需要具有大的扩展因子的交织器。具有交织函数f(j)的交织器的扩展Sf被定义为任何两个不同索引的最小距离:
其中Di,j是索引i和j之间的距离度量,定义为:
Di,j=|i-j|+|f(i)-f(j)| (2)
对于turbo码,通常需要具有大的扩展的交织器,因为它们具有更好的纠错性能。因此,在设计用于turbo码的交织器时,通常会试图建立扩展最大化的交织器。
例如,使用两个具有8种状态的成员卷积码来构建LTE turbo码,即,分别利用发生器15和13(8进制)来进行前馈和反馈。正如交织器,使用f(j)=(f1j+f2j2)mod k形式的二次置换多项式(quadratic permutation polynomial,QPP),其中k是交织器长度,mod是模运算。参数f1,f2和k在3GPP技术规范TS 36.212v12.6.0,2015中有所规定。
turbo码的解码器是由两个软入软出(Soft-In-Soft-Out,SISO)解码器组成,即一个SISO解码器用于一个成员卷积码。两个SISO解码器通过交织器f(.)和解交织器f-1(.)连接。
解码操作以迭代的方式发生,使得外部信息在每次迭代期间在成员解码器之间交换。
然而,通常,turbo码不能用滑动窗口解码器SWD解码。实际上,连接SISO解码器的交织器和解交织器使不可能或至少很难使用滑动窗口解码器SWD。必须注意的是,滑动窗口解码器SWD可以用于解码成员卷积码,然而这里的重点是turbo码字的滑动窗口解码。
如果滑动窗口解码器SWD与turbo码一起使用,则会出现以下问题。假设窗口具有w个符号,其中前m个符号是目标符号。第一SISO解码器可以处理前w个符号,并产生这些符号的外部信息。然而,交织后,这些符号通常被交织到窗口外的位置。同理,交织器可能需要来自窗口外的符号的输入以将其馈送到第二SISO解码器。因此,外部信息交换由于交织操作受到限制,并且窗口解码是不可能的。
发明内容
在认识到上述缺点和问题后,本发明旨在改善现有技术。具体地,本发明的目的是提供一种改进的交织器,其具有限定在预定义范围内的输入序列和输出序列之间的距离,以使得turbo码能够以通过使用滑动窗口解码来解码的方式被交织。通过这种方式,可以减少由交织器和解码引起的延迟。
本发明的上述目的通过所附独立权利要求中提供的解决方案来实现。在各个从属权利要求中进一步定义了本发明的有利实现方式。
本发明的第一方面提供了一种交织器,具体用于信道编码,用于将k个索引输入符号的输入序列映射到k个索引输出符号的输出序列,k是正整数,
包括用于根据交织函数将输入序列的输入索引映射到输出序列的输出索引的装置,
其中,对于输入索引b,…,k-b-1,b是小于k/2的非负整数(不包括前b个索引和后b个索引),输入索引与由该交织函数定义的输出索引之间的距离小于或等于阈值p,p是小于k的正整数。通常,其中表示上限运算。
因为解交织器可以由交织函数的反函数定义,即,解交织器是具有交织函数f-1(.)的交织器,所以这也暗示了相应的解交织器具有相同的属性。
从而,交织器的优点在于其示出了一种带结构,使得滑动窗口解码器可以用于减少解码器延迟的解码器。交织器可以具体是用于信道编码器或信道解码器的交织器,尤其是用于前向纠错(forward error correction,FEC)。
输入序列的k个输入符号被索引,其中输入序列中k个输入符号的顺序是由各自的输入索引确定的。换句话说,k个输入符号的顺序是由它们各自的输入索引确定的。同理,输出序列的k个输出符号被索引,其中输出序列中k个输出符号的顺序是由各自的输出索引确定的。换句话说,k个输出符号的顺序是由它们各自的输出索引确定的。
在该交织器的一种实现形式中,交织器用于turbo码或turbo码字。
在该交织器的一种实现形式中,对于所有k个输入索引,输入索引与由交织函数定义的输出索引之间的距离小于或等于阈值p。
具体地,输入索引和输出索引之间的距离可能与输入索引和输出索引之间差的绝对值有关。
具体地,对于所有k个输入索引,交织函数可以满足条件|fp(j)-j|≤p,
其中fp(j)是输入索引,j是输出索引。由于解交织器是具有交织函数f-1(j)的交织器,所以解交织器也满足相同的条件。实际上,可以证明当|f(j)-j|≤p时,|f-1(j)-j|≤p。因此,本文不区分f(.)和f-1,除非另有说明。
在该交织器的一种实现形式中,仅对于所有k个输入索引的子集,输入索引与由交织函数定义的输出索引之间的距离小于或等于阈值p。
具体地,输入索引和输出索引之间的距离可能与输入索引和输出索引之间差的绝对值有关。
本发明的第二方面提供了一种交织方法,具体用于信道编码,用于将k个索引输入符号的输入序列映射到k个索引输出符号的输出序列,k是正整数,
包括根据交织函数将输入序列的输入索引映射到输出序列的输出索引,
其中,对于输入索引b,…,k-b-1,b是小于k/2的非负整数(不包括前b个索引和后b个索引),输入索引与由该交织函数定义的输出索引之间的距离小于或等于阈值p,p是小于k的正整数。通常,其中表示上限运算。
本发明的第三方面提供了一种信道编码器,包括至少一个如本发明第一方面的交织器。
具体地,信道编码器可以是turbo编码器。
具体地,交织器可以使用在任何能够用turbo原理解码的信道码中。这包括传统的turbo码,即,并行级联卷积码,以及其他类型的编码,如重复累积码(Jin,Hui,AamodKhandekar,和Robert McEliece,不规则重复累积码,Proc.2nd Int.Symp.Turbo码及其相关主题,2000(Jin,Hui,Aamod Khandekar,and Robert McEliece."Irregular repeat-accumulate codes."Proc.2nd Int.Symp.Turbo codes and related topics.2000.)),累积重复累积码(Abbasfar,Aliazam,Dariush Divsalar,和Kung Yao,累积重复累积码,IEEE通信汇报,55.4(2007):692-702(Abbasfar,Aliazam,Dariush Divsalar,and Kung Yao."Accumulate-repeat-accumulate codes."IEEE Transactions on Communications 55.4(2007):692-702.))以及通过交织器连接的其他类型的串行级联码和并行级联码,该交织器中的成员码可以是任何分组码或卷积码。此外,所提出的交织器也可以用作信道码与在任何比特交织编码调制(bit interleaved coded modulation,BICM)系统(Caire,Giuseppe,Giorgio Taricco,和Ezio Biglieri,比特交织编码调制,IEEE信息理论汇报,44.3(1998):927-946(Caire,Giuseppe,Giorgio Taricco,and Ezio Biglieri."Bit-interleaved coded modulation,"IEEE Transactions on Information Theory,44.3(1998):927-946.))中的符号映射器之间的交织器,其中第二成员码是符号映射器。注意,在“一般的turbo码”中,成员码可以是任何信道码,包括传统的turbo码、卷积码、LDPC码或LDPC卷积码。
在用于将输入序列编码为编码序列的信道编码器的一种实现形式中,信道编码器是turbo编码器,还包括:
-第一和第二成员编码器,
第一成员编码器适用于从输入序列生成第一成员码字,并且
第二成员编码器适用于从交织器的所述输出序列生成第二成员码字,以及
-组合单元,适用于将输入序列、第一成员码字和第二成员码字组合成编码序列。
在信道编码器的一种实现形式中,信道编码器包括:
-识别单元,适用于从所有k个输入索引中识别输入索引,对于该输入索引,输入索引与由交织函数定义的输出索引之间的距离大于阈值p,以及
-计算单元,适用于将位于输入序列中识别出的输入索引处的输入符号设置为已知符号。
在信道编码器的一种实现形式中,信道编码器包括:
-识别单元,适用于从所有k个输入索引中识别输入索引,对于该输入索引,输入索引与由交织函数定义的输出索引之间的距离大于阈值p,以及
-打孔单元,适用于对编码序列中识别出的输入索引进行打孔。
本发明的第四方面提供了一种用于将接收的编码序列码字解码为解码符号序列的信道解码器,
包括至少一个如本发明第一方面的交织器。
在用于将接收的编码序列解码为解码符号序列的信道解码器的一种实现形式中,信道解码器是turbo解码器,还包括第一级联成员解码器和第二级联成员解码器,
第一成员解码器和第二成员解码器通过交织器连接。
在信道解码器的一种实现形式中,第一成员解码器和第二成员解码器是滑动窗口解码器。
在信道解码器的一种实现形式中,第一成员解码器用于对接收的编码码字执行软输出解码,以便生成解码符号序列和第一外部信息,并且
第二成员解码器用于对接收的编码码字执行软输出解码,以便生成第二外部信息,
其中交织器用于将第一外部信息映射到第二成员解码器的边信息,以及
解交织器用于根据交织函数的反函数将第二外部信息映射到第一成员解码器的边信息。
在信道解码器的一种实现形式中,信道解码器用于解码由如本发明第三方面的信道编码器编码的编码序列,其中该信道解码器的第一和第二成员解码器用于使用关于已知符号的完美先验信息。具体地,信道解码器的第一和第二成员解码器用于使用由信道编码器的计算单元设置的已知符号的完美先验信息。
本发明的第五方面提供了一种用于获得如权利要求1至5中任一项所述的交织函数的方法,该交织函数用于使用在turbo编码器或turbo解码器中,
该方法包括:
-随机地或伪随机地分别生成满足如下条件的多个输入交织函数:对于所有k个输入索引的集合的至少一个子集,输入索引与由输入交织函数定义的输出索引之间的距离小于或等于所述阈值p,
其中k是正整数,并且p是小于k的正整数,
-根据turbo编码的性能从生成的输入交织器中选择性能最佳的交织器,以及
-从选择的交织器中挑选一个交织器,以便获得该交织函数。
本发明的第六方面提供了一种可以被称为s随机构建方法的方法,该方法用于获得如权利要求1至5中任一项所述的交织函数,该交织函数用于使用在turbo编码器或turbo解码器中,
该方法包括:
-A、定义所有k个索引的集合J={0,1,...,k-1},设定j=0,以及
该方法还包括递归执行的以下步骤:
-B、从集合J中选择满足以下标准的输入值(索引)A:
i.|i-j|+|f(i)-A|≥s,对于所有非负整数i满足(j-s)≤i<j,其中f(i)是根据交织函数f被映射到输出索引的输入索引,
ii.|A-j|≤p,
-C、定义交织函数f,以便将输入值f(i)=A映射到输出值j,
-D、从集合J中移除所选择的输入值A,
-E、将j递增1,并且重复从步骤B开始的步骤,直到j等于k-1。
具体地,递归地执行步骤B到E,直到输入集合J为空集。在这种情况下,对于所有k个输入索引,输入索引与由交织函数定义的输出索引之间的距离小于或等于阈值p。
可选地,递归地执行步骤B到E,直到输入集合J中没有输入值A满足标准i.和ii.,其中输入集合J不是空集。在这种情况下,还可以通过忽略条件ii.递归地执行步骤B到E。在这种情况下,仅对于所有k个输入索引的子集,输入索引与由交织函数定义的输出索引之间的距离可以小于或等于阈值p。
可选地,递归地执行步骤B到E,直到输入集合J中没有输入值A满足标准i.和ii.,其中输入集合J不是空集。在这种情况下,通过再次执行步骤A和递归步骤B到E来获得交织函数。
本发明的第七方面提供了一种可以被称为基本交织器构建方法的方法,该方法用于获得交织函数fp,d,该交织函数用于使用在turbo编码器(100)或turbo解码器(200)中,
该方法包括:
-提供正整数参数L和由基本交织器函数fb(j)定义的长度为k'的对应的基本交织器fb,k’是正整数,
-根据以下公式构建交织函数fp,d:
fp,d(j+lk')=[h(j)+lk']mod(Lk'),j={0,...,k'-1},l={0,...,L-1}。
具体地,基本交织器fb可以被选择为LTE turbo交织器。
具体地,辅助函数h(j)可以根据以下公式来选择:
具体地,辅助函数h(j)可以根据以下公式来选择:
本发明的第八方面提供了一种交织设备,包括:
-串行到并行转换器,用于将输入序列写入大小为L*k’的矩阵M中,
-基本交织器,应用在M的每一行上,其中输出被写入相同大小的矩阵R的对应行中,
-循环移位运算器,应用在R的垂直维度中的每一列上,以获得相同大小的矩阵S,其中每一列的移位值tj由整数tj确定,j=0,…,k’-1,
-并行到串行转换器,用于逐行读取矩阵S,以生成长度为k’L的交织输出。
具体地,基本交织器可以选择为LTE交织器。
具体地,基本交织器可以是二次置换多项式(QPP)交织器。
本发明的第九方面提供了一种用于将输入序列编码成编码序列的信道编码器,
该信道编码器包括至少一个交织器,
其中交织器被定义使得编码序列用于由以滑动窗口解码器形式的包括级联成员解码器的信道解码器解码。
本发明的第十方面提供了一种具有程序代码的计算机程序,该计算机程序用于在计算设备上运行时执行如本发明第二方面、第五方面、第六方面或第七方面的方法。
必须注意的是,本申请中描述的所有设备、单元和方法可以通过软件或硬件元件或其任何一种组合来实现。本申请中描述的由各种实体执行的所有步骤以及所描述的由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。在以下特定实施例的描述中,即使由永久实体完整形成的特定功能或步骤未反映在执行该特定步骤或功能的实体的特定具体元件的描述中,本领域技术人员应该清楚,这些方法和功能可以在相应的软件或硬件元件或其任何一种组合中实现。
附图说明
图1示出了根据本发明实施例的turbo编码器,
图2示出了根据本发明实施例的turbo解码器,
图3示出了根据本发明又一实施例的turbo编码器,
图4示出了根据本发明又一实施例的turbo解码器,
图5示出了根据现有技术的交织器的交织函数,
图6示出了根据本发明实施例的交织器的交织函数,
图7示出了根据本发明另一实施例的交织器的交织函数,
图8示出了根据本发明实施例的之字形窗口交织器,
图9示出了根据本发明实施例的平滑窗口交织器,
图10示出了根据本发明另一实施例的平滑窗口交织器,
图11示出了根据本发明实施例的滑动窗口解码,
图12示出了具有根据本发明实施例的平滑窗口交织器的wi-turbo码的性能结果,
图13示出了具有根据本发明实施例的之字形窗口交织器的wi-turbo码的性能结果,
图14示出了具有根据本发明实施例的平滑窗口交织器的wi-turbo码的性能结果,
图15示出了根据本发明的由于灵活延迟调整而可能的增益,以及
图16示出了具有根据本发明实施例的交织函数的交织设备。
具体实施方式
下面将详细解释本发明。
本发明提出了一种交织器,具体用于信道编码,用于将k个索引输入符号的输入序列映射到k个索引输出符号的输出序列,k是正整数。
该交织器包括用于根据交织函数将输入序列的输入索引映射到输出序列的输出索引的装置。对于所有k个输入索引的至少一部分输入索引,输入索引与由交织函数定义的输出索引之间的距离小于或等于阈值p,k和阈值p是正整数。
输入序列的k个输入符号被索引,其中输入序列中k个输入符号的顺序是由各自的输入索引确定的。换句话说,k个输入符号具有由它们各自的输入索引确定的顺序。同理,输出序列的k个输出符号被索引,其中输出序列中k个输出符号的顺序是由各自的输出索引确定的。换句话说,k个输出符号具有由它们各自的输出索引确定的顺序。
用于映射的装置可以例如是计算单元,适用于根据交织函数将输入序列的输入索引映射到输出序列的输出索引。
各输入序列和输出序列的输入符号和输出符号可以是与二进制码或非二进制码相关的值或编码符号。具体地,在二进制码的情况下,一个符号可以是一个比特。
阈值p可以是正整数。可以对阈值p进行设置,使得2p+1小于k值,k值反映了输入序列的总长度或输入序列的输入符号的总个数。换句话说,阈值p可以验证或满足公式p<(k-1)/2,p和k是正整数。为了实现低延迟,通常可以将p选择为p<(k-1)/4。
所提出的交织器可以是一种用于turbo码的交织器,即,turbo码交织器。
图1和图2示出了使用根据本发明的交织器的两个实施例。
图1示出了根据本发明实施例的turbo编码器100。turbo编码器100包括根据本发明的交织器104。
具体地,图1示出了交织器104,具体用于信道编码,用于将k个索引输入符号的输入序列101映射到k个索引输出符号的输出序列105,k是正整数。
交织器104包括用于根据交织函数将输入序列101的输入索引映射到输出序列105的输出索引的装置。对于输入索引b,…,k-b-1,(b是小于k/2的非负整数),该输入索引与由交织函数定义的输出索引之间的距离小于或等于阈值p,p是小于k的正整数。该装置可以通过模块、单元或基于软件来实现。
turbo编码器100的输入是对应于k个索引输入符号的输入序列101的要编码的信息符号序列101。编码器的输出包含系统符号101—即,信息符号序列本身,由第一成员编码器102生成的奇偶校验符号103,以及由位于交织器104之后的第二编码器106生成的奇偶校验符号107。
turbo编码器100适用于将输入序列101编码为编码序列或编码码字109。Turbo编码器100包括交织器104,第一级联成员编码器102和第二级联成员编码器106。第一成员编码器102适用于从输入序列101生成第一成员码字103,第二成员编码器106适用于从交织器104的输出序列105生成第二成员码字107。
turbo编码器100还包括组合单元,如串行/并行单元108,适用于将第一成员码字103和第二成员码字107组合成编码序列109。具体地,组合单元108可以适用于将输入序列101、第一成员码字103和第二成员码字107组合成编码序列109。
具体地,turbo编码器100的第一成员编码器102和第二成员编码器106可以分别为如图1所示的卷积编码器的形式。
图2示出了根据本发明实施例的turbo解码器200。turbo解码器200包括根据本发明的交织器205。
具体地,图2示出了交织器205,具体用于信道编码,用于将k个索引输入符号的输入序列204映射到k个索引输出符号的输出序列206,k是正整数。
交织器205包括用于根据交织函数将输入序列204的输入索引映射到输出序列206的输出索引的装置。对于输入索引b,...,k-b-1(b是小于k/2的非负整数),输入索引与由交织函数定义的输出索引之间的距离小于或等于阈值p,阈值p是小于k的正整数。所述装置可以通过模块、单元或基于软件来实现。
turbo解码器200的输入是以信度值形式接收的符号201,例如,对数似然值、L值或软值。输出210对应于解码符号。
turbo解码器200包括通过交织器205连接的第一成员解码器202和第二成员解码器203。两个成员解码器202,203也通过对应于交织器205,即,与交织器205相对的解交织器208连接。两个成员解码器202,203执行软输出解码,并且生成信息序列201的每个符号各自的外部信息204,207。
然后,第一成员解码器202的外部信息204通过交织器205交织,并且作为边信息馈送206至第二成员解码器203。同样地,第二成员解码器203的外部信息207通过解交织器208解交织,并且作为边信息馈送209至第一成员解码器202。一个成员解码器的各自外部信息204,207被迭代地馈送至另一个成员解码器。
在这个迭代过程重复一定次数之后,对解码符号210做出最终决定。如果解码成功,解码符号210相当于发送的信息序列101。
图1和图2中的信道编码器和信道解码器分别包括并行级联的成员编码器102,106和成员解码器202,203。具体地,图1和图2以并行级联二进制卷积码的形式示出了并行级联turbo码。
本发明也可适用于具有可选结构的信道编码器和信道解码器,例如参见图3和图4。例如,本发明也可适用于非二进制级联码和/或串行级联码。本发明也可以与包含多个成员码的并行或串行级联码一起使用,即包含多于图1的两个成员编码器102,106的成员编码器和多于图2的两个成员解码器202,203的成员解码器。然后,根据本发明的并行或串行级联码可以是由至少两个成员码和至少一个交织器组成的turbo码。该交织器可以被称为turbo交织器。
下文,针对现有信道编码器和信道解码器的结构性时延或延迟,介绍根据本发明的信道编码器和信道解码器的结构性时延或延迟。
假设符号b0b1...bK-1是信道编码器100的输入101,符号c0c1...cN-1是信道编码器的输出109,即,编码序列109或信道解码器200的输入201,即,接收的编码序列201,其中k和n是时间索引,R=K/N通常被称为信道码率,K和N是正整数。根据现有技术,为了产生编码序列,输入序列的所有K个符号必须在信道编码器的输入处可用,使得可以生成N个编码符号。如果输入序列较长,可能会造成较大的时延。
本发明的优点在于,即使只有输入序列的一部分可用,也可以生成编码符号ci。做出如下定义。如果输出符号cn可以使用生成,其中w>d≥0,则cn可称为时延-d和窗口-w编码的(delay-d and window-w encoded)。进一步地,当对于所有n,cn为时延-d和窗口-w编码的,则信道码可以称为时延-d和窗口-w可编码(delay-d andwindow-w encodable),并且对应的编码器称为时延-d和窗口-w编码器(delay-d andwindow-w encoder)。显然地,如果一个码是时延-d和窗口-w可编码的,则其也是时延-(d+1)和窗口(w+1)可编码的(delay-(d+1)and window-(w+1)encodable)。因为仅关注d和w的最小值,除非另有说明,时延-d和窗口-w可编码的信道码被称为非时延-(d-1)和窗口-(w-1)可编码的(delay-(d-1)and window-(w-1)encodable)码。因此,不考虑处理时延,时延d仅取决于信道编码器的结构性时延。
也可以对解码器做出类似的定义。如果符号bk可以使用进行解码,其中w>d≥0,则符号bk可以称为时延-d和窗口-w可解码的(delay-d andwindow-w decodable)。进一步地,当对于所有k,bk为时延-d和窗口-w可解码的,则称信道码可称为时延-d和窗口-w可解码的,并且对应的解码器可称为时延-d和窗口-w编解码器(delay-d and window-w decoder)。因为任何时延-d和窗口-w可解码的码也是时延-(d+1)和窗口-(w+1)可解码的,除非另有说明,d和w分别是时延-d和窗口-w码的最小时延d和最小窗口w。由于处理功率和内存不受限制,对于给定的信道和目标解码器性能(如,BER或BLER),时延d仅取决于信道解码器的结构性时延,并且可以作为结构时延参数。
例如,现有的非递归卷积编码器可以由s个存储器元件—移位寄存器组成,并且每个时刻的输出可以是存储器元件中值的线性组合。输入序列被馈送至存储器元件,并且在生成输出后移位一个符号。由于这种结构,可以说具有s个存储器元件的非递归卷积码是时延-d窗口-w可编码的。除了递归卷积码的输出可能由于反馈连接也取决于先前的输出之外,递归卷积码与非递归码类似。对于递归卷积码,编码时延与非递归代码的编码时延相同,但由于输出也取决于先前的输出,窗口大小可被视为无穷大。通常,可以利用与编码时所需的相同的时延和窗口参数来解码卷积码,即,如果在传输期间没有发生错误,利用与编码时延相同的时延就可以正确解码符号。这相当于在接收到维特比解码器的网格部分后对解码器输出做出决定。然而,随着信道条件变差,这样做会降低纠错性能。为了提高性能,通常在接收到τ个网格片段后做出决定。因此,解码器可以被视为时延-τs窗口-τs解码器(delay-τs window-τs decoder)。
例如,对于现有的编码器和解码器,turbo码分别使用无约束的交织器使得交织器的输入和输出顺序可以是任意的。因此,现有的编码器需要整个输入序列来产生其编码序列。同理,现有的解码器需要整个输入序列来开始解码。有了这些约束,可以说turbo码是时延-k窗口-k可编码的(delay-k window-k encodable)且是时延-k窗口-k可解码的(delay-k window-k decodable)。可以注意到,通常turbo码的成员码可以是任何类型的码(诸如分组码或卷积码),然而由于卷积码具有性能好且简单等的优点,通常使用卷积码作为具有并行级联turbo码的成员码。
本发明具体提出了一种新的交织器、新的信道编码器与信道解码器,以及通过使用具有带特性的新的交织器生成的新的turbo码。根据本发明的这种turbo码可以被称为窗口交织的turbo码,即,Wi-Turbo或wi-turbo码。所提出的具有带结构或带性质的交织器可以被称为窗口交织器。
时延-d和窗口-w编码器的概念可以延伸至许多设备,包括(解)交织器。在其最普遍的情况下,长度为k的交织器可以用k个符号的时延来交织或解交织。然而,具有特殊结构的交织器(例如窗口交织器(window interleaver,WI))可以用较小的时延值来(解)交织。
对于接近理论界限的传统turbo码,所提出的新的Wi-Turbo码提供了更好的性能。而且,由于所提出的交织器结构,如带交织器结构,Wi-Turbo编码器或解码器具有减少的结构性延迟或时延,即,减少了用于编码或解码的等待时间。所提出的新编码方法允许使用窗口编码器或解码器将生成的码字进行编码或解码。换句话说,其编码或解码时间取决于所选的WI参数。此外,与诸如LDPC-CC的其他现代代码相比,Wi-Turbo码在支持速率匹配和增量冗余方面更为灵活。
根据本发明的所提出的Wi-turbo码具有特殊的交织器,如窗口交织器,其允许使用滑动窗口解码器进行解码。窗口交织器由定义了交织器的输入和输出之间的最大距离的参数p定义。因此,假设turbo码的卷积编码器,即,turbo编码器的卷积编码器,具有s个存储器元件,wi-turbo码的编码时延可以被视为s+p<k。注意,与p相比,s通常较小,可以忽略不计。
与传统的turbo码相比,本发明的主要优点,即,Wi-turbo码的主要优点是其适用于滑动窗口解码器(sliding window decoder,SWD)。如果使用SWD,解码延迟可以与p个符号一样小,与编码器的编码延迟类似。然而,为了获得良好的纠错性能,通常定义目标符号的个数为m—每个窗口中要被解码的符号的个数—并选择窗口大小大于m+p的窗口。实验评估表明,例如,选择m=p且窗口大小为w≈5m通常会产生良好的结果。
图3和图4示出了在具有可选结构的turbo编码器和turbo解码器中分别使用根据本发明的交织器的两个实施例。
图3示出了根据本发明又一实施例的turbo编码器300。turbo编码器300包括根据本发明的交织器304。
turbo编码器300是串行级联编码器。两个成员码302,306与交织器304串联。可以将重复累积码和累积重复累积码作为串行级联码的示例,对于重复累积码,第一成员码302是重复码,第二成员码是累加器,对于累积重复累积码,第一成员码302是累加器/重复码,第二成员码306是累积器。
图3的turbo编码器300从输入序列或输入符号301生成编码序列或编码符号309。输入序列301施加于第一成员码,即第一成员编码器302,以获得第一成员码字303。本发明的交织器从第一成员码字303生成输出序列305。输出序列305施加于第二成员码,即第二成员编码器306,以获得第二成员码字307。组合单元308用于将输入序列301和第二成员码字307组合成编码序列309。
图4示出了根据本发明又一实施例的turbo解码器400。turbo解码器400包括根据本发明的交织器405。
图4的turbo解码器400可以用于解码由图3的turbo编码器300生成的编码序列309,401,以获得解码符号410。与图2的turbo解码器200类似,turbo解码器400包括第一成员解码器403和第二成员解码器402,第一成员解码器403和第二成员解码器402通过交织器405和与交织器405相对的解交织器408连接。turbo解码器400的输入序列401施加于第二成员解码器402,解码符号410由第一成员解码器403生成。
通过使用根据本发明的交织器,交织器的输入和输出之间的距离受到限制。由于成员码302,306都可以被选为具有低延迟的码—例如,诸如存储器-1卷积码的累加码以及重复码,所以整个延迟可以由交织器延迟来表征。因此,如果使用具有参数p的窗口交织器,编码器延迟可以被视为p,并且相对现有的交织器,减少了编码器延迟。
根据本发明的交织器可以通过多个受约束的交织器来实现。下文介绍了交织器的两个实施例以及两种交织器构建方法。
图6示出了根据交织器的第一实施例的交织器的交织函数。图6中所示的提出的第一种交织器被称为fp(j)-窗口交织器,或fp(j)-WI。其是用长度为k的交织函数fp(j)所定义的,其中,对于所有k个输入索引,绝对差值|fp(j)-j|小于或等于预定义的阈值或数p。
交织函数fp(j)定义了从输入向量或输入序列读取样本或值的顺序,即,从输入向量中的位置fp(j)读取交织器的第j个输出。交织函数fp(j)的长度为k,并且j和fp(j)的值是0到k-1之间的整数值。这样,对于所有的j,输入索引和输出索引之间的距离受p限制。
图6中所示的实施例相应地呈现了具有宽度为2p+1的带结构的交织器函数。相比之下,图5示出了根据现有技术的不具有这种带结构的交织器的交织函数。
由于fp(j)-WI的结构,具有以下参数的滑动窗口解码器可以用于信道编码:窗口大小为w(w>P)以及目标符号的个数为m(m≤w-p),其中目标符号是窗口内的前m个符号。交织器的结构防止目标符号的外部信息被交织到位于当前或先前窗口之外的位置。
根据图6的实施例的长度为k的fp(j)-窗口交织器是具有交织函数fp(j)的受约束的交织器,其中以下条件成立,k和p是正整数:
|fp(j)-j|≤p j,fp(j)∈J:={0,1,...,k-1} (3)
这里,J:={0,1,...,k-1}表示J被定义为由元素0,1,...,k-1组成的集合。同理,j,fp(j)∈J表示j,fp(j)分别是集合J的一个元素。值fp(j)是交织函数,并且P(p=0,1,...,k-1)是定义交织函数的输入和输出之间最大距离的阈值或参数。如果该交织器被用作wi-turbo码的turbo交织器,则其与交织器大小成正比,并且对可能的窗口大小有影响。如前所示,m≤w-p应当成立,其中m是目标符号的个数,w是窗口大小。
图7示出了根据交织器的第二实施例的交织器的交织函数。第二实施例的交织器可以被称为fp,d(j)-窗口交织器或fp,d(j)-WI。其是用长度为k的交织函数fp,d(j)所定义的,其中,对于输入索引b,…,k-b-1,绝对差值|fp,d(j)-j|不大于预定义的数p,b是非负整数,并且d是非负整数,定义了不满足条件的索引的个数。这样,仅对于所有可能的输入索引的子集,输入索引和输出索引之间的距离受阈值p限制。在图7所示的示例中,仅对于fp,d(j)=1000和fp,d(j)=9000之间包括的输入索引,输入索引和输出索引之间的距离受p限制。
fp,d(j)-WI的优点是构造简单。然而,必须注意,当与turbo码一起使用时,在交换与位于不满足距离限制的d个索引处的符号对应的外部信息时可能会遇到问题。
克服这个问题的一个解决方案是在d个已知的位置上发送已知比特—例如零,使得在迭代解码期间,不需要外部信息交换,因为这些比特在接收机处已经完全已知。
根据图7的实施例的长度为k的fp,d(j)-窗口交织器是具有交织函数fp,d(j)的受约束的交织器,其中以下条件成立,k和p是正整数,d是非负整数:
其中,Jd是基数为k-d的J的子集。这里,d是指示交织函数中不满足公式(4)给出的约束的输入索引的个数的参数。希望d值小—因为对于这些索引,在解码期间必须采取其他措施,例如,将系统比特设置为已知值或对对应于这些已知值的系统比特进行打孔,如下所述,但其值主要取决于下一节所述的构建方法。注意,d个索引位于前b个或后b个位置中。
除了d个索引,fp,d(j)-窗口交织器满足与fp(j)-窗口交织器相同的条件。当d=0时,两个定义相等。
下文介绍了用于构建根据本发明的交织器的第一种构建方法。这种第一种构建方法可以被称为随机构建方法。
所提出的第一种构建方法是构建随机WI的强力法。利用这种方法,基本上可以生成大量的长度为k的随机或伪随机交织器,从而也可以生成足够数量的WI。之后,可以从生成的交织器中选择性能最佳的WI。选择性能最佳的交织器的一种方法是根据误码率(biterror rate,BER)或块误码率(block error rate,BLER)评估利用存储的交织器构建的turbo码的性能,然后选择具有最佳纠错性能的交织器。
作为信道编码领域的工程师的惯常做法,可以通过使用由Wi-Turbo编码器、信道和Wi-Turbo解码器组成的模拟链来进行计算机模拟。通过交替Wi-Turbo编码器和解码器中使用的选定的WI,可以在Wi-Turbo解码器处测量不同的BLER(块误码率)或BER(误码率)。那么,性能最佳的WI是—在Wi-Turbo中使用的—WI,其使得FER或BER最低。
可选地,可以将性能最佳的长度为k的交织器截短以获得较短的交织器。
下文介绍用于构建根据本发明的交织器的第二种构建方法。这种第二种构建方法可以被称为s随机构建方法,该方法基于S.Dolinar,D.Divsalar在《TDA进展报告》42.122,1995中的《使用随机和非随机排列的用于turbo码的重分布》(S.Dolinar,D.Divsalar,“Weight distributions for turbo codes using random and nonrandompermutations,”TDA Progress Report 42.122,1995)提出的方法,通过修改,在构建交织函数f(j)的期间还考虑了约束条件|fp(j)-j|≤p。
该第二种方法描述了如何利用修改的s随机构建方法构建长度为k的窗口交织器。以下算法的输入为交织器的长度k,交织器的最小扩展s和阈值p—这些是SWD的约束条件,其中所有的输入是非负整数。第二构建方法包括:
1、定义集合J={0,1,...,k-1}
2、设定j=0,从集合J中分配一个随机索引到f(j),使其满足以下两条标准:
对于所有满足(j-s)≤i<j的非负i,Di,j≥s (5)
|fp(j)-j|≤p (6)
3、从J中移除分配的索引,将j增加1并进行步骤2,直到
-3a集合J为空集(这种情况下,获得fp(j)-窗口交织器),或者
-3b J中没有剩余可以满足步骤2中条件的索引。
如果为情况3b,则仅考虑条件(5)而不考虑条件(6)继续进行。这种情况下,获得fp,d(j)-窗口交织器。否则,如果仍没有索引剩余,则从第一步重新开始。
下文介绍了用于构建根据本发明的交织器的第三种构建方法。这种第二种构建方法可以被称为基本交织器构建方法。
根据第三种构建方法,可以使用长度为k'的无约束的交织器fb(j)—这里称为基本交织器—以建立长度为L·k'的更大的交织器,其中L是正整数。对于这种构建,首先通过修改基本交织函数生成辅助函数,然后使用确定性的方法串联该辅助函数L次,以获得fp,d(j)-WI。理论上,L可以接近无穷大,使得编码器/解码器可以处理无限大小的数据流。
根据辅助函数的构建,获得的fp,d(j)-WI可以具有之字形-之字形-WI,或平滑形-平滑-WI。
根据这种基本交织器的第三种构建方法,通过使用长度为k'的无约束的基本交织器fb(j),可能建立一个长度为k'L的fp,d(j)-窗口交织器,k'和L是正整数。
对于这种构建,首先定义以下辅助函数
其中tj是整数。
然后,h(j)用于以以下方式构建函数fp,d(j):
fp,d(j+lk')=[h(j)+lk']mod(Lk'),j={0,...,k'-1},l={0,...,L-1} (8)
这种方法可以被看作为串联基本交织器L次,其中各个交织器之间的连接由辅助函数定义。
与该构建方法相似,可以定义一种用于将k’L个索引输入符号的输入序列映射到k’L个索引输出符号的输出序列的交织方法,k’和L是正整数。相应地,该交织函数会是fp,d(j+lk')=[h(j)+lk']mod(Lk'),j={0,...,k'-1},l={0,...,L-1},并且h(j)=fb(j)+tj,fb(j)是长度为k'的基本交织器的交织函数,tj中j={0,...,k'-1}是整数。
下文结合图8一同介绍根据基本交织器的第三种构建方法的第一示例。根据该第一示例,可以构建之字形窗口交织器,如图8右图中所示。
建议使用如下辅助函数以第三种构建方法构建之字形窗口交织器:
这里,Jz是J={0,1,...,k'-1}的子集。
图8左图示出了该辅助函数,右图示出了产生的之字形窗口交织器,其中k'=256,L=10,并且Jz是随机选择的基数为k'/4的J的子集。Jz的索引用红色标记表示。
如果之字形窗口交织器与turbo码一起使用,产生wi-turbo码,则可以使用窗口大小为w=k'l的SWD,l={2,...,L-1}。从而,码字可以利用与基本交织器长度的整数倍相等的延迟来解码。
下文结合图9一同介绍根据基本交织器的第三种构建方法的第二示例。根据该第二示例,可以构建平滑窗口交织器,如图9右图中所示。
建议使用以下辅助函数以第三种构建方法构建平滑窗口交织器:
下文结合图10一同介绍根据基本交织器的第三种构建方法的第三示例。根据该第三示例,可以构建平滑窗口交织器,如图10右图中所示。
这种第三示例也会产生平滑窗口交织器,如图10所示。图10左图示出了辅助函数,而图10右图中示出了产生的平滑窗口交织器,其中k'=256,L=5。根据公式(13)和(14)得到和分别用红色和绿色标记表示。
如果平滑窗口交织器与turbo码一起使用,产生wi-turbo码,则可以使用窗口大小在2p和k之间的SWD。与之字形-WI相比,平滑窗口交织器在解码延迟方面提供了更高的灵活性。
下文介绍了第三种构建方法的基本交织器的选择。
虽然可以将任何无约束的交织器作为基本交织器,但是这种选择会对其性能和实现产生影响。
可以表明,如果将一个交织器用作对于整数c无竞争的基本交织器,则产生的WI对c也是无竞争的。这可以通过使用等式(8)并针对交织器的这种特殊结构重写无竞争交织器的定义来示出。
可以从数值上证实,如果基本交织器是具有扩展Sf的二次置换多项式(QuadraticPermutation Polynomial,QPP)交织器—参见J.Sun,Y.O.Takeshita在《IEEE信息理论汇报》,51.1(2005)中的《在整数环上采用置换多项式的用于turbo码的交织器》101-119(O.Y.Takeshita."On maximum contention-free interleavers and permutationpolynomials over integer rings."IEEE Transactions on Information Theory,52.3(2006):1249-1253),则产生的WI具有不小于Sf的扩展。
由于在LTE turbo码中使用的交织器—参见O.Y.Takeshita在《IEEE信息理论汇报》,52.3(2006)中的《整数环上的最大无竞争交织器和置换多项式》1249-1253(O.Y.Takeshita."On maximum contention-free interleavers and permutationpolynomials over integer rings."IEEE Transactions on Information Theory,52.3(2006):1249-1253)—是无竞争的QPP交织器,可以通过将LTE Turbo码交织器用作基本交织器来构建具有良好扩展因子的无竞争WI。
下文介绍了使用fp(j)-窗口交织器的用于Turbo码的滑动窗口解码。
建议利用fp(j)-WI对用于turbo码的长度为w的滑动窗口解码器定义如下:
1、通过处理前w个系统比特及其对应的奇偶校验比特开始进行解码,其中窗口中前m个系统比特是目标符号。
2、使用具有以下修改的标准turbo解码技术对窗口内的符号进行解码,该修改为:交织/解交织期间,如果需要在来自窗口外未知符号的范围(-∞,+∞)中的外部信息—即,根据对数似然值,也被称为软值,则设定其为0。
3、达到一定次数的迭代后,存储以下参数:
■第m个索引处成员解码器的状态。
■窗口中前m个系统比特的外部信息,下一个窗口需要该外部信息。
4、然后将窗口移位m,使得新窗口以先前窗口的第(m+1)个系统比特为开始。
5、相似第一个窗口的解码,除了以下修改外,该窗口内的符号被解码:
■成员解码器以曾存储在前一步骤中的状态为开始。
■由于交织器结构,可能需要来自先前窗口的一些符号的外部信息。
该信息取自上一步骤中存储的值。
6、转至步骤3,除非当前窗口的末尾对应于码字的末尾。
该过程如图11所示。每个窗口中,处理w个系统比特,其中仅前m个比特是目标符号。当前窗口处理完成后,将窗口移位m。
下文介绍了使用fp(j)-窗口交织器的turbo码的编码和解码。
具有fp,d(j)-WI的turbo码可以通过使用先前部分中相同的方法来解码,即,可以使用fp(j)-WI交织器通过用于Turbo码的滑动窗口解码来解码。然而,由于交织器的d个索引不满足条件(4)并且会位于窗口外,所以可能会存在性能损失。
为了解决这个问题,提出了以下修改:
1、在编码器处,对应于d个索引的系统比特被设为已知值—例如零,其对应的对数似然值等于+∞,使得没有信息通过这些索引发送。
2、在编码器的输出端处,对应于这些已知值的系统比特被打孔,即,不发送。
3、在解码器处,使用滑动窗口解码器进行以下修改。
在迭代解码期间,d个索引的已知值被馈送至解码器,作为完美先验信息—如,对数似然值为+∞。
这个解决方案使得速率损失很小。然而,当d<<k,速率损失会变小。
图16示出了具有根据本发明实施例的交织函数的交织器或交织设备1600。交织设备1600适用于从输入序列1601生成输出序列或交织序列1609。输入序列1601和输出序列1609的长度为Lk’。
交织设备1600包括串行到并行转换器1602,用于将输入序列1601写入大小为L*k’的矩阵M 1603中。串行到并行转换器1602适用于将输入序列1601整形至矩阵M 1603中。
交织设备1600包括基本交织器1604,适用在M 1603的每一行上,其中基本交织器1604的输出被写入相同大小的矩阵R 1605的对应行中。使用基本交织器1604交织每一行。
交织设备1600包括循环移位运算器1606,应用在R 1605的垂直维度中的每一列上,以获得相同大小的矩阵S 1607,其中每一列的移位值tj由整数tj确定,j=0,…,k’-1。循环移位运算器1606根据tj进行垂直维度上的循环移位。
交织设备1600包括并行到串行转换器1608,用于逐行读取矩阵S 1607,以生成长度为k’L的交织输出1609。
具体地,基本交织器1604可以是LTE交织器。
下文结合图12至图15一同介绍性能结果。
图12示出了具有根据本发明的平滑窗口交织器的wi-turbo码的性能结果—根据实现目标错误概率所需的Eb/N0。长度为k'=64,...,2048的LTE QPP交织器被用作基本交织器。
图12中示出了利用滑动窗口解码器解码的wi-turbo码的性能。通过使用第三种构建方法以及将不同长度的LTE QPP交织器用作基本交织器生成窗口交织器。这里,延迟被定义为开始解码所需的符号的个数,即,对于SWD,延迟等于窗口长度。性能度量是达到0.0001目标错误比特概率所需的SNR或Eb/N0。可以观察到,对于八个码中的每一个码,性能随着窗口长度(延迟)的增加变得越好。
为了做出比较,还给出了LTE turbo码的性能。图12中的每个方形标记对应于具有不同交织器长度的LTE Turbo码的性能。可以注意到,为了做出公平的比较,没有SWD可能的LTE turbo码的解码延迟被认为是消息长度,即交织器长度。可以观察到,LTE turbo码的性能与wi-turbo码的性能是可比的。然而,wi-turbo码可以利用灵活的延迟来解码。因为LTEturbo码不适用于SWD,所以一个LTE turbo码只可以利用固定的延迟值来解码。有利的是,根据本发明的wi-turbo码的解码延迟可以在接收机处进行调整,以获得期望的延迟,而不改变代码本身。
图13示出了具有根据本发明的之字形窗口交织器的wi-turbo码的性能结果—根据实现目标错误概率所需的Eb/N0。长度为k'=200,...,1000的S随机交织器被用作基本交织器。同样,该结果与LTE turbo码的结果是可比的。
图14示出了具有由LTE QPP交织器构建的,即由不同的LTE QPP交织器长度k和不同的值L构建的平滑窗口交织器的wi-turbo码的误码率(BER)性能。对于每条曲线,窗口交织器的长度都相等,但基本交织器的长度不同。可以观察到,对于相同的交织器长度,性能随着基本交织器大小的增加变得越好。
图15示出了与LTE turbo码相比,wi-turbo码可以具有显著优点的示例场景。假设接收机由于一些其他的处理任务必须等待τ秒,其中其接收了额外的750个符号。传统的turbo解码器不能使用这种信息来提高解码性能,但是wi-turbo码可以利用这些符号来提高性能,该示例中,可以提高至0.41dB。注意,由于该特殊结构,可以支持任何延迟,使得解码器可以工作,而几乎没有空闲时段。
本发明的优点在于,通过使用具有提出的交织器的turbo码,发射机和接收机可以在信道编码和解码时具有较低的延迟。可以根据延迟预算,通过改变诸如SWD的窗口尺寸,简单地调整解码延迟。如果使用传统的交织器,则该过程是不可能的,因为在使用turbo码的现有通信系统中,延迟不能在发射机或接收机侧调整。
本发明的优点在于,通过使用提出的wi-turbo码,在信道实现良好的情况下,即使是一个足够用于成功解码的小窗口,可以利用低延迟解码相同的码字。
本发明的优点在于,通过使用提出的wi-turbo码,延迟可以通过发射机或接收机增长,以提高纠错性能。
本发明的优点在于,通过使用第三种构建方法,可以建立具有基本交织器某些优良属性的WI,例如无竞争属性和扩展因子。
本发明的优点在于,通过使用第三种构建方法,可以建立具有周期性结构的WI,使得交织器函数的存储需求不随交织器长度而增涨。
本发明的优点在于,通过使用第三种构建方法,可以建立任意长度的WI,该长度是基本交织器长度的整数倍。
本发明可以在硬件或软件中实现。所提出的wi-turbo码和交织器可以在光学、有线或无线通信中使用。
已经结合各种作为示例的实施例以及各种实现方式来描述本发明。然而,本领域技术人员可以理解和实现其他变形,并且根据附图、本公开和独立权利要求可以实践要求保护的发明。权利要求和说明书中,术语“包括”不排除其他元件或步骤,并且不定冠词“一”或“一个”不排除为多个。单个元件或其他单元可以实现权利要求中引用的若干实体或项目的功能。在互相不同的从属权利要求中引用了某些措施这一事实并不表示这些措施的组合不能用于有利的实施方式中。
Claims (14)
1.一种交织器,具体是块交织器,用于将k个索引输入符号的输入序列映射到k个索引输出符号的输出序列,k是正整数,
包括用于根据交织函数将所述输入序列的输入索引映射到所述输出序列的输出索引的装置,
其中,对于所有k个所述输入索引的包括输入索引b,…,k-b-1的子集,b是小于k/2的非负整数,所述输入索引与由所述交织函数定义的所述输出索引之间的距离小于或等于阈值p,p是小于k的正整数;
所述交织函数适用于turbo编码器(100)或turbo解码器(200)中,
获得所述交织函数方法包括:
一、定义所有k个索引的集合J={0,1,...,k-1},初始设定j=0,以及
所述方法还包括递归执行的以下步骤:
二、从所述集合J中选择满足以下标准的输入值A:
条件Ⅰ.|i-j|+|f(i)-A|≥s,对于所有非负整数i满足(j-s)≤i<j,其中f(i)是根据所述交织函数f被映射到所述输出索引i的所述输入索引,s是小于p的正整数,
条件Ⅱ.|A-j|≤p,
三、定义所述交织函数f,以便将所述输入值f(i)=A映射到输出值j,
四、从所述集合J中移除所选择的输入值A,
五、将j递增1,并且重复从步骤二开始的步骤,直到J为空集,或者直到没有剩余满足所述条件Ⅱ的索引,其中重复从步骤二开始的步骤而不考虑所述条件Ⅱ。
2.如权利要求1所述的交织器,其中所述交织器是s随机交织器。
3.一种交织方法,具体用于信道编码,用于将k个索引输入符号的输入序列映射到k个索引输出符号的输出序列,k是正整数,
包括根据交织函数将所述输入序列的输入索引映射到所述输出序列的输出索引,
其中,对于所有k个所述输入索引的包括输入索引b,…,k-b-1的子集,b是小于k/2的非负整数,所述输入索引与由所述交织函数定义的所述输出索引之间的距离小于或等于阈值p,p是小于k的正整数;
所述交织函数适用于turbo编码器(100)或turbo解码器(200)中,
获得所述交织函数方法包括:
一、定义所有k个索引的集合J={0,1,...,k-1},初始设定j=0,以及
所述方法还包括递归执行的以下步骤:
二、从所述集合J中选择满足以下标准的输入值A:
条件Ⅰ.|i-j|+|f(i)-A|≥s,对于所有非负整数i满足(j-s)≤i<j,其中f(i)是根据所述交织函数f被映射到所述输出索引i的所述输入索引,s是小于p的正整数,
条件Ⅱ.|A-j|≤p,
三、定义所述交织函数f,以便将所述输入值f(i)=A映射到输出值j,
四、从所述集合J中移除所选择的输入值A,
五、将j递增1,并且重复从步骤二开始的步骤,直到J为空集,或者直到没有剩余满足所述条件Ⅱ的索引,其中重复从步骤二开始的步骤而不考虑所述条件Ⅱ。
4.一种用于将输入序列编码为编码序列的信道编码器,
所述信道编码器包括至少一个如权利要求1或2所述的交织器。
5.如权利要求4所述的信道编码器,
其中所述信道编码器是turbo编码器,还包括:
第一成员编码器和第二成员编码器,
所述第一成员编码器适用于从所述输入序列生成第一成员码字,并且
所述第二成员编码器适用于从所述交织器的所述输出序列生成第二成员码字,以及
组合单元,适用于将所述输入序列、所述第一成员码字和所述第二成员码字组合成所述编码序列。
6.如权利要求5所述的信道编码器,
包括:
识别单元,适用于从所有k个输入索引中识别输入索引,对于所述输入索引,所述输入索引与由所述交织函数定义的所述输出索引之间的距离大于所述阈值p,以及
计算单元,适用于将位于所述输入序列中识别出的所述输入索引处的输入符号设置为已知符号。
7.如权利要求5所述的信道编码器,
其中所述信道编码器包括:
识别单元,适用于从所有k个输入索引中识别所述输入索引,对于所述输入索引,所述输入索引与由所述交织函数定义的所述输出索引之间的距离大于所述阈值p,以及
打孔单元,适用于对所述编码序列中识别出的所述输入索引进行打孔。
8.一种用于将接收的编码序列解码为解码符号序列的信道解码器,
包括至少一个如权利要求1或2所述的交织器。
9.如权利要求8所述的信道解码器,
其中所述信道解码器是turbo解码器,还包括第一和第二成员解码器,
所述第一和第二成员解码器通过所述交织器连接。
10.如权利要求9所述的信道解码器,
其中所述第一和第二成员解码器是滑动窗口解码器。
11.如权利要求9或10所述的信道解码器,
其中所述第一成员解码器适用于对所接收的编码码字执行软输出解码,以便生成所述解码符号序列和第一外部信息,并且
所述第二成员解码器适用于对所接收的编码码字执行软输出解码,以便生成第二外部信息,
其中所述交织器适用于将所述第一外部信息映射到所述第二成员解码器的边信息,以及
解交织器适用于根据所述交织函数的反函数将所述第二外部信息映射到所述第一成员解码器的边信息。
12.如权利要求9或10所述的信道解码器,
其中所述信道解码器适用于解码由如权利要求8所述的信道编码器编码的编码序列,其中所述信道解码器的所述第一和第二成员解码器适用于使用关于已知符号的完美先验信息。
13.一种用于将输入序列编码成编码序列的信道编码器,
所述信道编码器包括至少一个如权利要求1所述的交织器和至少两个成员编码器,
其中所述交织器,具体是块交织器,被定义成使得所述编码序列适用于由滑动窗口解码器形式的信道解码器解码。
14.一种计算机可读存储介质,其特征在于,包括计算机程序,当部分或全部所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求3所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/050570 WO2017121473A1 (en) | 2016-01-13 | 2016-01-13 | Window-interleaved turbo (wi-turbo) codes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108476027A CN108476027A (zh) | 2018-08-31 |
CN108476027B true CN108476027B (zh) | 2022-04-01 |
Family
ID=55085684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680078962.6A Active CN108476027B (zh) | 2016-01-13 | 2016-01-13 | 窗口交织的turbo(wi-turbo)码 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108476027B (zh) |
WO (1) | WO2017121473A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018077406A1 (en) | 2016-10-26 | 2018-05-03 | Huawei Technologies Duesseldorf Gmbh | Data encoding and decoding |
CN109639393B (zh) * | 2018-11-15 | 2021-07-06 | 武汉同德兴信息技术有限公司 | 一种基于二次置换多项式的滑动窗口网络编码方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1692557A (zh) * | 2002-10-23 | 2005-11-02 | 索尼株式会社 | 编码设备、编码方法、编码程序、解码设备、解码方法、和解码程序 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2776113A1 (fr) * | 1998-03-13 | 1999-09-17 | Thomson Multimedia Sa | Dispositif de correction d'erreurs et lecteur de disque optique comportant un tel dispositif |
US6437714B1 (en) * | 1998-04-18 | 2002-08-20 | Samsung Electronics, Co., Ltd. | Channel encoding device and method for communication system |
DE10008064B4 (de) * | 2000-02-22 | 2009-07-02 | Siemens Ag | Verfahren zum Anpassen der einem Turbo-Codierer zuzuführenden Datenblöcke und entsprechende Kommunikationsvorrichtung |
US7085969B2 (en) * | 2001-08-27 | 2006-08-01 | Industrial Technology Research Institute | Encoding and decoding apparatus and method |
-
2016
- 2016-01-13 CN CN201680078962.6A patent/CN108476027B/zh active Active
- 2016-01-13 WO PCT/EP2016/050570 patent/WO2017121473A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1692557A (zh) * | 2002-10-23 | 2005-11-02 | 索尼株式会社 | 编码设备、编码方法、编码程序、解码设备、解码方法、和解码程序 |
Non-Patent Citations (2)
Title |
---|
A new interleaver design and its application to turbo codes;Yan-Xiu Zheng等;《Proceedings IEEE 56th Vehicular Technology Conference》;20020928;第1437-1440页 * |
On the design of prunable interleavers for turbo codes;M. Eroz等;《1999 IEEE 49th Vehicular Technology Conference (Cat. No.99CH36363)》;19990520;第1669-1670页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108476027A (zh) | 2018-08-31 |
WO2017121473A1 (en) | 2017-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7222284B2 (en) | Low-density parity-check codes for multiple code rates | |
JP5354979B2 (ja) | 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器 | |
Mahdavifar et al. | Performance limits and practical decoding of interleaved Reed-Solomon polar concatenated codes | |
US7774689B2 (en) | Encoding and decoding methods and systems | |
US9214958B2 (en) | Method and decoder for processing decoding | |
WO2016070573A1 (zh) | 数据校验方法及装置 | |
Behairy et al. | Parallel concatenated Gallager codes | |
CN101309086A (zh) | 里德-所罗门码级联反馈系统卷积码的系统的译码方法 | |
WO2007052991A1 (en) | Apparatus and method for stopping iterative decoding in a mobile communication system | |
US7873897B2 (en) | Devices and methods for bit-level coding and decoding of turbo codes | |
JP2001257601A (ja) | 誤り訂正符号化タイプのデジタル送信方法 | |
CN108476027B (zh) | 窗口交织的turbo(wi-turbo)码 | |
Sklar | Fundamentals of turbo codes | |
US9374109B2 (en) | QPP interleaver/DE-interleaver for turbo codes | |
KR101413783B1 (ko) | 가변 블록 길이의 저밀도 패리티 검사 부호를 이용한 채널 부호화/복호화 방법 및 장치 | |
KR100738250B1 (ko) | Llr의 부호 비교를 이용한 터보 복호기의 반복복호제어장치 및 방법 | |
Andreadou et al. | Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) codes for deep space and high data rate applications | |
Sklar | Turbo code concepts made easy, or how I learned to concatenate and reiterate | |
CN108880569B (zh) | 一种基于反馈分组马尔科夫叠加编码的速率兼容编码方法 | |
EP4205284A1 (en) | Staircase polar encoding and decoding | |
CN110798229B (zh) | 一种Turbo码交织器的产生方法 | |
US7565594B2 (en) | Method and apparatus for detecting a packet error in a wireless communications system with minimum overhead using embedded error detection capability of turbo code | |
Devamane et al. | Performance evaluation of interleavers for Turbo codes | |
Synthia et al. | Performance study of turbo code with interleaver design | |
KR100370780B1 (ko) | 해밍 부호를 연접한 터보 부호화/복호화 방법 그리고 그의 부호기/복호기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |