CN1502168A - 随机存取多向cdma2000 turbo编码交织器 - Google Patents

随机存取多向cdma2000 turbo编码交织器 Download PDF

Info

Publication number
CN1502168A
CN1502168A CNA028054792A CN02805479A CN1502168A CN 1502168 A CN1502168 A CN 1502168A CN A028054792 A CNA028054792 A CN A028054792A CN 02805479 A CN02805479 A CN 02805479A CN 1502168 A CN1502168 A CN 1502168A
Authority
CN
China
Prior art keywords
address
interleaver
input
output
row
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.)
Granted
Application number
CNA028054792A
Other languages
English (en)
Other versions
CN1286276C (zh
Inventor
S・J・霍尔特
S·J·霍尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN1502168A publication Critical patent/CN1502168A/zh
Application granted granted Critical
Publication of CN1286276C publication Critical patent/CN1286276C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2789Interleaver providing variable interleaving, e.g. variable block sizes

Abstract

描述了实现由CDMA2000标准使用的LCS turbo交织器算法的交织器。交织器包括第一计算单元,用于接收输入地址并且对其响应而在第一时钟周期期间计算第一顺序交织的地址。包括第二计算单元,用于计算输入地址并且对其响应而在第一时钟周期期间计算第二顺序交织的地址。交织器还包括比较器,用于确定第一还是第二顺序交织的地址无效并对其响应而产生信号。比较器的输出把控制信号提供给开关,后者选择第一或第二顺序交织的地址作为第一时钟周期的输出交织地址。交织器还被设计成在正向或反向移动。

Description

随机存取多向CDMA2000 TURBO编码交织器
                          背景
I.领域
本发明一般涉及通信系统,尤其涉及为数字通信系统中turbo编码方案使用的交织器。
II.背景
数字数据的传输本来就易受到干扰,这会把误差引入已发射数据。已经提出差错检测方案来尽可能可靠地确定误差是否被引入已发射数据。例如,通常以分组发射数据并对每个分组加入一个循环冗余校验(CRC)字段,例如长度为16比特的字段,它携带分组数据的校验和。当接收机接收数据时,接收机计算已接收数据上的同一校验和并校验计算结果是否与CRC字段内的校验和相同。
当被发射的数据不作在线使用时,当检测到误差时可能请求重发出错的数据。然而,当进行在线传输时,譬如,在电话线、蜂窝电话、远程视频系统等等当中,不可能请求重发。
已经引入卷积码,使数字数据的接收机即使在传输期间可能发生差错时也能正确地确定已发射数据。卷积码把冗余引入被发射数据并且把被发射数据打包成分组,其中每比特的值都取决于序列中前面的比特。这样,当发生差错时,接收机仍能通过追溯接收数据中的可能序列而推断出原始数据。
为了进一步改进传输信道的性能,某些编码方案包括交织器,它在编码期间混合分组中比特的顺序。这样,当干扰在传输期间破坏某些邻近比特时,干扰的效应会被分散到整个原始分组并能更容易地由解码过程克服。其它改进可能包括多分量编码,它以并行或串行方式对分组进行多于一次的编码,并行或串行。例如,本领域已知,采用纠错方法使用至少两个并行的卷积编码器。这种并行编码通常被称为turbo编码。
对于多分量编码而言,最佳解码通常是很复杂的任务,并且可能需要对于在线解码通常不能提供的大时间周期。已经研发了迭代解码技术来克服这个问题。接收机在表示比特为1的概率的多级尺度上为每个比特分配一个值,而不是立即确定接收到的比特是0还是1。常用的尺度称为对数似然比(LLR)概率,它用某范围、如{-32,31}内的整数来表示每个比特。值31表示已发射比特为0的概率很大,而值-32表示已发射比特为1的概率很大。值零表示逻辑比特值是不确定的。
多级尺度上表示的数据被称为“软数据”,且迭代解码通常是软入/软出,即,解码过程接收与比特值概率相对应的输入序列,并且考虑到编码限制而提供为输出校正的概率。一般而言,执行迭代解码的解码器用来自前面迭代的软数据来对由接收机读取的软数据进行解码。在多分量编码的迭代解码期间,解码器用一个编码的解码结果来改进第二个编码的解码。当使用并行编码器时,如在turbo编码中,可以为此而方便地并行使用两个相应的解码器。这种迭代解码为多次迭代而被实现,直到相信软数据接近地表示已发射数据为止。具有表示它们更接近于1的概率的那些比特(例如,上述尺度0和31之间)被分配到二进制0,剩下的比特被分配到二进制1。
“Turbo编码”表示前向纠错(FEC)领域的重要进步。有许多种turbo编码,但大多数turbo编码类型通过结合迭代解码使用由交织步骤分开多重编码步骤。这种结合提供了通信系统中关于噪声容差的先前不能提供的性能。即,turbo编码允许以使用现有前向纠错技术时以前是不可接受的每噪声功率谱密度的每比特能量(Eb/No)的级别上进行通信。
许多通信系统使用前向纠错技术并因此会受益于turbo编码的使用。例如,turbo码会改进无线卫星链路的性能,其中卫星的有限下行发射功率需要能工作在低Eb/No电平的接收机系统。
数字无线电信系统,譬如数字蜂窝和PCS电话系统,也用于前向纠错。例如,电信工业联盟已经公布了空中接口标准TIA/EIA临时标准95及其派生物,譬如IS-95B(这里总称为IS-95),它定义了使用卷积编码提供编码增益来增加系统容量的数字无线通信系统。美国专利号5103459中描述了大致按照IS-95标准的用于处理射频(RF)信号的系统和方法,该专利被转让给本发明的受让人并且完全通过引用被结合于此。
通信工业中不断驱使以持续地改进编码增益。在常规数字无线通信系统中,已经发现可以用同余的随机序列有利地实现用于turbo编码的串行交织器。本领域已知可以通过使用线性同余的递归算法来产生均匀的随机序列。如,参见2D.Knuth编著的The Art of Computer Programming(1969)(描述了用线性同余的递归产生伪随机数)。还已经发现采用二维交织器(即,被组织为包括多行和多列的矩形数据数组的交织器)的并行turbo编码器就编码增益而言一般胜过具有一维交织器(即,其中数据被组织为单独、线性数组的交织器)的并行turbo编码器。
最好进一步加强turbo编码器的性能。此外,由于turbo编码器的实现远比卷积编码器复杂,因此期望提供具有减少了的复杂度的turbo编码器实现。这样,需要一种复杂度减少的、二维交织器,它使用多个线性同余序列。
蜂窝电信系统的特征在于多个移动收发器,譬如移动电话,它们与一个或多个基站进行通信。每个收发器包括一个发射机和一个接收机。
在典型的收发器中,模拟射频(RF)信号由天线接收,并由RF部分下变频至中频(IF)。信号处理电路执行噪声滤波并且通过模拟自动增益控制(AGC)电路调节信号的幅度。然后,IF部分把信号混合成基带,并把模拟信号转换成数字信号。然后,数字信号被输入基带处理器用于进一步的信号处理以输出话音或数据。
同样,发射机从基带处理器接收数字输入,并把输入转换成模拟信号。然后,该信号被滤波并由IF级上变频至中频。发射信号的增益被调节,IF信号被上变频至RF,用于准备无线电传输。
发射机和接收机间的链路是信道。增加基站和相关移动站间信道的信息承载容量的一种方法是提高信号对干扰比(SIR)。SIR通常被表示为接收到的每信息比特能量对接收信号干扰密度的比值。为了增加系统容量,移动站和基站内的接收机必须有效地工作在较低信号对干扰比(SIR)下,或者必须增加信道的SIR。为了增加SIR,通常要增加发射信号的功率,这是代价昂贵的,它增加了对其它移动站的干扰,并因此在许多应用中不切实际。或者,为了减少所需的SIR通常采用特别的编码方案。
通信信号的编码涉及把冗余信息加入信号。通过战略上把冗余加入噪声环境中发送的通信信号中,由噪声信道引入的差错被减少为期望水平。如香农在1948年所示,如果通信信号的信息速率低于信道容量,则可以达到期望的噪声水平而无须减少信息速率。如果噪声环境中未采用冗余,则难以或者不可能获得无差错的性能。
设计了许多编码和解码系统来控制在通信系统中信息传输期间发生的与噪声和干扰有关的误差。在设计高度可靠的现代数字通信系统时,编码是重要的考虑。
在噪声或衰落环境中高效工作的能力在码分多址(CDMA)无线通信系统中特别重要,其中瑞利衰落的信号环境和来自其它用户的同信道干扰是常见的。瑞利衰落由移动站位移引起的接收信号中的多普勒频偏移造成。同信道干扰在CDMA通信系统保持多个系统用户时发生,每个附加用户额外地助长了同信道干扰。同信道干扰一般比其它形式的信道噪声大,譬如,附加的白高斯噪声(AWGN)。
在瑞利衰落的信号环境中,已发射通信信号的功率电平按照瑞利分布波动。功率一般在10dB到50dB的动态范围内波动。衰落的持续时间是如蜂窝电话这样的移动站的速度、为该移动站分配的频率信道、以及总信号环境的函数。随着移动单元的速度增加,衰落持续时间减少,导致较短的突发差错。随着移动单元速度的减少,衰落持续时间增加,导致较长的突发差错。
为了改进噪声和瑞利衰落环境中无线通信系统的性能,通常采用跟随信号编码器的交织器。交织器扩展来自编码器的码字输出,使得给定码字的单独比特彼此分开并在不同时间被发送。结果,给定编码的单独比特遭受独立的衰落,其中受到突发差错影响的比特属于几个码字。在接收机处,接收到的信号采样在解码前被去交织。这样,突发差错的效应散布于报文,从而能用原始的纠错码恢复数据。存在几种类型的交织器,包括对角线、卷积、块间和块交织器。
Turbo码是两个或多个组成码的串行串接或并行串接,由一个或多个编码交织器分开。通常采用Turbo编码器和解码器来改进差错控制并减少所需的SIR。Turbo码通常用相对有效的迭代算法来解码,从而在接近香农限制的信噪比(SNR)处达到低差错率。作为Turbo码的基本部分,必须在组成代码的编码器和解码器之间分别插入代码交织器和去交织器。Turbo码的性能取决于代码交织器的长度和结构。过去用具有伪随机结构的交织器已经达到了良好的turbo编码性能。
美国专利申请号09/205511、由D.Rowitch等人于1998年12月4日提交的、题为“TURBO CODE INTERLEAVER USING LINEAR CONGRUENTIAL SEQUENCES”(代理案卷号QCPA720)中揭示并要求了特别有利的交织器设计,该专利发明的原理通过引用被结合于此。Rowitch等人的交织器根据个人电脑上允许的仿真提供了许多优点。然而,需要用硬件(即,蜂窝电话)有效地实现该交织器。
因此,本领域中需要一种用硬件实现Rowitch等人主张的原理的系统和方法,使得该原理可以被结合在蜂窝电话中使用的集成电路或芯片中。
                        概述
本发明的交织器针对本领域中的需求。发明的交织器包括第一计算单元,用于接收输入地址并且对其响应而在第一时钟周期期间计算第一顺序交织的地址。包括第二计算单元,用于接收输入地址并且对其响应而在第一时钟周期期间计算第二顺序交织的地址。发明的交织器还包括比较器,用于确定第一还是第二顺序交织的地址无效并对其响应而产生信号。比较器的输出把控制信号提供给开关,后者选择第一或第二顺序交织的地址作为第一时钟周期的输出交织地址。
在说明性实施例中,第一和第二计算单元实现下列表达式:
A=bitrev(row)·2c+{(col+l)·c(i)modC,
其中A是经交织的地址,“行”是5LSB,“列”是输入线性地址的cMSB,c是列数,而c(i)是查找表的输出,其中“i”是当前行数。
交织器被设计成响应方向控制信号而控制所述交织器关于所述输入地址在正向或反向上移动。包括了一种机制,用于提供关于输入地址的地址偏置。图中所示的地址偏置存储器86以及加载计数器84的能力使交织器能在交织器序列中的任意期望点开始。从Rowitch等人的专利中的算法中可知,从开始到结束都需要运行交织器--没有用于在序列中随机点处开始的指定方法。通过预先存储交织器序列中期望点的地址偏置,交织器序列可以在那些期望点处开始,或在正向或在反向运行。
发明的交织器提供了由CDMA2000标准使用的LCS turbo交织器算法的唯一实现。
                 附图简述
图1是并行串接的turbo编码器的框图。
图2是可以在图1的并行串接的turbo编码器内使用的交织器框图。
图3是可以结合图2的交织器使用的组成编码器的框图。
图4是turbo编码器的顶层框图,它带有两个卷积编码器和按照本原理构造的交织器。
图5是示出图4交织器细节的简化框图。
图6是结合当前公开的实施例原理的turbo解码器的说明性实现框图。
                         详细说明
按照一个实施例,如图1所述,并行串接的turbo编码器10,即turbo编码器10包括第一和第二编码器12、14、交织器16、以及多路复用器18。第一编码器12和交织器16用于接收编码器输入数据20,它一般是用户信息或者控制数据。第一编码器12输出系统码元22,它一般是原始输入比特20的复制品,以及一致校验码元24。第二编码器14用于接收交织器16经交织的输出26,并用于输出第二组一致校验码元28。由第二编码器14产生的系统码元(未示出)被抑制,且第一和第二编码器12、14剩下的相应输出22、24、28由多路复用器18多路复用成输出数据流30。
可以并联加入附加的编码器和交织器以减少编码率,从而提供提高了的前向纠错。或者,可以截去某些系统码元22和/或奇偶校验码元24以增加编码率并提供改进了的频谱效率。
第一和第二编码器12、14可以是本领域已知的各类编码器,包括分组编码器和卷积编码器。Bernard Sklar所著的Digital Communications 245-380(1988)中描述了示例性分组编码器和卷积编码器,该文通过引用被结合于此。第一和第二编码器12、14最好是具有相对小约束长度K的卷积编码器,譬如K=4,从而由于低约束长度减少了相应解码器(未示出)的复杂度,因此提供减少了的复杂度。第一和第二编码器12、14还最好是递归的系统卷积(RSC)编码器,如本领域已知。如下所述,交织器16最好是二维交织器。
一般而言,第一和第二编码器12、14为每个接收到的比特20输出两个奇偶校验码元24、28,为每个编码器12、14产生编码率R=1/2。然而,由于来自第二编码器14的系统比特被截去,因此turbo编码器10的总编码率为R=1/3。
如图2所示,按照一个实施例的二维(2-D)、线性同余序列(LCS)交织器100包括四张查找表(LUT)102、104、106、108、七个二输入多路复用器(MUX)110、112、114、116、118、120、122,一个R-输入MUX 124、一个行计数器126、第一和第二比特倒置逻辑块128、130、一个地址验证模块132、多个(R个)列下标或行下标寄存器134、136、138、140(为了简化被示出为四个寄存器),用于标记列下标复位的寄存器142、第一和第二k位乘法器144、146、以及四个k位加法器148、150、152、154。LCS递归发生器156由虚线包围部分描述。交织器100可以用于图1的并行串接turbo编码器中,或者,交织器100可用于串行串接turbo编码器内,其中交织器100中放有外部和内部组成码,这能由本领域的技术人员理解。
交织器100的大小为N,它小于或等于2m并且大于2m-1。行数R乘以列数C等于2m。列数C等于2k,即k=log2C。行数R等于2r,即r=log2R。
地址确认模块132最好用被配置为移位寄存器和加法器的离散门逻辑来实现。地址确认模块132用来检查X输入是否小于列数C和Y输入(行下标)的乘积,与Z输入(列下标)相加,执行如移位和加法功能。地址确认模块132用来产生一个标志,表示该地址是否无效,即,该地址是否包含应被丢弃的超出2次幂的比特(即,交织器大小是否在2的连续幂之间)。
如下所述,LCS递归发生器156通过在四个LUT 102、104、106、108的输入处接收行数值下标并且产生列下标(地址确认模块132的Z输入),从而伪随机地重排、或搅乱交织器100的每行内包含的比特值。本领域的技术人员可以理解,在如图1所述的并行串接turbo编码器中,最好防止数据元素的物理重排,有利地使用关于由第二编码器定址的读取而伪随机产生的LCS。如下所述并且如本领域已知,第一和第二比特倒置逻辑块128、130用来按照预定义的比特倒置规则重排或搅乱交织器100内的行。
LUT 102、104、106、108可以用本领域已知的任何存储媒体来实现。第一LUT102用于存储系数c的值。第二LUT 104用于存储系数a的值。第三LUT 106用于存储系数a对系数b的幂的值。第四LUT 108用于存储x(-1)的值。每个LUT 102、104、106、108的大小为r×k个比特。交织器100的总存储器要求为4r×k个比特加上寄存器134、136、138、140的r×k个寄存器比特。
寄存器143接收表示行数的比特值,它最初被设为R-1。在每个处理周期中,寄存器142输出表示列数的比特值,它最初被设为不等于零。寄存器142从而用来每当行数周期经过所有行就复位列下标。
在每个处理周期中,输入MUX 110产生或为1或为-1的值,这取决于是否设定了向后运行(RunBackwards)标志。该值被提供给加法器148,它把该值加入标为下一行(NextRow)的比特值。产生的和被提供给行计数器126的数据输入。值1被提供给行计数器126的第二输入。行计数器126产生一个行值(最初被存储为寄存器142内的R-1),它被提供给第二比特倒置逻辑块130。该行值还被提供给LUT 102、104、106、108的每一个。该行值还被提供给加法器150,它把该行值加入值1,并把产生的和提供给第一比特倒置逻辑块128。该产生的和还被提供给MUX 112的第一输入。
在每个处理周期内,第一比特倒置逻辑块128把一个值提供给MUX 114的第一输入。第二比特倒置逻辑块130把行下标值提供给MUX 114的第二输入,还提供给地址确认模块132的Y输入。地址确认模块132接收X输入处的值N。地址确认模块132根据Z输入处存储的系数接收一个值。LCS地址确认模块132计算C和Y输入值的乘积,把该乘积加入Z输入值,并检查结果是否大于或等于X输入值N。如果经计算的值大于或等于N,则地址确认模块132输出值1。否则,输出值为0。输出值是标为Addr_GT_N的标志,它在被设为1时表示交织器大小处在2的连续幂之间,使得超出2的较低次幂的比特应被丢弃。
Addr_GT_N值作为选择器输入被提供给MUX 112、114、120和122。如果Addr_GT_N值被设为1,则MUX 112选择其第一输入。作为MUX 112输出的所选输入是经交织的NextRow值。如果Addr_GT_N值被设为1,则MUX 114选择其第一输入。作为MUX 114输出的所选输入表示最后一行的下标值。
LCS递归发生如下进行。在每个处理周期内,表示系数c的k位值从第一LUT102被发送至数据通路k位加法器152。值a从第二LUT 104被发送至MUX 116的第一输入。表示a的b次幂的值从第三LUT 106被发送至MUX 116的第二输入。MUX116接收选择器输入处的RunBackwards标志。如果RunBackwards标志为1,则MUX116选择其第二输入并把所选值,一个k位值,提供给乘法器144。否则,MUX 116把它的第一输入,一个k位值,提供给乘法器144。值x(-1)从第四LUT 108被发送至MUX 118的第一输入。MUX 118在第二输入处接收从MUX 124输出的k位值。MUX 118在选择器下标处接收列下标值。列下标值最初被设为不等于零。如果列下标值为1,则MUX 118选择其第二输入。否则,MUX 118选择其第一输入。所选输入值,一个k位值,被提供给乘法器144。从乘法器144产生的乘积被提供给k位加法器152。数据通路k位加法器152最好是可编程加法器/减法器,如本领域已知。当交织器100向后运行时,加法器152减去值c。
k位加法器152在每个处理周期内把一个输出值提供给地址确认模块132的Z输入。加法器152的输出还被提供给MUX 120的第一输入并被提供给第一到第(R-1)个行寄存器136、138、140的每一个。加法器152的输出还作为k位输入值被提供给MUX 122的第一输入。
MUX 120从k位加法器154接收第二输入值。如果MUX 120的选择器输入被设为1,则MUX 120选择其第一输入。否则,MUX 120选择其第二输入。所选输入被提供给第零个行寄存器134。每个行寄存器134、136、138、140把一个输出值提供给MUX 124的相应输出。此外,第零个行寄存器134的输出值被提供给乘法器146。MUX 124接收选择器输入处的行值(行计数器126的输出)。由MUX 124选择的行寄存器输入取决于选择器输入处行值的值。这样,当行值等于相应的行寄存器号时,每个行寄存器134、136、138、140被更新,而当标志Addr_GT_N等于零时,也启用第零个行寄存器134。
R=0的k位初始输入值b被提供给乘法器146。乘法器146还接收从第零个行寄存器134输出的值。乘法器146把两个接收到的值相乘并把乘积提供给k位加法器154。数据通路k位加法器154还接收R=0的初始值c。数据通路k位加法器154最好是可编程加法器/减法器,如本领域已知。当交织器100向后运行时,加法器154减去初始值c。加法器154把两个接收到的值相加(或,按照已编程那样,相减)。产生的和,一个k位值,被提供给MUX 122的第二输入。
如果MUX 122的选择器输入被设为1,它就选择其第一输入。否则,MUX 122选择其第二输入。MUX 122把所选的输入作为最后一列的下标值输出。下一比特值的地址是R和来自MUX 122的最后一行下标值的乘积,与来自MUX 114的最后一列下标值输出相加。
在一个实施例中,按照下列恒等式产生周期为M的LCS:
x(n+1)=(ax(n)+c)mod M
整数a、c和M满足下列三个条件:(1)c与M互质。(2)a-1一定是p的倍数,其中p是除尽M的任一质数。当M为4的倍数时,a-1一定是4的倍数。(3)x(0)是种子值,它可以是任意整数。为了简化实现,M最好被选为2的幂数。这样,a的形式为4p+1,而c可以是任意奇数。注意到上面的x(0)用来表示初始条件,而x(-1)用于表示结合图2所述的实施例中的初始条件。对于所使用的不同数字不加权。
按照一个实施例的2-D、LCS交织器如下指定:令交织大小为K=2N,交织器被规定为R行C列的矩形矩阵,其中R和C都是2的幂数。要被交织的数据逐行地被写入矩阵。数据行首先按照任何常规交织规则被交换(即,被交织)。数据行最好按照行下标所用的比特倒置规则被交换。在每一行内,列(即,数据元素,因为每行中每列仅有一个数据元素)按照由相关LCS指定的规则而被交换。与两个相异行相关的LCS最好是不同的,但或者也可以是相同的。在所有行的交换后,数据逐列地被读出来产生经交织的序列。本领域的技术人员可以理解,可以通过从长度为2N的交织器中删除无效地址而产生长度小于2N大于2N-1的交织器。
在一个实施例中,2-D、LCS交织器包括下列规格:交织器大小为32(即,N=5)数据组被定义为{d(0),d(1),d(2),...d(31)}。交织器组织成为具有四行、每行八个元素的数组。以下列方式逐行填入数据元素:
d ( 0 ) d ( 1 ) d ( 2 ) d ( 3 ) d ( 4 ) d ( 5 ) d ( 6 ) d ( 7 ) d ( 8 ) d ( 9 ) d ( 10 ) d ( 11 ) d ( 12 ) d ( 13 ) d ( 14 ) d ( 15 ) d ( 16 ) d ( 17 ) d ( 18 ) d ( 19 ) d ( 20 ) d ( 21 ) d ( 22 ) d ( 23 ) d ( 24 ) d ( 25 ) d ( 26 ) d ( 27 ) d ( 28 ) d ( 29 ) d ( 30 ) d ( 31 )
以二进制(00,01,10,11)表示的行下标最好是比特倒置的(即,00,10,01,11),且行被交换,得到:
d ( 0 ) d ( 1 ) d ( 2 ) d ( 3 ) d ( 4 ) d ( 5 ) d ( 6 ) d ( 7 ) d ( 16 ) d ( 17 ) d ( 18 ) d ( 19 ) d ( 20 ) d ( 21 ) d ( 22 ) d ( 23 ) d ( 8 ) d ( 9 ) d ( 10 ) d ( 11 ) d ( 12 ) d ( 13 ) d ( 14 ) d ( 15 ) d ( 24 ) d ( 25 ) d ( 26 ) d ( 27 ) d ( 28 ) d ( 29 ) d ( 30 ) d ( 31 )
比特倒置用来按照预定义的比特倒置算法来搅乱交织器的行。比特倒置算法的应用提供了交织器行之间期望的时间分离。然而,比特倒置对于交织器的实现并非必须。
在特定实施例中,按照下列方程产生交换LCS:
x1(n+1)=(5x1(n)+7)mod 8,其中x1(0)=3,
x2(n+1)=(x2(n)+5)mod 8,其中x2(0)=0,
x3(n+1)=(5x3(n)+3)mod 8,其中x3(0)=4,以及
x4(n+1)=(x4(n)+3)mod 8,其中x4(0)=3。
对于四行分别由{3,6,5,0,7,2,1,4)、{0,5,2,7,4,1,6,3)、{4,7,6,1,0,3,2,5}和{7,2,5,0,3,6,1,4}给出交换模式。因此,在应用了列交换之后,第一行成为
(d(3)     d(6)    d(5)    d(0)    d(7)    d(2)    d(1)    d(4)),
第二行成为
(d(16)    d(21)    d(18)    d(23)    d(20)    d(17)    d(22)    d(19)),
第三行成为
{d(12)    d(15)    d(14)    d(9)    d(8)    d(11)    d(10)    d(13)},
而第四行成为
{d(31)    d(26)    d(29)    d(24)    d(27)    d(30)    d(25)    d(28)}。
在所有列在它们相应的行内被交换后,经交织的数据矩阵型式如下:
d ( 3 ) d ( 6 ) d ( 5 ) d ( 0 ) d ( 7 ) d ( 2 ) d ( 1 ) d ( 4 ) d ( 16 ) d ( 21 ) d ( 18 ) d ( 23 ) d ( 20 ) d ( 17 ) d ( 22 ) d ( 19 ) d ( 12 ) d ( 15 ) d ( 14 ) d ( 9 ) d ( 8 ) d ( 11 ) d ( 10 ) d ( 13 ) d ( 31 ) d ( 26 ) d ( 29 ) d ( 24 ) d ( 27 ) d ( 30 ) d ( 25 ) d ( 28 )
交织后矩阵内的数据逐列被读出,产生下列经交织的序列:{d(3),d(16),d(12),d(31),d(6),d(21),d(15),d(26),d(5),d(18),d(14),…,d(11),d(30),d(1),d(22),d(10),d(25),d(4),d(19),d(13),d(28)}。如果期望长度为30的交织器,则可以通过删除数据元素d(30)和d(31)而缩短如上产生的交织器,产生下面经交织的序列:{d(3),d(16),d(12),
Figure A0280547900152
d(6),d(21),d(15),d(26),d(5),d(18),d(14),…,d(11), d(1),d(22),d(10),d(25),d(4),d(19),d(13),d(28)}。
交织器结构内采用的LCS根据期望或在正向或在反向中产生,为了turbo解码中与MAP解码器的最优使用。在一个实施例中,倒置序列发生由下列方程给出:
x(n)=(αβx(n+1)-c)mod M
其中
β=(M/2)-1
应该注意的是,上述方程中使用的项β代表结合图2实施例描述的系数b。
这样,LCS的产生要求用3R个参数唯一地定义每个交织器,其中R是行数。需要相对短的log2(C)×log2(C)乘法器。由于模数操作,因此不必要产生超出比特单元log2(C)的比特。需要一组R个寄存器来保持R个同余序列的中间结果。
由于每行的参数x(0)、a和b不同,因此交换序列有许多不同的可能。期望进行搜索来优化与特定turbo码一起使用的交织器参数。
在图3中,为了CDMA数字无线通信系统中所用的特定turbo码优化按照一个实施例的组成编码器200。编码器200包括七个模2加法器202、204、206、208、210、212、214和三个比特单元216、218、220。比特单元216、218、220可以用一个三位寄存器来实现,或者用三个一位寄存器来实现。模2加法器202、204、206、208、210、212、214以精确的方式与比特单元216、218、220耦合,以便产生一组期望点反馈抽头。这样,加法器202用于接收输入比特。加法器202还把比特单元216耦合至加法器204和206。比特单元216与比特单元218耦合,并且与加法器204和206耦合。比特单元218与比特单元220耦合,并且与加法器208和210耦合。加法器210与加法器202耦合。加法器204与加法器212耦合。加法器206与加法器208耦合。加法器208与加法器214耦合。比特单元220与加法器210、214和212耦合。加法器212、214分别用于输出第一和第二码元。
本领域已知,误差性能可以用组成解码器(未示出)内误差事件的输入和输出权重来表征。参见如S.Benedetto和G.Montorsi所著的Unveiling Turbo Codes:Some Results on Parallel Concatenated Coding Schemes,登载在42 IEEE Trans.Info.Theory 409-28(1996年3月)上。误差事件的输入权重是比特误差数,而误差事件的输出权重是编码码元误差的数目。输入权重1的误差事件会清楚地与全零态分开出来并且不再重新合并(1会在移位寄存器内无限循环,顺次积累越来越多的输出权重)。这由编码器的递归、或反馈部分引起。由于该结构,已经示出高信噪比(SNR)下turbo码的性能由输入权重为2的输出误差事件来支配。参见同前。可以用所谓有效自由距离渐近线来精确地预测turbo码误差下限。有效自由距离是输入权重为2的所有误差事件的最小输出权重。长度短的输入权重2误差事件一般会引起最小距离误差事件。对于图3的编码器200而言,反馈多项式为,1+D2+D3,而所有可能的输入权重2误差事件的形式为Dk(1+D7j),其中j=1,2,K,而k是范围在O,K,K-7j范围内的任意移位(假定K为交织器大小)。本领域的技术人员可以理解,这可以通过检查组成编码器200的网格而容易地验证。
应该注意到,图3实施例的交织器大小被标为K,而图2实施例的交织器大小被标为N。技术人员可以理解,使用了不同字母不会造成特别大的区别。
例如,假定误差型式Dk(1+D7)引起第一解码器的最小距离误差事件输出。Turbo交织器会把两个误差(Dk,Dk+7)映射到两个位置(Dn,Dm)。如果|m-n|=7或7的某个倍数,则很可能得到第二解码器的低距离误差事件输出。Turbo交织器的基本目的是防止发生这种映射。即,交织器应该最好把易于第一维中的低权重误差事件的比特集合映射为产生第二维内大量输出权重的比特。因此,设计交织器的期望方法是试图防止位于下标(k,k+7j)的比特对映射为位于下标(s,S+7t)的比特对,特别强调j和t的较小值。这种输入误差事件在下表1中列出。对于每个事件而言,用速率1/2、1/3和1/4的正向链路turbo码的适当的截短模式列出第一组成码的输出一致校验权重,如IS-95中所规定的。
                 表1:输入权重2误差事件
输入误差事件 输入长度             第一组成输出权重
  速率1/2   速率1/3   速率1/4
  Dk(1+D7)     8     3     6     8
  Dk(1+D14)     15     6     10     16
  Dk(1+D21)     22     7     14     20
  Dk(1+D28)     29     10     18     28
如果给定交织器包含形式为Dk1(1+D7)→Dk2(1+D7)的输入权重2→2映射,则所产生的误差事件的组成输出权重对于速率1/2turbo码而言将为2+3+3=8。在前面的计算中,系统比特的权重(2)与来自两个组成编码器的相应一致校验权重(3和3)相加。同样,如果交织器包含形式为Dk1(1+D7)→Dk2(1+D14)的输入权重2→2映射,则所产生的误差事件的组成输出权重对于速率1/2turbo码而言将为2+3+6=11,或者对于速率-/3 turbo码而言为2+6+10=18。
此外,低组成输出权重的输入权重4误差事件可能映射为第二维中低输出权重的两个输入权重2误差事件。这种映射用4→{2,2}来表示。虽然输入权重4的组成误差事件没有封闭型解决方式,然而下表包含了组成编码器200的某些低输出权重误差事件,其中在使用从IS-95得到的空中接口的CDMA数字无线通信系统中,组成编码器200被用作正向链路turbo码的第一组成编码器。
                             表2:输入权重4误差事件
    输入误差事件   输入长度         第一组成输出权重
  速率1/2  速率1/3   速率1/4
    Dk(1+D3+D4+D3)     5     2     4     6
    Dk(1+D1+D3+D4)     6     2     4     8
    Dk(1+D2+D4+D4)     8     2     4     8
    Dk(1+D1+D4+D0)     9     2     4     8
    Dk(1+D3+D10+D11)     11     2     8     12
    Dk(1+D1+D2+D3)     4     3     4     6
    Dk(1+D2+D3+D0)     6     3     4     8
    Dk(1+D1+D6+D10)     10     3     4     8
    Dk(1+D4+D1+D0)     9     3     8     10
    Dk(1+D1+D3+D13)     13     3     8     12
    Dk(1+D3+D5+D13)     13     3     8     12
    Dk(1+D2+D4+D13)     15     3     8     12
    Dk(1+D6+D12+D13)     15     3     8     12
    Dk(1+D6+D9+D12)     12     3     8     14
    Dk(1+D2+D17+D13)     13     3     8     14
    Dk(1+D4+D10+D13)     15     3     8     14
    Dk+(1+D1+D7+D4)     8     4     4     8
    Dk(1+D3+D6+D9)     9     4     8     10
    Dk(1+D1+D2+D11)     11     4     8     10
    Dk(1+D4+D7+D11)     11     4     8     10
    Dk(1+D4+D9+D1)     11     4     8     10
    Dk(1+D9+D9+D9)     9     4     8     12
    Dk(1+D3+D7+D10)     10     4     8     12
    Dk(1+D4+D2+D10)     10     4     8     12
    Dk(1+D2+D3+D13)     13     4     8     12
    Dk(1+D3+D4+D13)     13     4     8     12
    Dk(1+D6+D7+D13)     13     4     8     12
    Dk(1+D9+D12+D13)     13     4     8     12
    Dk(1+D1+D4+D17)     17     4     8     12
    Dk(1+D1+D13+D17)     17     4     8     12
    Dk(1+D2+D6+D12)     12     4     8     14
    Dk(1+D3+D7+D12)     12     4     8     14
    Dk(1+D1+D12+D13)     15     4     8     14
    Dk(1+D2+D11+D13)     15     4     8     14
    Dk(1+D6+D12+D16)     16     4     8     14
表2(续):输入权重4误差事件
    Dk(1+D5+D13+D16)     16     4     12     18
    Dk(1+D5+D14+D19)     19     4     12     18
    Dk(1+D5+D9+D19)     19     4     12     18
例如,如果交织器包含形式为Dk1(1+D3+D4+D5)→{Dk2(1+D7)Dk3(1+D7)}的输入权重4→{2,2}映射,则所产生的误差事件的复合输出权重对于速率1/2turbo码而言将为4+2+3+3=12。该复合误差事件不比由映射Dk1(1+D7)→Dk2(1+D14)引起的误差事件差很多,后者的复合输出权重为11。因此,主要的设计目标是优化交织器的参数,以便避免上述坏映射类型,或至少使其最小。理想中,具有最低复合输出权重的坏映射是对避免和/或最小化最重要的映射。在设计特定大小(如,1530)的交织器时,可以优化交织器参数,以便使两类映射(即,权重2→2和权重4→{2,2})最小。该方法产生该特定大小的最佳交织器。应该指出,在设计中,大小为2N的交织器可以被稳健地截短为大于2N-1的任意大小(被成为“友好截短”的交织器),对权重4→{2,2}映射的优化可能更难以实现。
为了从按照图3实施例的2D、LCS交织器中获得大小为2N的友好截短的交织器,进行一项搜索。下表3包含搜索的初始结果。对于每个交织器大小而言,所使用的行数和所使用的列数与x(0)、a和c系数一起被指定。为了实现的简洁和效率,为所有交织器使用了32行。
                       表3:2-D LCS交织器系数
       K=512,32×16           K=1024,32×32             K=2048,32×64         K=4096,32×128
    x(0)     a     C     x(0)     a     c     x(0)     a     c     x(0)     a     c
    14     9     11     30     29     9     24     45     63     95     61     63
    6     1     13     17     29     5     41     53     53     7     121     119
    6     1     11     19     9     1     46     53     41     29     113     105
    10     13     15     31     1     17     46     5     43     28     29     53
    6     5     13     19     17     31     9     29     13     16     25     97
    7     9     11     11     13     19     15     37     39     69     33     33
    1     9     5     18     13     21     13     53     19     41     93     81
    4     9     5     20     9     27     28     1     57     34     1     117
    14     5     9     31     21     11     20     29     5     100     69     75
    11     13     9     29     21     17     1     49     39     69     113     39
    12     9     5     26     25     21     15     33     31     40     13     15
    10     9     1     19     29     15     9     33     19     13     33     19
    10     13     13     11     13     7     30     21     5     23     77     123
    1     5     5     1     1     27     61     37     45     84     9     127
    11     1     1     24     13     31     12     45     7     87     65     113
    2     5     11     10     5     29     9     37     19     16     17     81
    4     9     11     23     29     29     12     37     53     85     117     69
    15     9     5     26     1     15     59     13     25     103     41     73
    14     1     3     28     21     23     18     25     37     50     73     5
    9     1     9     11     21     11     9     49     31     91     73     35
    7     1     7     16     21     3     17     45     29     59     73     59
    13     13     13     17     13     11     50     25     23     87     97     39
    6     13     9     10     21     13     26     21     41     47     125     3
    1     13     15     13     17     7     14     61     45     34     21     33
    7     1     7     24     9     5     12     25     37     120     57     103
    2     5     15     17     25     1     34     33     55     76     77     103
    5     5     9     10     21     25     10     29     59     19     13     73
    0     9     1     28     21     27     16     13     15     49     121     111
    10     5     1     13     25     9     29     37     41     4     97     97
    9     9     13     21     13     3     33     5     33     13     101     71
    3     9     1     4     17     27     30     49     51     73     9     77
    11     9     3     18     29     29     0     21     47     102     101     1
                       表3(续):2-D LCS交织器系数
             K=8192,32×256        K=16384 32×512           K=32768,32×1024
    x(0)     A     C     x(0)     a     c     x(0)     a     c
    40     37     249     181     45     289     939     281     913
    73     53     59     75     217     223     9     85     969
    88     177     105     251     125     257     463     989     165
    46     29     91     89     141     457     363     981     59
    199     73     141     304     29     31     637     437     751
    211     185     133     328     153     161     599     597     621
    85     193     181     428     17     451     971     173     615
    18     169     209     394     245     147     1007     157     79
    246     81     89     178     321     111     444     693     415
    192     85     71     186     217     227     339     205     331
    144     189     223     438     357     423     382     293     565
    6     129     73     465     85     261     505     981     259
    118     69     119     24     185     109     728     845     447
    221     217     127     415     417     465     139     953     383
    241     109     27     225     137     33     682     537     461
    235     209     133     77     61     265     487     293     903
    181     189     235     158     45     211     453     9     885
    126     245     37     278     373     255     352     729     619
    129     173     191     410     117     175     442     81     315
    222     9     43     275     253     429     537     945     519
    89     113     159     35     85     289     201     13     175
    21     13     205     496     249     15     459     745     97
    75     253     183     79     365     221     592     69     829
    195     149     71     257     449     337     803     909     385
    45     101     209     232     81     137     133     425     201
    246     193     159     385     121     87     965     109     1001
    228     85     97     138     429     73     707     685     105
    0     161     151     479     9     23     627     289     97
    191     45     31     158     141     51     1019     805     753
    162     165     35     442     481     71     101     69     573
    196     149     191     464     269     157     521     753     183
    94     157     197     413     505     237     290     221     181
在替代实施例中,系数a可能被设为等于1,进行新的搜索,从而从2-D、LCS交织器中获得大小为2N的友好截短的交织器。正向和反向LCS递归方程分别简化为如下:
x(n+1)=(x(n)+c)mod M,以及
x(n)=(x(n+1)-c)mod M。
下表4包含搜索的初始结果。为了实现的简洁和效率,为所有交织器使用了32行。本领域的技术人员可以从表4所示的结果中得知,在所有LCS递归中设a等于1不会引起多个所产生的交织器中质量的恶化。此外,从设a等于1的简化中实现的复杂度增益是实质上的。例如,不需要图2实施例所述的第二和第三LUT(用于存储值a和ab的LUT)。图2实施例中所述的k位乘法器也是不必要的。从下表4可见,只需要为交织器的每一行指定初始条件x(-1)和加性常数c。表中未包括较大交织器的系数,表中仅指定了初始搜索结果,这是因为较大交织器的系数在提交本申请时仍不可用。
                            表4:2-D LCS交织器系数
K=512,32×16 K=1024,32×32 K=2048,32×64 LK=4096,32×128 K=8192,32×256 K=6384,32×512 K=32768,32×1024
x(-1) C x(-1) c x(-1) C x(-1) c x(-1) c x(-1) c x(-1) c
1 11 1 3 0 5 - - - - - - - -
11 9 14 1 1 1 - - - - - - - -
11 15 5 13 14 1 - - - - - - - -
1 5 13 27 3 23 - - - - - - - -
1 5 3 17 9 25 - - - - - - - -
6 7 3 13 8 3 - - - - - - - -
6 15 25 5 4 1 - - - - - - - -
12 11 3 23 57 61 - - - - - - - -
14 13 2 19 0 5 - - - - - - - -
15 7 1 13 60 49 - - - - - - - -
13 15 8 5 1 9 - - - - - - - -
4 5 25 9 47 55 - - - - - - - -
15 5 14 9 20 25 - - - - - - - -
14 5 11 23 34 19 - - - - - - - -
12 3 17 13 46 1 - - - - - - - -
3 15 19 13 52 13 - - - - - - - -
                      表4(续):2-D LCS交织器系数
14 13 4 39 8 75 - - - - - - - -
8 19 17 35 35 67 - - - - - - - -
12 15 24 27 48 51 - - - - - - - -
14 11 28 23 57 47 - - - - - - - -
14 11 29 19 59 35 - - - - - - - -
6 27 12 51 24 103 - - - - - - - -
7 31 14 59 29 115 - - - - - - - -
2 23 4 47 9 91 - - - - - - - -
1 27 2 55 4 107 - - - - - - - -
2 15 5 27 11 55 - - - - - - - -
13 7 26 11 52 19 - - - - - - - -
9 3 19 3 38 7 - - - - - - - -
12 11 24 23 49 47 - - - - - - - -
14 15 28 31 56 63 - - - - - - - -
11 19 22 35 45 67 - - - - - - - -
12 15 25 27 50 51 - - - - - - - -
按照一个实施例,输入比特的连续流被送入两个编码器,无变化地进入一个,通过交织器进入另一个。在两个编码器的输出处,一致校验码元根据数据速率较高的某些编码速率的某些因素下被一起多路复用成另一个输出连续流。如果两个编码器的编码速率均为_,是指对于到来的每个码元而言,输出两个码元,输出速率会是输入速率的三倍,这是因为每个编码器会发出一个额外的一致校验码元加上信息系统输出。由于从每个编码器输出的信息码元相同,因此丢弃一个码元。
图4是turbo编码器310的顶层框图,它带有按照本发明原理的两个组成卷积编码器320和340以及一个交织器360。(本领域的技术人员可以理解,为了实现本发明,编码器不需要相同。)每个组成编码器320和340包括第一异或(XOR)门322。异或门322为每个编码器320和340提供输入终端。异或门322是每个编码器内作为单个一比特加法器实现的几个相同2∶1异或门中的第一个。第一异或322的输出被输入第一个一位移位寄存器324,并被分别转送入第二和第三异或门326和328。第一个一位寄存器324是每个编码器内实现的几个一位寄存器中之一。
第二和第三异或门326和328的第二输入由第一移位寄存器324的输出提供。第一移位寄存器324的输出还被提供给第二移位寄存器330。第三异或门328和第二移位寄存器330为第四异或门334提供第一和第二输入。第二移位寄存器330还输出到第三移位寄存器332和第五异或门336。第二异或门326和第三移位寄存器332为第六异或门338提供第一和第二输入。第四异或门334和第三移位寄存器332为第七异或门342提供第一和第二输入。
本领域的技术人员可以理解,在说明中,编码器320和340为K=4速率的1/3卷积编码器,其前馈发生器多项式为15octal和17octal。反馈发生器多项式为13octal。在说明中,turbo解码器的编码多项式按1998年末首先发布的编码多项式硬连线。
在操作中,信息比特的输入流xk由第一编码器320的第一异或门322接收,并由交织器360接收。交织器360以下面详述的方式交换输入流,并为第二编码器340的第一异或门322提供一个输入。信息比特的输入流xk通过编码器被直接馈送,并且作为输出和一致校验比特yk 0,0和yk 0.1一起被提供给第一编码器320,与yk 1,0和yk 1,1一起被提供给第二编码器340。(本领域的技术人员可以理解,编码器320是“系统”编码器,由于输入流xk不经改变而通过其中。)这五个输出信号被多路复用成一个连续流,并被继续传递至发射机内的下一个元件(未示出)。
图5是详细示出图4交织器的简化框图。由于图4的编码器320和340的输入关于彼此而被交换,因此检错要求交换编码器(如,320)的输出以匹配其它解码器(340)的输入流。同样,必须去交织第二解码器(340)的输出以匹配第一编码器(320)的输入流。
困扰仿真交织器的实际实现的问题与产生适当交织器地址的要求有关,因为否则数据地址在交织过程期间会变得混乱。这些功能由交织器360实现,它在交织过程期间提取适当的地址。
按照本发明的原理,交织器360把线性地址序列映射为经交换的地址序列。经交换的地址序列的产生方式与产生比特倒置块交织器的方式相似,除了块的给定行中的地址用线性同余序列(LCS)进一步被交换之外。为了产生经交织的地址序列,从最顶行开始用线性地址序列填充R×C矩阵,从左至右填充。行数为R=32=25,矩阵中的列数为C=2C。在这个特定交织器中,行数固定为32,因此R等于25。“C”等于列数。例如,如果交织器单元的数目为128,则会有四列和32行,C会等于四。然后,每行内的地址按照行特定的LCS被搅乱。于是,矩阵的行按照行下标所用的比特倒置规则被搅乱。最后,从最左列开始从矩阵中读取地址,从上至下读取,并且进行到右边。每行所用的LCS的形式为:
xi(n+1)=xi(n)+c(i)    [1]
其中i是行下标,c(i)是奇数常数模C。对于cdma2000 turbo交织器360而言,每行的初始状态由xi(0)=c(i)给出,因此可以计算上述方程而无须存储前面的值。这样,
xi(n)=c(i)·(n+1)     [2]
因此,假定线性序列:0,...,K-1中的任意地址(A),则可以如下计算相应的经交织的地址:
A=bitrev(row)·2c+{(col+1)·c(i)}modC,    [3]
其中A是经交织的地址,“row”是输入线性地址的5个最低有效位(LSB),“col”是输入线性地址的c个最高有效位(MSB),C是列数,c(i)是查找表的输出,其中“i”是当前行号。c(i)系数用查找表(LUT)来实现。交织器360为每个所支持的C值包括一个单独的查找表。为了为大小属于2k-1<K<=2k的交织器产生经交织的地址序列,相应于C=2k-5而选择c(i)LUT,并通过方程(3)产生地址。任何大于K-1的地址都被丢弃。由于交织器按列而非按行被“读出”,因此决不会有两个或多个连续的坏地址。在线性数组中,值会按列被读出,意指在开始行2之前会读出行1的所有元素。本交织器按列被读取。这通过把行符号放置在交织器地址的较高部分中而在交织器方程中被指定。cdma2000标准中可以找到大小为512,1024,...,32768的交织器的查找表。
对于非2次幂的交织器长度必须截短LCS交织器。为了随机访问交织器,访问点前的截短数量必须已知,并且能被加载到交织器函数内。为了实现高解码速率,期望产生每时钟周期一个有效的交织器地址。如上所述,(方程3)的交织器算法不能产生两个连续的无效地址。本发明利用了这个属性。如图5中所述,交织器360用双计算单元362和364来实现,其中每一个都用来实现方程3。各计算单元362和364分别包括比特倒置单元366、370以及系数查找表368和372。数据计算通路按照上述CDMA2000表中来实现。即,各计算单元用于实现上面方程3的算法。
第一计算单元362计算了当前被交织的地址,而第二计算单元364计算了下一个交织器地址。因此,交织器360总是每时钟周期产生一个有效的经交织的地址。
如果,在第一计算单元362的输出处值n+m<N,其中n是列地址、m是行地址,N是交织器长度,则由阈值检测器374检测坏地址并且输出“坏地址”信号。由阈值检测器374输出的坏地址信号控制交织器选择多路复用器376。多路复用器376根据坏地址信号把第一计算单元62的输出或者第二计算单元362的输出选作为交织器360的输出。
每个所产生的无效地址还使地址偏置计数器384递增。地址偏置计数器384与外部控制器382和地址偏置寄存器386一起被包括在地址偏置电路380内,它可以用随机存取存储器(RAM)来实现。地址偏置电路380操纵输入线性地址来通过第一加法器378补偿被截短的地址。随机访问的支持通过使用可加载的地址偏置计数器384来实现。在随机访问交织器数组中的线性地址之前把地址偏置寄存器386设为截断数量交织器360从地址数组中的任何单元处开始。
实现turbo解码器的常用方法是通过为组成解码器使用对数MAP的解码器。对数MAP解码器要求通过编码网格进行正向和反向迭代,它一般又要求turbo交织器既工作在反向又工作在正向。正向被定义为从线性地址0到最大要求的地址操作交织器。相反地,反向被定义为从最高线性地址到线性地址0运行交织器。可能以仅要求正向交织器操作的方式来实现基于对数MAP的turbo解码器,然而考虑到就附加临时存储来说这将是极其代价昂贵的。为了减少对数MAP解码器的状态度量存储,对数MAP解码器通常用滑动窗来实现。交织器便于滑动窗的使用,它不仅向后运行,而且能随机访问交织器数组。为此,本发明的交织器60被设计成既能正向运行又能反向运行。
为了在反向运行而使交织器算法不变,但双计算单元的输入被改变。与分别工作在input_address+address_offset(输入地址+地址偏置)和input_address+address_offset+1(输入地址+地址偏置+1)上的计算单元不同,双计算单元工作分别工作在  input_address+address_offset和input_address+address_offset-1上。这可由图6解码器400提供的正向反向信号的命令下,用第二加法器388和第二多路复用器90来实现,这在下面详细描述。该信号来自解码器的控制逻辑。即,解码器会通过它当前执行的操作性质确定它应该在正向还是在反向操作交织器。
此外,为了保持正确的截短计数(或地址偏置),由控制器382驱使地址偏置计数器34充当向下计数器,而非正向中的向上计数器。
简言之,本发明原理提供了由CDMA2000标准使用的LCS turbo交织器算法的唯一实现。Turbo交织器算法利用了CDMA2000交织器算法的巧妙特性来产生强有力的设计。
图6是结合了本发明原理的turbo解码器的说明性实现框图。Turbo解码器400是常规设计,除了按照本发明原理实现的交织器和去交织器之外。Turbo解码器400接收由编码器输出的五个信号(一般在信道上)并且实现带反馈的迭代过程,第一软输入软输出(SISO)解码器410借此接收数据流以及非交织的一致校验比特,并输出到交织器420。
在图6中,x0...xK-1是信息码元向量,y0 0...yK-1 0是来自第一编码器320的一致校验码元向量,而y0 1...yK-1 1是来自图4的turbo编码器310的第二编码器340的一致校验码元向量。此外,z0...zK-1是来自每个SISO解码器的先验信息向量,L0...LK-1是对数似然比向量,最后,u0...uK-1是已解码的数据比特向量。
接收到的经交织信号以及本地交织器420的输出为第二SISO解码器430的输入,后者具有通过硬判决单元450输出到第一去交织器440的输出及至第二去交织器460的输出。本地去交织器420、去交织器440和去交织器460的实现与turbo编码器310内所用的交织器360的实现相同。
Turbo解码器400每次解码一个编码器(320或340)的输出。SISO解码器410和430传递彼此间加权的误差以提供给下一个解码器先验指示,表示解码硬判决比特应该是什么。本质上,该过程是迭代的,因为每个步骤都为下一个解码器提供增涨的更多权重,从而帮助所执行的解码过程。因此,每个解码器410和430的工作在下一个解码步骤中被影响。
硬判决单元450用来把软输出码元转换成硬输出比特,这可由本领域的技术人员所理解并能用本领域常用的比较器来实现。硬判决单元450的输出被去交织,以提供解码器400的已解码数据比特向量输出。
这样,描述了一种新颖并改进了的turbo码交织器。本领域的技术人员可以理解,虽然这里公开的实施例用蜂窝电话系统的上下文来描述,然而本发明的特征也提供给任何形式的通信系统,包括,如卫星通信系统。本领域的技术人员还可以理解,这里描述的实施例可用于或编码数据或编码话音通信。还可以理解,上述说明中可能涉及的数据、指令、命令、信息、信号、比特、码元和码片最好由电压、电路、电磁波、磁场或其粒子、光场或其粒子、或它们的任意组合来表示。
本领域的技术人员可以理解,结合这里所描述的实施例来描述的各种说明性的逻辑块、模块和算法步骤的实现或执行可以用:数字信号处理器(DSP)、专用集成电路(ASIC)、离散门或晶体管逻辑、诸如寄存器和FIFO之类的离散硬件组件、执行一组固件指令的处理器、或者任意常规的可编程软件模块和处理器。处理器最好是微处理器,然而或者,处理器可以是任何常规的处理器、控制器、微控制器或状态机。软件模块可以驻留于RAM存储器、快闪(flash)存储器、寄存器、硬盘、或本领域中已知的任何其它形式的存储媒体中。
上述优选实施例的描述使本领域的技术人员能制造或使用本发明。这些实施例的各种修改对于本领域的技术人员来说是显而易见的,这里定义的一般原理可以被应用于其它实施例中而不使用创造能力。因此,本发明并不限于这里示出的实施例,而要符合与这里揭示的原理和新颖特征一致的最宽泛的范围。

Claims (17)

1.一种交织器,其特征在于包括:
第一装置,用于接收输入地址并且对其响应而在第一时钟周期期间计算第一顺序交织的地址;
第二装置,用于接收输入地址并且对其响应而在所述第一时钟周期期间计算第二顺序交织的地址;
第三装置,用于确定所述第一还是所述第二顺序交织的地址为无效并且对其响应而产生信号;以及
响应所述信号的第四装置,用于把所述第一或所述第二顺序交织的地址选择为所述第一时钟周期的输出交织地址。
2.如权利要求1所述的发明,其特征在于,所述第一装置包括用于实现下列表达式的装置:
A=bitrev(row)·2c+{(col+1)·c(i)}modC,
其中A是经交织的地址,“行”是输入线性地址的5个LSB,“列”是c个MSB,c是列数,而c(i)是查找表的输出,其中“i”是当前行数。
3.如权利要求2所述的发明,其特征在于,所述第二装置包括用于实现下列表达式的装置:
A=bitrev(row)·2c+{(col+1·c(i)}modC,
其中A是经交织的地址,“行”是5个LSB,“列”是输入线性地址的c个MSB,c是列数,而c(i)是查找表的输出,其中“i”是当前行数。
4.如权利要求1所述的发明,其特征在于,所述第三装置是阈值检测器。
5.如权利要求4所述的发明,其特征在于,所述阈值检测器包括比较器。
6.如权利要求1所述的发明,其特征在于,所述第四装置是多路复用器。
7.如权利要求6所述的发明,其特征在于,所述第一装置的输出为所述多路复用器提供第一输入,所述第二装置的输出为所述多路复用器提供第二输入,而所述第三装置的输出为所述多路复用器提供控制输入。
8.如权利要求1所述的发明,其特征在于还包括第五装置,用于响应方向控制信号而控制所述交织器关于所述输入地址在正向或反向上移动。
9.如权利要求1所述的发明,其特征在于还包括用于提供关于所述输入地址的地址偏置的装置。
10.一种交织器,其特征在于包括:
第一装置,用于接收输入地址并且对其响应而在第一时钟周期期间计算第一顺序交织的地址;
第二装置,用于接收输入地址并且对其响应而在所述第一时钟周期期间计算第二顺序交织的地址;
第三装置,用于确定所述第一还是所述第二顺序交织的地址为无效并且对其响应而产生信号;
响应所述信号的第四装置,用于把所述第一或所述第二顺序交织的地址选择为所述第一时钟周期的输出交织地址;
第五装置,用于响应方向控制信号而控制所述交织器关于所述输入地址在正向或反向上移动;以及
第六装置,用于提供关于所述输入地址的地址偏置。
11.如权利要求10所述的发明,其特征在于,所述第一装置包括用于实现下列表达式的装置:
A=bitrev(row)·2c+{(col+1)·c(i)}modC,
其中A是经交织的地址,“行”是5个LSB,“列”是输入线性地址的c个MSB,c是列数,而c(i)是查找表的输出,其中“i”是当前行数。
12.如权利要求11所述的发明,其特征在于,所述第二装置包括用于实现下列表达式的装置:
A=bitrev(row)·2c+{(col+1)·c(i)}modC
其中A是经交织的地址,“行”是5个LSB,“列”是输入线性地址的c个MSB,c是列数,而c(i)是查找表的输出,其中“i”是当前行数。
13.如权利要求10所述的发明,其特征在于,所述第三装置是阈值检测器。
14.如权利要求13所述的发明,其特征在于,所述阈值检测器包括比较器。
15.如权利要求10所述的发明,其特征在于,所述第四装置是多路复用器。
16.如权利要求15所述的发明,其特征在于,所述第一装置的输出为所述多路复用器提供第一输入,所述第二装置的输出为所述多路复用器提供第二输入,而所述第三装置的输出为所述多路复用器提供控制输入。
17.一种用于交织或去交织的方法,其特征在于包括下列步骤:
接收输入地址并且对其响应而在第一时钟周期期间计算第一顺序交织的地址;
接收输入地址并且对其响应而在所述第一时钟周期期间计算第二顺序交织的地址;
确定所述第一还是所述第二顺序交织的地址为无效并且对其响应而产生信号;以及
响应所述信号而把所述第一或所述第二顺序交织的地址选择为所述第一时钟周期的输出交织地址。
CNB028054792A 2001-02-23 2002-02-22 随机存取多向cdma2000 turbo编码交织器 Expired - Fee Related CN1286276C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/792,483 2001-02-23
US09/792,483 US6871303B2 (en) 1998-12-04 2001-02-23 Random-access multi-directional CDMA2000 turbo code interleaver

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNA2006101421802A Division CN1937473A (zh) 2001-02-23 2002-02-22 随机存取多向cdma2000 turbo编码交织器

Publications (2)

Publication Number Publication Date
CN1502168A true CN1502168A (zh) 2004-06-02
CN1286276C CN1286276C (zh) 2006-11-22

Family

ID=25157032

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB028054792A Expired - Fee Related CN1286276C (zh) 2001-02-23 2002-02-22 随机存取多向cdma2000 turbo编码交织器
CNA2006101421802A Pending CN1937473A (zh) 2001-02-23 2002-02-22 随机存取多向cdma2000 turbo编码交织器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNA2006101421802A Pending CN1937473A (zh) 2001-02-23 2002-02-22 随机存取多向cdma2000 turbo编码交织器

Country Status (9)

Country Link
US (3) US6871303B2 (zh)
EP (1) EP1374418A2 (zh)
JP (3) JP4191485B2 (zh)
KR (2) KR20100023962A (zh)
CN (2) CN1286276C (zh)
BR (1) BR0207522A (zh)
HK (1) HK1063245A1 (zh)
TW (1) TW584862B (zh)
WO (1) WO2002069506A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301393A (zh) * 2016-07-22 2017-01-04 西安空间无线电技术研究所 一种基于Turbo编码的交织地址快速计算方法
CN106899312A (zh) * 2017-02-15 2017-06-27 深圳思凯微电子有限公司 交织编解码方法及交织器
CN107408948A (zh) * 2014-09-29 2017-11-28 阿尔卡特朗讯 具有前向纠错和并行解码的光学相干接收器

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
US6999530B2 (en) * 2000-08-22 2006-02-14 Texas Instruments Incorporated Using SISO decoder feedback to produce symbol probabilities for use in wireless communications that utilize turbo coding and transmit diversity
US6938224B2 (en) * 2001-02-21 2005-08-30 Lucent Technologies Inc. Method for modeling noise emitted by digital circuits
CN1333531C (zh) * 2001-02-23 2007-08-22 皇家菲利浦电子有限公司 包含并联解码器的特播解码器系统
GB2373149B (en) * 2001-03-06 2004-07-07 Ubinetics Ltd Coding
JP4127757B2 (ja) * 2001-08-21 2008-07-30 株式会社エヌ・ティ・ティ・ドコモ 無線通信システム、通信端末装置、及びバースト信号送信方法
BR0302968A (pt) * 2002-02-06 2004-07-13 Samsung Electronics Co Ltd Intercalador e método de intercalação em um sistema de comunicação
US7082168B2 (en) * 2002-05-21 2006-07-25 Coffey John T Methods and apparatus for self-inverting turbo code interleaving with high separation and dispersion
KR100516586B1 (ko) * 2002-12-10 2005-09-22 삼성전자주식회사 부호 분할 다중 접속 이동 통신 시스템의 오류 정정 장치및 방법
DE10306302A1 (de) * 2003-02-14 2004-08-26 Infineon Technologies Ag Verfahren und Schaltung zur Adressgenerierung von Pseudo-Zufalls-Interleavern oder -Deinterleavern
WO2005027451A1 (en) * 2003-09-12 2005-03-24 Ems Technologies Canada, Ltd. Joint synchronizer and decoder
US7849377B2 (en) * 2003-12-22 2010-12-07 Koninklijke Philips Electronics N.V. SISO decoder with sub-block processing and sub-block based stopping criterion
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
KR101195679B1 (ko) * 2004-02-03 2012-10-30 넥스테스트 시스템즈 코포레이션 메모리 소자들을 테스트하고 프로그래밍하기 위한 방법 및 이를 위한 시스템
JP4408755B2 (ja) * 2004-06-28 2010-02-03 Necエレクトロニクス株式会社 デインタリーブ装置、移動通信端末及びデインタリーブ方法
KR100853497B1 (ko) * 2004-08-25 2008-08-21 삼성전자주식회사 터보 인터리빙 장치 및 그의 출력주소 발생 방법
EP1657845A3 (en) * 2004-11-10 2012-03-07 Alcatel Lucent Dynamic retransmission mode selector
US7542410B2 (en) 2004-12-06 2009-06-02 Intel Corporation Interleaver and associated methods
US7543197B2 (en) * 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
CN101151835A (zh) * 2005-03-29 2008-03-26 松下电器产业株式会社 多进多出发送装置、多进多出接收装置以及重发方法
US7613243B2 (en) 2005-04-12 2009-11-03 Samsung Electronics Co., Ltd. Interleaver and parser for OFDM MIMO systems
US7437650B2 (en) * 2005-04-12 2008-10-14 Agere Systems Inc. Pre-emptive interleaver address generator for turbo decoders
US7502982B2 (en) * 2005-05-18 2009-03-10 Seagate Technology Llc Iterative detector with ECC in channel domain
US7360147B2 (en) * 2005-05-18 2008-04-15 Seagate Technology Llc Second stage SOVA detector
US7395461B2 (en) * 2005-05-18 2008-07-01 Seagate Technology Llc Low complexity pseudo-random interleaver
US7512863B2 (en) * 2005-10-12 2009-03-31 Qualcomm Corporation Turbo code interleaver for low frame error rate
US7729438B2 (en) * 2005-12-01 2010-06-01 Samsung Electronics Co., Ltd. Interleaver design for IEEE 802.11n standard
US7660232B2 (en) 2005-12-20 2010-02-09 Samsung Electronics Co., Ltd. Interleaver design with column skip for IEEE 802.11n standard
US7859987B2 (en) 2005-12-20 2010-12-28 Samsung Electronic Co., Ltd. Interleaver for IEEE 802.11n standard
US7756004B2 (en) 2005-12-20 2010-07-13 Samsung Electronics Co., Ltd. Interleaver design with column swap and bit circulation for multiple convolutional encoder MIMO OFDM system
US7729447B2 (en) * 2005-12-22 2010-06-01 Samsung Electronics Co., Ltd. Interleaver design with multiple encoders for more than two transmit antennas in high throughput WLAN communication systems
US8082479B2 (en) 2006-02-02 2011-12-20 Qualcomm Incorporated Methods and apparatus for generating permutations
US7979781B2 (en) * 2006-11-10 2011-07-12 Samsung Electronics Co., Ltd. Method and system for performing Viterbi decoding using a reduced trellis memory
US8117514B2 (en) * 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
US8024644B2 (en) * 2006-11-14 2011-09-20 Via Telecom Co., Ltd. Communication signal decoding
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8065583B2 (en) * 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
JP5267883B2 (ja) * 2007-09-12 2013-08-21 日本電気株式会社 通信システム、送信装置、誤り訂正符号再送方法、通信プログラム
KR101531416B1 (ko) 2007-09-13 2015-06-24 옵티스 셀룰러 테크놀로지, 엘엘씨 상향링크 신호 전송 방법
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8751769B2 (en) * 2007-12-21 2014-06-10 Qualcomm Incorporated Efficient address generation for pruned interleavers and de-interleavers
KR100943908B1 (ko) 2008-02-19 2010-02-24 엘지전자 주식회사 Pdcch를 통한 제어 정보 송수신 방법
US20090245423A1 (en) * 2008-03-28 2009-10-01 Qualcomm Incorporated De-Interlever That Simultaneously Generates Multiple Reorder Indices
US8200733B1 (en) * 2008-04-15 2012-06-12 Freescale Semiconductor, Inc. Device having interleaving capabilities and a method for applying an interleaving function
US8281211B2 (en) * 2008-05-15 2012-10-02 Nokia Corporation System and method for relay coding
US7667628B2 (en) * 2008-06-23 2010-02-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Interleaver for scrambling and information word
DE102008029623A1 (de) 2008-06-23 2009-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver
EP2139120B1 (de) 2008-06-23 2019-01-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver
US8219782B2 (en) * 2008-09-18 2012-07-10 Xilinx, Inc. Address generation
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
CN101964692B (zh) * 2009-07-21 2014-05-28 中兴通讯股份有限公司 一种基于lte的turbo编码方法及系统
US8365051B2 (en) * 2010-05-04 2013-01-29 Intel Corporation Device, system and method of decoding wireless transmissions
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US9106265B2 (en) * 2011-11-04 2015-08-11 Silicon Laboratories Inc. Receive data flow path using a single FEC decoder
US9264754B2 (en) 2011-11-04 2016-02-16 Silicon Laboratories Inc. Packet synchronization receiver
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9425826B2 (en) * 2012-11-02 2016-08-23 Blackberry Limited Interleaver employing quotient-remainder reordering
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9124477B2 (en) * 2013-08-28 2015-09-01 Broadcom Corporation Frequency interleave within communication systems
US20170262367A1 (en) * 2016-03-11 2017-09-14 Qualcomm Incorporated Multi-rank collision reduction in a hybrid parallel-serial memory system
TWI589125B (zh) * 2016-08-26 2017-06-21 國立交通大學 渦輪編碼的數位資料之去穿刺方法與裝置及渦輪解碼器系統
CN111099038B (zh) * 2019-12-19 2021-06-01 武汉航空仪表有限责任公司 一种直升机主桨叶方位角检测装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
JP3077944B2 (ja) 1990-11-28 2000-08-21 シャープ株式会社 信号再生装置
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
US5241563A (en) 1992-08-10 1993-08-31 General Instrument Corporation Method and apparatus for communicating interleaved data
JPH06216882A (ja) 1993-01-19 1994-08-05 Matsushita Electric Ind Co Ltd 誤り訂正送信装置及び受信装置
US5633881A (en) * 1993-02-22 1997-05-27 Qualcomm Incorporated Trellis encoder and decoder based upon punctured rate 1/2 convolutional codes
US5668820A (en) 1995-01-23 1997-09-16 Ericsson Inc. Digital communication system having a punctured convolutional coding system and method
EP2302809B1 (en) 1995-02-01 2013-06-05 Sony Corporation Multi-channel transmission with interlacing through in-place addressing of RAM memory
WO1997007451A2 (en) 1995-08-16 1997-02-27 Microunity Systems Engineering, Inc. Method and system for implementing data manipulation operations
JPH09101878A (ja) 1995-10-03 1997-04-15 Mitsubishi Electric Corp 乱数発生回路
US6205190B1 (en) 1996-04-29 2001-03-20 Qualcomm Inc. System and method for reducing interference generated by a CDMA communications device
US5949796A (en) * 1996-06-19 1999-09-07 Kumar; Derek D. In-band on-channel digital broadcasting method and system
JPH1065654A (ja) 1996-08-19 1998-03-06 Oki Electric Ind Co Ltd データ伝送誤り低減方法及びその装置
US5983384A (en) 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
JPH10308676A (ja) 1997-05-09 1998-11-17 Toshiba Corp インターリーブ装置およびデインターリーブ装置
US5907582A (en) * 1997-08-11 1999-05-25 Orbital Sciences Corporation System for turbo-coded satellite digital audio broadcasting
US6430722B1 (en) * 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US5978365A (en) * 1998-07-07 1999-11-02 Orbital Sciences Corporation Communications system handoff operation combining turbo coding and soft handoff techniques
US6014411A (en) * 1998-10-29 2000-01-11 The Aerospace Corporation Repetitive turbo coding communication method
US6304991B1 (en) 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
US6625234B1 (en) * 1998-12-10 2003-09-23 Nortel Networks Limited Efficient implementations of proposed turbo code interleavers for third generation code division multiple access
KR100346170B1 (ko) 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
KR100350459B1 (ko) 1998-12-26 2002-12-26 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
WO2000052834A1 (fr) 1999-02-26 2000-09-08 Fujitsu Limited Turbodecodeur et appareil d'entrelacement / desentrelacement
JP3593647B2 (ja) * 1999-03-19 2004-11-24 富士通株式会社 マルチステージ・インタリーブ・パターン生成器
US6314534B1 (en) * 1999-03-31 2001-11-06 Qualcomm Incorporated Generalized address generation for bit reversed random interleaving
KR100480286B1 (ko) * 1999-04-02 2005-04-06 삼성전자주식회사 터보 인터리빙 어드레스 발생 장치 및 방법
CN101079641B (zh) * 1999-04-06 2010-10-13 高通股份有限公司 二维交织设备及方法
KR100526512B1 (ko) * 1999-05-20 2005-11-08 삼성전자주식회사 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법
JP3246484B2 (ja) 1999-07-07 2002-01-15 日本電気株式会社 ターボデコーダ

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107408948A (zh) * 2014-09-29 2017-11-28 阿尔卡特朗讯 具有前向纠错和并行解码的光学相干接收器
CN107408948B (zh) * 2014-09-29 2020-11-20 阿尔卡特朗讯 具有前向纠错和并行解码的光学相干接收器
CN106301393A (zh) * 2016-07-22 2017-01-04 西安空间无线电技术研究所 一种基于Turbo编码的交织地址快速计算方法
CN106301393B (zh) * 2016-07-22 2019-09-06 西安空间无线电技术研究所 一种基于Turbo编码的交织地址快速计算方法
CN106899312A (zh) * 2017-02-15 2017-06-27 深圳思凯微电子有限公司 交织编解码方法及交织器
CN106899312B (zh) * 2017-02-15 2020-03-20 深圳思凯微电子有限公司 交织编解码方法及交织器

Also Published As

Publication number Publication date
US20100064197A1 (en) 2010-03-11
US6871303B2 (en) 2005-03-22
KR20100023962A (ko) 2010-03-04
CN1937473A (zh) 2007-03-28
HK1063245A1 (en) 2004-12-17
US7523377B2 (en) 2009-04-21
JP5133760B2 (ja) 2013-01-30
JP2005505947A (ja) 2005-02-24
US20050028065A1 (en) 2005-02-03
CN1286276C (zh) 2006-11-22
TW584862B (en) 2004-04-21
US20020046371A1 (en) 2002-04-18
US8484532B2 (en) 2013-07-09
KR100963384B1 (ko) 2010-06-14
JP4191485B2 (ja) 2008-12-03
EP1374418A2 (en) 2004-01-02
JP2008187738A (ja) 2008-08-14
BR0207522A (pt) 2005-07-19
WO2002069506A3 (en) 2003-04-03
KR20030077644A (ko) 2003-10-01
JP2012157030A (ja) 2012-08-16
WO2002069506A2 (en) 2002-09-06

Similar Documents

Publication Publication Date Title
CN1286276C (zh) 随机存取多向cdma2000 turbo编码交织器
CN1202625C (zh) 利用线性同余序列的turbo码交织器
CN1256812C (zh) 透平编码器和信道编码方法
CN1136660C (zh) 串行链接卷积码编码器及其中的交错器和交错方法
CN1178399C (zh) 高度并行最大后验概率(map)解码器
CN1529943A (zh) Turbo解码器的缓冲器结构
CN1494770A (zh) 适于turbo解码器的交错器
JP5129216B2 (ja) マップ・デコーダのためのメモリ・アーキテクチャ
CN1246987C (zh) 在资源约束条件下编码数据块尺寸最佳化的方法
CN101039119A (zh) 编码与解码的方法及系统
CN1483246A (zh) 空间高效增强解码器
CN1140148C (zh) 在移动通信系统中执行特博解码的方法
US8769372B2 (en) System and method for assigning code blocks to constituent decoder units in a turbo decoding system having parallel decoding units

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1063245

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061122

Termination date: 20160222