对数据比特进行并行编码的方法和装置转让专利

申请号 : CN02822804.9

文献号 : CN1589533B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·S·萨尔维M·A·海华德

申请人 : 高通股份有限公司

摘要 :

能对多个数据比特并行进行编码的串接编码器包括级联耦合的第一(外部)编码器、存储器以及第二(内部)编码器。第一编码器用第一编码方案接收并对M个数据比特进行并行编码以生成MR个编码比特。存储器接收并存储来自第一编码器的MR编码比特的未被穿刺掉的比特。第二编码器根据第二编码方案接收并对N个编码进行并行编码以生成编码后的数据。M和N可以是任何值(例如M≥8,N≥4)。每个编码器可以是(例如码率1/2)的卷积编码器,它实现特定的多项式生成器,且可以用一个或多个查找表、状态机或一些其它的设计实现。

权利要求 :

1.一种用于对多个数据比特进行并行编码的卷积编码器,其特征在于,包括:状态机,用于并行地接收多个M个数据比特,所述状态机具有用于提供表示状态机之下一状态的值的集合的多个并行寄存器,其中所述下一状态是所述M个数据比特和来自所述多个并行寄存器的表示状态机之当前状态的值的集合的函数:以及输出生成器,其耦合到所述状态机,并用于接收所述M个数据比特以及来自所述多个并行寄存器的表示状态机之当前状态的所述值的集合,并且响应于此而产生多个MR个编码比特。

2.如权利要求1所述的卷积编码器,其特征在于,所述输出生成器包括:第一输出生成器,用于接收所述M个数据比特和表示当前状态的所述值的集合,并据此生成第一组MR个编码比特;以及第二输出生成器,用于接收所述M个数据比特和表示当前状态的所述值的集合,并据此生成第二组MR个编码比特;以及其中所述第一组MR个编码比特被选用于第一编码阶段,所述第二组MR编码比特被选用于第二编码阶段,并且所述状态机被设置为对于第二编码阶段已知的状态。

3.如权利要求2所述的卷积编码器,其特征在于,所述已知的状态由零值的集合来定义。

4.如权利要求1所述的卷积编码器,其特征在于,所述状态机用于实现特定的多项式生成器矩阵。

5.如权利要求1所述的卷积编码器,其特征在于,所述状态机包括一组逻辑元件,每个逻辑元件耦合到所述M个数据比特中被选定的比特以及表示当前状态的所述值的集合中被选定的值,所述逻辑元件各自具有与所述寄存器中的一个相耦合的输出。

6.如权利要求1所述的卷积编码器,其特征在于,所述状态机和所述输出生成器被设计成接收八个或更多数据比特并且并行地对其进行并行编码。

7.一种串接卷积编码器,其特征在于,包括:

第一编码器,用于接收多个并行的数据比特,所述第一编码器具有多个并行寄存器,所述多个并行寄存器用于根据所述数据比特产生第一组编码比特;以及第二编码器,其具有多个并行寄存器,所述多个并行寄存器用于根据来自第一组编码比特的未被穿刺掉的编码比特而产生第二组编码比特。

8.如权利要求7所述的串接卷积编码器,其特征在于,所述第一和第二编码器的每个都用于实现一多项式生成器矩阵。

9.如权利要求7所述的串接卷积编码器,其特征在于,所述第一编码器还包括被配置成作用于所述并行数据比特上并将结果应用于所述第一编码器的寄存器的输入逻辑,第二编码器还包括被配置成作用于来自第一组编码比特的所述未被穿刺掉的编码比特上并将结果应用于所述第二编码器的寄存器的输入逻辑。

10.如权利要求7所述的串接卷积编码器,其特征在于,所述第一编码器还包括用于从所述第一编码器的寄存器输出产生所述第一组编码比特的输出逻辑,所述第二编码器还包括用于从所述第二编码器的寄存器输出产生第二组编码比特的输出逻辑。

11.如权利要求7所述的串接卷积编码器,其特征在于,还包括耦合在所述第一和第二编码器之间的交织器。

12.如权利要求11所述的串接卷积编码器,其特征在于,所述交织器包括存储器,所述存储器被配置成将来自第一组编码比特的所述未被穿刺掉的编码比特保存到所述存储器中的顺序行中,并从所述存储器中的交错行将所述未被穿刺掉的编码比特应用于所述第二编码器。

13.如权利要求12所述的串接卷积编码器,其特征在于,所述交织器还包括耦合在所述存储器和所述第二编码器之间的多个多路复用器,所述多路复用器被配置成选择所述存储器中的交错行,所述未被穿刺掉的编码比特是从所述交错行被应用于所述第二编码器的。

14.一种数据编码器,包括:

输入接口,用于在外卷积编码操作期间提供多个数据比特;

卷积编码器,其具有用于接收来自所述输入接口的所述多个数据比特的多个并行输入,以及用于在所述外卷积编码操作期间根据来自所述输入接口的所述多个数据比特而产生第一组编码比特的多个并行寄存器;

存储器,用于在所述外卷积编码操作期间保存来自所述卷积编码器的第一组编码比特的未被穿刺掉的编码比特,并且在内卷积编码操作期间将第一组编码比特的所述未被穿刺掉的编码比特提供给所述卷积编码器的所述多个并行输入,其中所述卷积编码器的所述多个并行寄存器还在所述内卷积编码操作期间根据第一组编码比特的所述未被穿刺掉的编码比特而产生第二组编码比特;以及输出接口,用于在所述内卷积编码操作期间从所述卷积编码器接收第二组编码比特的未被穿刺掉的编码比特,并且输出所述第二组编码比特的未被穿刺掉的编码比特作为经编码的数据。

15.如权利要求14所述的数据编码器,其特征在于,还包括:

地址生成器,用于产生用于对所述存储器进行写和读操作的地址。

16.一种串接卷积编码方法,其特征在于,包括:

接收多个并行数据比特;

使用多个并行寄存器,根据所述数据比特产生第一组编码比特;以及

使用多个并行寄存器,从来自所述第一组编码比特的未被穿刺掉的编码比特,产生第二组编码比特。

17.如权利要求16所述的方法,其特征在于,用于产生所述第一和第二组编码比特的所述步骤还包括对相同的并行寄存器进行时间共享。

18.如权利要求16所述的方法,其特征在于,用于产生第一组编码比特的并行寄存器不同于用于产生第二组编码比特的并行寄存器。

19.如权利要求16所述的方法,其特征在于,用于产生第一和第二组编码比特的所述步骤各自包括实现一多项式生成器矩阵。

20.如权利要求16所述的方法,其特征在于,用于产生第一组编码比特的所述步骤还包括用输入逻辑作用于所述数据比特上,并将结果应用到用于产生所述第一组编码比特的寄存器上,用于产生第二组编码比特的所述步骤还包括用输入逻辑作用于来自第一组编码比特的所述未被穿刺掉的编码比特上,并将结果应用到用于产生所述第二组编码比特的寄存器上。

21.如权利要求16所述的方法,其特征在于,用于产生第一组编码比特的所述步骤还包括用输出逻辑作用在用于产生所述第一组编码比特的寄存器输出上,用于产生第二组编码比特的所述步骤还包括用输出逻辑作用在用于产生所述第二组编码比特的寄存器输出上。

22.如权利要求16所述的方法,其特征在于,还包括对来自第一组编码比特的所述未被穿刺掉的编码比特进行交织,所述第二组编码比特是从经交织的未被穿刺掉的编码比特产生的。

23.如权利要求22所述的方法,其特征在于,用于对来自第一组编码比特的所述未被穿刺掉的编码比特进行交织的所述步骤包括将来自第一组编码比特的所述未被穿刺掉的编码比特保存在存储器中的顺序行中,并且从交错行读取保存在所述存储器中的所述未被穿刺掉的编码比特。

24.如权利要求23所述的方法,其特征在于,用于从交错行读取保存在存储器中的所述未被穿刺掉的编码比特的所述步骤包括:在存储器中的所述行之间选择性地多路复用。

25.一种用于串接卷积编码的方法,其特征在于,包括:

接收多个并行数据比特;

使用多个并行寄存器,根据所述数据比特产生第一组编码比特;以及

使用多个并行寄存器,从来自所述第一组编码比特的未被穿刺掉的编码比特,产生第二组编码比特。

26.一种处理器,用于执行用于串接卷积编码的指令,其特征在于,所述指令包括:用于接收多个并行数据比特的指令;

用于使用多个并行寄存器,根据所述数据比特来产生第一组编码比特的指令;以及用于使用多个并行寄存器,从来自所述第一组编码比特的未被穿刺掉的编码比特来产生第二组编码比特的指令。

27.一种用于串接卷积编码的设备,其特征在于,包括:

用于接收多个并行数据比特的装置;

用于使用多个并行寄存器,根据所述数据比特来产生第一组编码比特的装置;以及用于使用多个并行寄存器,从来自所述第一组编码比特的未被穿刺掉的编码比特来产生第二组编码比特的装置。

说明书 :

发明领域

本发明涉及数据通信,尤其涉及对多个数据比特进行并行编码(例如使用多端口存储器)以大大减少与编码相关联的延时。

相关领域的描述

在一般的数据通信系统内,数据在发射机单元经处理、经调制并经调整以生成已调信号,然后将已调信号发送到一个或多个接收机单元。数据处理可能包括例如将数据格式化成特定的帧格式,用特定的编码方案对格式化后的数据进行编码以提供在接收机单元处的差错检测和/或纠正,将编码后的数据信道化(即覆盖),然后在系统带宽上将信道化的数据扩展。数据处理一般有系统或实现的标准定义。

在接收机单元,发射的信号经接收、经调整、经解调并经数字化处理以恢复发射的数据。接收机单元处的处理与发射机单元处的处理互补,可能包括例如对接收到的采样进行解扩展、对解扩展后的采样进行解覆盖,并对解覆盖后的码元进行解码以恢复发射的数据。

纠正传输差错的能力增强了数据传输的可靠性。许多数字通信系统使用卷积码或Turbo码以提供在接收机单元处的差错纠正能力。卷积码对串行数据进行操作,即每次一个或几个比特。有各种有用的卷积码,以及多种算法用于对接收到的编码后的信息序列解码以恢复原始数据。Turbo编码特别是一种并行串接卷积编码方案。串接码是两个或多个码的级联组合并用于提供附加的差错纠正能力。对于串接码,编码级间的编码比特可能经交织(即重新排序)以提供时间分集,这可以进一步改善性能。编码比特的帧或整个分组一般在实现重新排序前经存储。经重新排序的编码比特然后由下一编码级经串行检取,并进行编码。

一般,卷积和Turbo编码对输入比特流串行地实现。对每个时钟周期,提供给编码器一个数据比特,根据编码器的编码速率生成两个或多个编码比特。一些编码比特然后可能被穿刺(即删除)以获得其它编码速率的编码比特。

数字多址通信系统一般在分组和帧内发送数据,使得能在活动用户间有效地共享系统资源。对于不能容忍长延时的服务(例如语音、视频),分组被选择为短持续时间的(例如10毫秒),且相应地选择编码使其处理延时较短。然而,为改善编码效率,最好能对较大大小的分组进行处理和编码,在使用对数据串行编码的常规技术是会导致较长的处理延时。较长的处理延时可能不利地影响通信系统的性能。例如,根据通信链路的条件,特定的用户或数据速率可能被选用与特定的数据传输。如果处理延时过分地长,则链路条件可能在数据传输时间内改变,从而改变性能或使得性能恶化。

可见,很希望有一种用于有效地对数据编码且处理延时较短的技术。

发明概述

根据一个方面,编码器能并行地对多个比特进行编码以大大减少编码时间.两个或多个编码器可以串行地串接在一起以形成串接的编码器,诸如Turbo编码器一般用于CDMA通信系统内.通过将M个比特并行地用第一(外部)编码器以及对N个比特并行地用第二(内部)编码器进行编码,可以大大减少串接编码器的总体编码延时.交织器一般耦合在第一和第二编码器之间并支持并行编码,它能接收多个编码比特用于进行写操作,并提供多个编码比特进行读操作.

一实施例提供了串接编码器用于并行地对多个数据比特进行编码。串接的编码器包括级联耦合的第一(外部)编码器、存储器、第二(内部)编码器。第一编码器根据第一编码方案接收并对M个数据比特进行并行编码,生成MR个编码比特。存储器接收并存储来自第一编码器的未被穿刺掉(即未被删除)的MR个编码比特。第二编码器根据第二编码方案接收并对N个编码比特进行并行编码以生成编码后数据。M和N可以是任意值。例如,M可以是八或更多,N可以是四或更多。

第一和第二编码器的每个可以是卷积编码器,它实现特定的多项式生成器矩阵(例如速率为1/2的卷积码)。每个编码器还可以用一个或多个查询表、状态机或其它设计实现。为了减少存储器要求,在对另一分组开始编码前,编码可以由编码器为特定的分组实现并完成。为了减少处理延时,第二编码器可以对一个分组进行编码,而同时第二编码器对另一分组进行编码(即流水线编码)。

存储器可以用带有P个端口(P>1)的多端口存储器、单个存储器单元或多个存储器单元实现。存储器可以设计成并行的存储W个码字用于写操作,以及并行地提供R个码字进行读操作,每个码字包括特定数量的编码比特(例如八)。存储器可以用于提供存储在存储器内的编码比特的交织。例如,W个码字可以通过写操作被存储到存储器内连续的行内,R个码字可以通过读操作从存储器经排列的行中检取。

串接的编码器进一步还可以包括N个多路复用器的集合,多路复用器用于并行地提供N个编码比特给第二编码器。每个多路复用器从存储器接收相应的码字,在接收到的码字内选择一个编码比特,并将该选择的比特提供给第二编码器。

另一实施例提供了卷积编码器,用于并行地对多个数据比特进行编码。卷积编码器包括耦合到输出生成器的状态机。状态机并行接收M个数据比特,并提供指明状态机下一状态的值的集合。下一状态是M个数据比特和状态机当前状态的函数。输出生成器还接收M个数据比特和当前状态,并响应于此生成MR个编码比特。M和MR可以是任何大于一的数(例如M≥8,MR≥16)。

状态机一般实现特定的多项式生成器矩阵,且可以用耦合到寄存器集合的一逻辑元件集合实现(例如门)。每个逻辑元件耦合到M个数据比特的选定比特和当前状态机值上以实现状态机的一个比特的特定逻辑功能。寄存器存储来自逻辑元件的输出值,且寄存器输出包括状态机的当前状态。

为对数据分组编码,输出生成器可能包括第一和第二输出生成器。第一输出生成器接收M个数据比特和当前状态,并在第一编码阶段(例如数据)对此响应生成MR个编码比特。第二输出生成器还接收M个数据比特以及当前状态,并在第二编码阶段(例如码尾)对此响应生成MR个编码比特。选择来自第一或第二输出生成器的编码比特,这取决于执行的编码阶段。状态机在第二编码阶段一般被设定为已知状态(例如全零)。

但另一实施例提供了用于并行对多个比特进行编码的数据编码器.数据编码器包括输入接口、多比特编码器、存储器以及输出接口.输入接口接收M个数据比特并将接收到的比特提供给多比特编码器.多比特编码器可以被选择用于接收并对M个数据比特并行编码以生成MR编码比特,或接收并对N个编码比特并行地进行编码以生成NR个编码比特.存储器存储来自多比特编码器的MR个编码比特的未被穿刺掉的比特,且在引导下将N个编码比特提供给多比特编码器.输出接口从多比特编码器接收NR个编码比特,并将NR个编码比特的未被穿刺掉的比特作为编码后数据提供.数据编码器一般进一步包括地址生成器,它生成用于进行存储器读写操作的地址.

另一实施例提供了发射机单元用于通信系统(例如CDMA系统)。发射机单元包括编码器、调制器以及级联耦合的发射机。编码器根据第一编码方案接收并对M个数据比特并行地进行编码以生成MR个编码比特,存储MR个编码比特未被穿刺掉的比特,对特定的分组的编码比特进行交织,根据第二编码方案对N个编码比特接收并进行编码以生成NR个编码比特,并将NR个编码比特未被穿刺掉的比特作为编码后的数据提供。调制器接收并用特定的调制方案对编码后的数据进行调制,以生成已调数据。且发射机接收并处理已调数据以生成适合传输的已调信号。编码器可以设计成实现Turbo编码或串接码。

另一实施例提供了实现多个数据比特并行串接编码的方法。根据该方法,根据第一编码方案接收M个数据比特并经并行编码,以生成MR个编码比特。可能用特定的穿刺方案截去MR个编码比特的零个或多个比特,未被穿刺掉的编码比特存储在存储器内。在合适的时间,从存储器检取N个编码比特,并根据第二编码方案经并行地编码以生成编码后的数据。为了效率以及减少延时,未被穿刺掉的编码比特的W个码字可能同时写入存储器的W个端口,编码比特的R个码字可能同时从存储器的R个端口读出。为提供交织,W个码字经写操作可能被存储入存储器内的连续行,而R个码字可以由读操作从存储器内的经排列的行中检取。

本发明的其它方面和实施例在以下描述。

附图的简要描述

通过下面提出的结合附图的详细描述,本发明的特征、性质和优点将变得更加明显,附图中相同的符号具有相同的标识,其中:

图1是通信系统的框图;

图2是编码器的框图,该编码器可以用来实现本发明的一些实施例;

图3是根据一实施例实现多项式生成器矩阵的特定集合的串接编码器图;

图4是根据一实施例用于并行地对多个数据比特进行编码的卷积编码器框图;

图5A和5B是卷积编码器的示意图,该编码器实现特定的多项式生成器矩阵并根据各个实施例对八个数据比特进行并行编码。

图6是卷积编码器的一实施例的示意图,该编码器实现另一特定多项式生成器矩阵并对四个编码比特并行地进行编码;

图7A是交织器的图例;

图7B和7C相应地是根据各个实施例的外卷积编码器和不带有和带有穿刺的交织器间的接口的图例;

图8是根据一实施例的编码器的框图;

图9是根据一实施例的实现多个数据比特并行串接编码的方法的流程图。

特定实施例的详细描述

图1是通信系统100的实施例的简化框图,其中可以实现本发明的各个方面。在发射机单元110处发送话务数据,一般是以分组或帧的形式,从数据源112发送到编码器114,编码器使用特定的编码方案对数据进行格式化和编码。编码器114一般进一步实现编码比特的交织(即重新排序)。调制器(MOD)116然后对编码后的数据进行接收、信道化(即覆盖)并扩展以生成然后转换成一个或多个模拟信号的码元。模拟信号由发射机(TMTR)118经滤波、(正交)调制、放大并经上变频以生成已调信号,该信号然后通过天线120发送到一个或多个接收机单元。

在接收机单元130处,发送的信号然后由天线132接收并提供给接收机(RCVR)134。在接收机134内,接收到的信号经放大、滤波、下变频、正交解调并经数字化以提供采样。采样经解扩展、解覆盖并由解调器(DEMOD)136进行解调以生成已解调码元。解码器138然后对已解调码元进行解码并(可能)重新安排已解码的数据以恢复发送的数据。解调器136和解码器138实现的处理是与发射机单元110处实现的处理是互补的。恢复的数据然后提供给数据宿140。

上述的信号处理支持单向的语音、视频、分组数据、消息和其它类型的通信的传输。双向通信系统支持两向数据传输。然而,其它方向上的信号处理在图1内为简洁之故未示出。

通信系统100可以是码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如GSM系统)、频分多址(FDMA)通信系统或其它多址通信系统,这些通信系统支持在陆地串路上的用户间的语音和数据通信。

在多址通信系统内使用CDMA技术在美国专利号4901307内和5103459内有揭示,前者题为“SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEMUSING SATELLITE OR TERRESTRIAL REPEATERS”,后者题为“SYSTEM AND METHODFOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEPHONE SYSTEM”。另一特定的CDMA系统在美国专利序列号08963386内有揭示,题为“METHOD ANDAPPARATUS FOR HIGH RATE PACKET DATA TRANSMISSION”,提交于1997年11月3日(在此称为HDR系统)。这些专利和专利申请转让给本发明的受让人,在此引入作为参考。

CDMA系统一般设计成符合一个或多个标准,诸如“TIA/EIA-95-B MobileStation-Base Station Compatibility Standard for Dual-Mode WidebandSpread Spectrum Cellular System”(此后称为IS-95标准),“TIA/EIA-98-CRecommended Minimum Standard for Dual-Mode Wideband Spread SpectrumCellular Mobile Station”(此后称为IS-98标准),由“3rd GenerationPartnership Project”(3GPP)提供的标准,体现在一组文档内包括Nos.3G TS25.211、3G TS 25.211、3G TS 25.212、3G TS 25.213以及3G TS 25.214(此后称为W-CDMA标准),以及“TR-45.5 Physical Layer Standard forcdma2000 Spread Spectrum Systems”(此后称为cdma2000标准)。新的CDMA标准在连续地被提出并投入使用。这些CDMA标准在此引入作为参考。

图2是编码器200的框图,该编码器可以被设计成实现本发明的一些实施例.编码器200可以用于图1的编码器.在该实施例中,编码器200实现串接编码且包括级联耦合的外卷积编码器212、交织器214和内卷积编码器216.外卷积编码器212接收并对输入数据进行卷积编码以生成编码比特.这些比特被提供给交织器214存储.一旦在交织器214内存储了整个分组的编码比特,则检取编码比特并提供给内卷积编码器216.为实现交织,编码比特读出的顺序不同于比特写入交织器214的顺序.外卷积编码器212接收并对编码比特实现卷积编码以生成编码后的数据,这些数据然后提供给接着的处理阶段.

常规的卷积编码器接收并对数据串行编码,每次一比特(例如每时钟周期)。对于用大分组发送数据的通信系统而言,数据的串行编码会导致长的处理延时。而且,对于有多个级联耦合的卷积编码器组成的串接编码器,处理延时会很长,特别是如果外和内卷积编码器同时串行编码。

在一方面,卷积编码器能接收并对多个(M)比特进行并行编码。该能力使得卷积编码器能大致以常规卷积编码器需要的时间的1/M的时间量内对数据分组进行编码。当单个卷积编码器并行处理比特时,该优势在串接编码器情况下更为明显(例如Turbo编码器)。

根据另一方面,交织器能够并行地存储并提供多个数据比特。交织器可能使用例如多端口存储器实现。当与在此描述的卷积编码器一起使用时,交织器还能减少处理延时,因为数据可以在一小部分时间内从交织器进行读出和写入。

为简明起见,现在描述一实施例,用于在前述的美国专利申请序列号08963386内描述的通信系统(HDR系统)内的下行数据传输。HDR系统使用串接编码,它包括外卷积编码、交织和内卷积编码。HDR系统还定义了带有在表1内列出的特性的两种分组格式。

表1

  参数   分组格式1   分组格式2   单位   总比特/分组   1024   2048   比特   外卷积编码器   输入数据比特/分组   1018   2042   比特   码尾比特/分组   4   4   比特   外码率   1/2   2/3   外码穿刺模式   (1111)   (1011)   输出编码比特/分组   2044   3069   比特   交织器深度   2048   3072   比特   内卷积编码器

  参数   分组格式1   分组格式2   单位   输入编码比特/分组   2044   3069   比特   码尾比特/分组   4   3   比特   内部码率   1/2   3/4   内码穿刺模式   (111111)   (111001)   输出编码比特/分组   4096   4096   比特   总码率   1/4   1/2

在HDR系统内,外卷积编码器实现由以下多项式生成器矩阵定义的速率1/2的卷积编码:

GO(x)=[1,x4+x2+x+1x4+x3+1]公式(1)

HDR系统内的内卷积编码器实现由以下多项式生成器矩阵定义的速率1/2的卷积编码:

GI(x)=[1,x2+x+1x+1]公式(2)

图3是编码器300的图例,该编码器实现方程(1)和(2)定义的内外卷积码。数据比特u提供给外卷积编码器310,它实现方程(1)并生成两个输出yoa和yob。在编码器310内,数据比特u被提供给加法器312,它进一步寄存器314a到314d(这用于实现延时集合)级联耦合。来自加法器312和寄存器314A、314B和314D的输出由加法器316A、316B和316C相加以实现方程(1)内表示的多项式生成器矩阵内的第二元素的分子。来自寄存器314C和314D的输出由加法器318相加并提供给加法器312以实现方程(1)内的第二元素的分母。输入数据比特u作为第一输出yoa提供给,且来自加法器316c的输出包括第二输出yob。

外卷积编码器310内的输出yoa和yob可以被穿刺(图3内简洁之故未示出)。未被穿刺掉的编码比特然后被提供给交织器330并被重新排序。经重新排序的编码比特v然后提供给内卷积编码器340,它实现方程(2)并生成两个输出yia和yib。在编码器340内,编码比特v提供给与寄存器344A和344B级联耦合的加法器342。来自加法器342和寄存器344A和344B的输出由加法器346A和346B相加以实现方程(2)内表示的多项式生成器矩阵内的第二元素的分子。来自寄存器344A的输出被提供给加法器342以实现方程(2)内的第二元素的分母。输入编码比特v作为第一输出yia提供,来自加法器346B的输出包括第二输出yib。

一般,数据比特u被串行地提供给编码器310,且编码比特v还被串行地提供给编码器340.对每个输入数据比特,外卷积编码器310生成两个编码比特.交织器330接收并存储编码比特,并将编码比特串行地提供给内卷积编码器340.串行方式的比特编码导致长处理延时.

一个实施例的卷积编码器能并行地地多个比特进行编码以大大减少编码延时。对每个时钟周期,多个(例如M)数据比特可以被接收并经编码以生成多个编码比特。对于速率1/2编码器,为M数据比特生成2M编码比特。M可以被选为任何数,诸如例如4、8、16、32等。该种卷积编码器的多种另外的实施例在以下描述。

多个数字通信系统,诸如HDR系统发送分组形式的数据。分组内的比特数(即分组大小)是根据多个准则选择的,诸如例如数据率、要发送的数据量、处理延时要求等。为了使得接收机单元处的解码器能在每个分组的开始以已知的状态开始,因为这样缩短了解码时间并改善了性能,所以编码器在每个分组开始时被初始化为已知状态(例如全零)。初始化是通过在先前的分组的末尾插入一码尾比特集合而实现的。选择码尾比特使得编码器被设定为已知状态。

在一实施例中,示例实施例的卷积编码器用查询表实现。参考图3,外卷积编码器310可能被视作带有由寄存器314A到314D的输出定义的4比特状态的状态机。为了生成查询表的内容,在时间索引n处的M个输入数据比特可以由向量Un表示,2M个编码比特可以由向量Yn表示,且当前的编码器状态可以由向量Xn表示。编码器的下一状态Xn+1和编码器输出向量Yn可以表示为:

数据               码尾

Xn+1=f(Xn,Un)    Xn+1=0           公式(3)

Yn=g1(Xn,Un)     Yn=g2(Xn,Un)    公式(4)

方程(3)和(4)的每个提供了一个在输入是数据时要使用的一个方程,和在编码器输入包括码尾比特时的另一方程。

方程(3)和(4)可以对所有可能的输入数据比特和编码器状态的组合进行计算。例如对于方程(4),输出编码比特可以为输入向量Un=0...00、编码器状态Xn=0...00、输入向量Un=0...01和编码器状态为Xn=0...00等以及输入向量Un=1...11以及编码器状态Xn=0...00而计算。输出编码比特然后对所有输入向量Un和编码器状态Xn=0...01的可能组合进行计算。过程继续直到计算了所有的输入向量和编码器状态的组合。方程(3)还可能以类似的方式经计算。

方程(3)和(4)的计算的结果可以被存储入实现查询表的存储器。要求的存储器大小取决于要并行编码的数据比特的数目以及实现的特定多项式生成器矩阵。例如,如果用方程(1)内表示的卷积编码并行进行八数据比特的编码,则可以使用12个地址比特和20个数据比特大小的存储器(即4096x20)。12比特地址包括8个输入数据比特和当前编码器状态的4比特。20比特输出包括16编码比特和下一编码器状态的4比特。

一旦合适地定义了存储器,输入数据向量Un和当前编码器状态Xn可以提供给存储器的地址输入,存储器然后提供输出向量Yn和下一编码器状态Xn+1。下一编码器状态Xn+1经合适地存储用于与下一输入数据向量Un+1一起使用。

在另一实施例中,卷积编码器用状态机实现.编码器状态和输出可以表示为方程(3)和(4)示出的.方程(3)和(4)的每个可以经递归地求解,且产生的方程然后在硬件、软件或两者的组合内实现.编码器的递归方程可能如下解出.令表示转置的状态向量,且u0表示在时间索引0处的输入数据比特。编码器的下一状态和输出然后可以表示为:

X1=AX0+Bu0           公式(5)

y0=CX0+Du0           公式(6)

其中,A、B、C和D是标量、向量和矩阵,它们取决于实现的特定的多项式生成器矩阵。编码器状态方程(5)可以递归地如下解出:

X2=A2X0+ABu0+Bu1

X3=A3X0+A2Bu0+ABu1+Bu2

X8=A8X0+A7Bu0+A6Bu1+A5Bu2+A4Bu3+A3Bu4+A2Bu5+ABu6+Bu7

编码器输出方程(6)还可以以类似的方式经递归地解出。

方程(5)和(6)用于每次对一数据比特u进行编码。可以为对M数据比特进行并行编码导出类似的方程集合。例如,为对8数据比特进行并行编码(即M=8),则在时间索引n处的输入数据向量的转置可以被定义为且输出编码向量的转置可以被定义为使用为Un和Yn定义的向量定义,方程(5)和(6)可以表示为

Xn+1=FXn+GUn    公式(7)

Yn=HXn+IUn    公式(8)

其中,F、G、H和I是取决于实现的特定多项式生成器矩阵、当前编码器状态Xn和输入数据向量Un的向量和矩阵。方程(7)用于生成在M个数据比特经编码后的下一编码器状态Xn+1,方程(8)用于生成输入向量Un的编码器输出Yn。

为确定方程(7)和(8)内的F、G、H和I,等式(5)和(6)可以使用多种技术经递归地解出,并从递归计算来的结果可以用于实现方程(7)和(8)。例如,可以使用表格将每个输入数据比特的状态和编码器输出列表。表格内的项然后可以用于实现方程(7)和(8),如下所述。

表2示出图3中实现方程(1)的在八个输入数据比特u0到u7被串行地提供给卷积编码器310后编码器状态和输出。如图3示出,寄存器314A到314D开始时分别存储x1,x2,x3,x4的值。在第一时钟周期内,第一数据比特u0被提供给编码器310,且加法器312的输出被计算为x4+x3+u0,这存储在表2的第二行,第二列。编码器的输出计算为yao=u0且yb0=(x4+x3+u0)+x4+x2+x1=x3+x2+x1+u0。(每个加法器316实现模2加)。在下一时钟周期上,来自加法器312和寄存器314A到314C的值被相应移入寄存器314A到314D。下一数据比特u1被提供给编码器,且加法器312的输出被计算为x3+x2+u1,它被存储在表2的第三行,第二列。编码器的输出被计算为ya1=u1且yb2=(x3+x2+u1)+x3+x1+(x4+x3+u0)=x4+x3+x2+x1+u1+u0。处理继续直到接收并处理了第八个数据比特u7。

编码器输出向量:

Yb=[yb7  yb6  yb5  yb4  yb3  yb2  yb1  yb0]

对应输入向量U=[u7u6u5u4u3u2u1u0]且根据表2的最后一列内的项生成。在第八个数据比特u7经编码后,编码器状态Xn+1根据表2内的最后行内的项而生成。如表2内示出的,编码器输出向量Yb以及下一编码器状态Xn+1每个是当前编码器状态Xn=[x4x3x2x1]和输入向量U的函数.对于数据阶段,编码器输出向量Ya仅是输入向量U的函数(即Ya=U)。

表2

  u   1   x1   x2   x3   x4   ya   yb   u0   x4+x3+u0   x1   x2   x3   x4   u0   x3+x2+  x1+u0   u1   x3+x2+u1   x4+x3+u0   x1   x2   x3   u1   x4+x3+x2+  x1+u0+u1   u2   x2+x1+u2   x3+x2+u1   x4+x3+u0   x1   x2   u2   x4+x2+x1+  u0+u1+u2   u3   x4+x3+x1+  u0+u3   x4+x3+x1+  u0+u3   x3+x2+u1   x4+x3+u0   x1   u3   x4+x1+u0+  u1+u2+u3   u4   x4+x2+u0+  u1+u4   x4+x2+u0+  u1+u4   x4+x3+x1+  u0+u3   x3+x2+u1   x4+x3+u0   u4   x4+u0+u1+  u2+u3+u4   u5   x3+x1+u1+  u2+u5   x4+x2+u0+  u1+u4   x4+x2+u0+  u1+u4   x4+x3+x1+  u0+u3   x3+x2+u1   u5   x3+u1+u2+  u3+u4+u5   u6   x4+x3+x2+  u0+u2+u3  +u6   x3+x1+u1+  u2+u5   x4+x2+u0+  u1+u4   x4+x2+u0+  u1+u4   x4+x3+x1+  u0+u3   u6   x2+u2+u3+  u4+u5+u6

  u   1   x1   x2   x3   x4   ya   yb   u7   x3+x2+x1+  u1+u3+u4  +u7   x4+x3+x2+  u0+  u2+u3+u6   x3+x1+u1+  u2+u5   x4+x2+u0+  u1+u4   x4+x2+u0+  u1+u4   u7   x1+u3+u4+  u5+u6+u7   x3+x2+x1+  u1+u3+u4  +u7   x4+x3+x2+  u0+u2+u3  +u6   x3+x1+u1+  u2+u5   x4+x2+u0+  u1+u4

参考表1,HDR系统内的外卷积编码器接收1018个数据比特以及分组格式1形式的每个分组的四个码尾比特。如果八个比特经并行编码,则使用128个时钟周期以对一个数据分组进行编码。第一127个时钟周期用于对1016个数据比特进行编码(即127x8=1016),且第128个时钟周期用于对剩余的两个数据比特和四个码尾比特进行编码。第一127个时钟周期被称为“数据阶段”,而最后一个时钟周期被称为“码尾阶段”。

外卷积编码器接收分组格式2形式的每个分组2042个数据比特和四个码尾比特。如果八个比特并行地经编码,则使用256个时钟周期对一个数据分组进行编码。第一255个时钟周期用于对2040个数据比特进行编码(即255x8=2040),且第256个时钟周期用于对剩余的两个数据比特和四个码尾比特进行编码。第一255个时钟周期被称为“数据阶段”,而最后一个时钟周期被称为“码尾阶段”。

表3示出在两个数据比特u0和u1以及四个码尾比特被串行地提供给图3内的卷积编码器310后编码器状态和输出。同样,寄存器314A到314D开始时相应地存储x1,x2,x3,x4的值。在前两个时钟周期内,两个数据比特u0和u1被串行地提供给编码器。编码器状态x1到x4以及编码器输出yc和yd以如上所述类似的方式经计算。因此,表3的第二和第二行与表2的第二和第三行相同,在第三时钟周期上,提供给编码器带有x2+x1值的第一码尾比特。选择码尾比特值使得加法器312的输出等于零,这被用于刷新卷积编码器。编码器的输出被计算为yc2=x2+x1以及yd2=x4+u0+u1。在下一时钟周期上,来自加法器312和寄存器314A到314C的值被相应移入寄存器314A到314D。第二码尾比特被选定为x4+x3+x1+u0,同样设定加法器312的输出为零,并刷新编码器。处理继续,提供给编码器的最后两比特值为零。

如表3示出,编码器输出Yc和Yd同时是输入向量U和当前编码器状态Xn的函数。对于码尾阶段,下一编码器状态Xn+1被设定为全零的已知状态(即X8=[0000])。

表3

  u   1   x1   x2   x3   x4   yc   yd   u0   x4+x3+u0   x1   x2   x3   x4   u0   x3+x2+  x1+u0   u1   x3+x2+u1   x4+x3+u0   x1   x2   x3   u1   x4+x3+x2  +x1+u0+  u1   x2+x1   0   x3+x2+u1   x4+x3+u0   x1   x2   x2+x1   x4+u0+u1   x4+x3+  x1+u0   0   0   x3+x2+u1   x4+x3+u0   x1   x4+x3+  x1+u0   x3+x2+  x1+u1   x4+x2+  u0+u1   0   0   0   x3+x2+u1   x4+x3+u0   x4+x2+  u0+u1   x4+x3+u0   x3+x2+  u1   0   0   0   0   x3+x2+u1   x3+x2+u1   x3+x2+u1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

图4是卷积编码器400的实施例的框图,它能对多个输入数据比特进行并行编码。卷积编码器400可用于实现数据和码尾阶段(例如如表2和表3分别定义的)。图4示出的编码器结构可以用于实现例如图3内的外卷积编码器310或内卷积编码器340。

在卷积编码器400内,输入数据比特被并行地提供给编码器状态机410、数据阶段输出生成器420和码尾阶段输出生成器430作为数据向量U。。编码器状态机410还接收当前编码器状态X,并根据接收到的输入向量U和当前编码器状态X确定新编码器状态。编码器状态机410可以实现例如表2的最后一行。

数据阶段输出生成器420和码尾阶段输出发生成器430还接收当前编码器状态X并根据接收到的输入X和U相应为数据阶段和码尾阶段确定编码器输出。数据阶段输出生成器420能实现例如表2内的最后两列,且码尾生成器430能实现例如表3内的最后两列。来自数据阶段输出生成器420的第一和第二输出Ya和Yb被相应地提供给多路复用器(MUX)440A和440B.类似地,来自码尾阶段输出生成器430的第一和第二输出Yc和Yd相应地提供给多路复用器440A和440B。多路复用器440A和440B在操作于数据阶段时从数据阶段输出生成器420相应地提供输出Ya和Yb,当操作于码尾阶段时相应地从码尾阶段生成器430提供输出Yc和Yd。

为实现在接收到输入数据比特时对其进行连续编码的卷积编码器,而不需要在每个分组开始时重设编码器状态,只需要编码器状态机410和数据阶段输出生成器420。对于通信系统(例如HDR系统),其中数据以分组被发送,且码尾比特被用于在每个分组开始时将卷积编码器重设为已知的状态,码尾阶段输出生成器430和多路复用器440被用于提供需要的编码器输出。

编码器状态机410和数据阶段输出生成器420的设计取决于实现的特定的多项式生成器矩阵以及要并行编码的数据比特的数目。码尾阶段输出生成器430的设计取决于多项式生成器矩阵、要并行编码的数据比特数以及特定的帧格式(例如在码尾阶段内要编码的数据和码尾比特的数目)。现在以下描述特定的卷积编码器400的设计。

图5A是卷积编码器500的特定实施例的示意图,它可以并行地对八个输入数据比特进行编码,并实现方程(1)内表示的多项式生成器矩阵。卷积编码器500包括编码器状态机510,它实现表2内定义的状态机,以及数据阶段输出生成器520,它生成表2内定义的编码器输出。编码器状态机510和数据阶段输出生成器520相应对应图4内的编码器状态机410以及数据阶段输出生成器420。在该实施例中,编码器状态机510用AND门512A到512D以及寄存器514A到514D实现,且数据阶段输出生成器520用AND门522A到522H实现。

如图5A示出,八个输入数据比特u0到u7并行地提供给编码器状态机510以及数据阶段输出生成器520的输入,每个还接收当前编码器状态,由x1到x4定义。编码器状态机510内的每个AND门512选择性地耦合到输入u0到u7和x1到x4,如表2内的最后一行定义的。例如AND门512A耦合到输入x3,x2,x1,u1,x3,u4和u7,如表2内最后一行,第三列(x1)内的项定义的。AND门512A到512D的输出相应耦合到寄存器514A和514D的输入。寄存器514A到514D的输出相应包括状态机输出x1到x4。

类似地,数据阶段输出生成器520内的每个AND门选择性地耦合到输入u0到u7和x1到x4,如表2内的最后一行定义的。例如AND门522A耦合到输入x3,x2,x1,u0和u7,如表2内第二行,最后一列(ybo)内的项定义的。输入u0到u7相应包括编码器输出ya0到ya7(图5A内未示出为简洁),AND门522A到522H的输出相应包括编码器输出yb0到yb7。

图5B是码尾阶段输出生成器530和多路复用器540A和540B的特定实施例的示意图,多路复用器实现为表1示出的分组格式1和2在方程(1)内表示的多项式生成器矩阵的码尾阶段。码尾阶段输出生成器530以及多路复用器540A和540B对应图4内相应的码尾阶段输出生成器和多路复用器440A和440B。在该实施例中,码尾阶段输出生成器530用AND门532A到532J实现,并生成表3内定义的码尾阶段的编码器输出Yc和Yd。多路复用器540a用2x1多路复用器542A到542F实现,并提供第一编码器输出Yoa。类似地,多路复用器540B用2x1多路复用器544A到544H实现并提供第二编码器输出Yob。

图5A和5B内的编码器状态机510、数据阶段输出生成器520、码尾阶段输出生成器530以及多路复用器540A和540B形成了卷积编码器400的特定实现.该特定实现用于实现方程(1)中表示的多项式生成器矩阵,并用于表1内描述的分组格式.对于分组格式1,1018个数据比特在128个时钟周期上提供给卷积编码器500.对于前127个时钟周期的每个,提供给编码器500八个数据比特,且选择多路复用器540A和540B提供从数据阶段输出生成器520来的输出Ya和Yb。在第128个时钟周期上,剩余的两个数据比特、四个码尾比特以及两个零被提供给编码器500。寄存器514A和514D被重新设定为零(同时地),且多路复用器540A和540B被选用提供从码尾阶段输出生成器530来的输出Yc和Yd。对于分组格式2,在256个时钟周期上提供给卷积编码器500 2042个数据比特。对第一255个时钟周期的每个,对应数据阶段,并行地对八个数据比特进行编码,且多路复用器540A和540B相应地提供输出Ya和Yb。在第256个时钟周期上,对应码尾阶段、两个数据比特、四个码尾比特和两个零并行地经编码且多路复用器540A和540B相应提供输出Yc和Yd。

图5A和5B内示出的特定实现的描述是为了更清楚的理解。值得注意的是还可以考虑不同的实现,且在本发明的范围内。而且,一般对不同的多项式生成器矩阵、不同的输入数据比特数或不同的分组格式使用不同的设计。

以类似的方式,另外的卷积编码器可以设计成实现在方程(2)内的多项式生成器矩阵。在实施例中,卷积编码器被设计成接收且并行地对四个编码比特编码。相应的下一编码器状态和输出的方程(5)和(6)可以以上述的方式经递归地解出。

表4示出在四个输入编码比特v0到v3被串行地提供给图3的卷积编码器340后的编码器状态和输出。寄存器344A和344B开始时分别存储x1和x2的值。在第一时钟周期上,第一编码比特v0提供给编码器340,且加法器342的输出被计算为x1+v0,它被存储在表4的第二行、第二列内。编码器输出被计算为yao=v0,且yf0=(x1+v0)+x2+x1=x2+v0。在下一时钟周期上,来自加法器312和寄存器344A的值被相应移入寄存器344A和344B。下一编码比特v1被提供给编码器340,且加法器342的输出被计算为x1+v0+v1,它被存储在第三行,第二列内。输出被计算为ye1=v1,且yf1=(x1+v0+v1)+(x1+v0)+x1=x1+v1。处理继续直到第四个编码比特v3被接收且经处理。

编码器输出向量Yf根据表4内的最后列内的项生成。在第四编码比特v3经编码后的编码器状态Xn+1根据表4内的最后一行的项生成。如图4示出的,编码器输出向量Yf和下一编码器状态Xn+1每个是当前编码器状态Xn=[x2x1]和输入向量V的函数。对于数据阶段,编码器输出向量Ye仅是输入向量V的函数。

表4

  v   1   x1   x2   ye   yf   v0   x1+v0   x1   x2   v0   x2+v0   v1   x1+v0+v1   x1+v0   x1   v1   x1+v1   v2   x1+v0+  v1+v2   x3+x2+u1   x1+v0   v2   x1+v0+v2

  v   1   x1   x2   ye   yf   v3   x1+v0+v1  +v2+v3   x1+v0+v1  +v2   x3+x2+u1   v3   x1+v0+  v1+v3   x1+v0+v1  +v2+v3   x1+v0+v1  +v2

参考回表1,HDR系统内的内卷积编码器接收2044个编码比特和分组格式1的每个分组的四个码尾比特。如果四个比特是经并行编码的,则512个时钟周期被用于对一个分组编码。第一511个时钟周期被用于对2044个编码比特进行编码(即511x4=2044),且第512个时钟周期被用于对四个码尾比特进行编码。卷积编码器为每个分组格式2的分组接收3079个编码比特和三个码尾比特。如果四个比特是经并行编码的,则768个时钟周期被用于对一个数据分组编码。第一767个时钟周期被用于对3068个编码比特进行编码(即767x4=3068),且第768个时钟周期被用于对最后编码比特和三个码尾比特进行编码。

表5示出分组格式1的码尾阶段的内卷积编码器的状态和输出。在第一时钟周期上,带有值x1的第一码尾比特被提供给编码器。选择码尾比特值使得加法器342的输出等于零。编码器的输出被计算为yg0=x1和yh0=x2+x1。处理对于剩余的三个码尾比特以类似的方式继续。

表5

  v   1   x1   x2   yg   yh   x1   0   x1   x2   x1   x2+x1   0   0   0   x1   0   x1   0   0   0   0   0   0   0   0   0   0   0   0   0   0

表6示出分组格式2的码尾阶段的内卷积编码器的状态和输出。在第一时钟周期上,提供最后编码比特v0给编码器,且编码器状态x1和x2以及输出yi0和yj0以上述的类似的方式计算。表6的第二行因此与表4的第二行相同。在第二时钟周期上,带有x1+v0值的第一码尾比特被提供给编码器。选择码尾比特值使得加法器342的输出等于零。编码器的输出被计算为yi0=x1+v0和yj0=v0。处理对于剩余码尾比特以类似的方式继续。

表6

  v   1   x1   x2   yi   yj   v0   x1+v0   x1   x2   v0   x2+v0   x1+v0   0   x1+v0   x1   x1+v0   v0   0   0   0   x1+v0   0   x1+v0   0   0   0   0   0   0   0   0

图6是卷积编码器600的特定实施例的示意图,它可以对四个输入编码比特进行并行编码并实现方程(2)内表示的多项式生成器矩阵。卷积编码器600包括编码器状态机610,它实现表4定义的状态机、输出生成器620,它生成表4到6内定义的编码器输出,以及多路复用器640A和640B,它提供了分组格式1和2的数据和码尾阶段的合适编码器输出。

如图6示出,四个输入编码比特v0到v3并行地提供给编码器状态机610和输出生成器620的输入,每个还接收定义为Xn=[x2x1]的当前编码器状态。在编码器状态机610内的每个AND门612选择性地耦合到输入v0-v3和x1-x2,如表4的最后一行定义的。例如,AND门612A耦合到输入x1,v0,v1,v2,v3和v4,如表4最后一行,第三列(x1)的表项所定义的。AND门612A和612B的输出相应耦合到寄存器614A和614B的输入。寄存器614A和614B的输出相应包括状态机输出x1和x2。

类似地,输出生成器620内的每个AND门622选择性地耦合到输入v0-v3和x1-x2,如在表4到6内的最后两列定义的。例如AND门622A耦合到输入x2和v0并生成yf0(表4内第二行、最后一列),AND门622B耦合到输入x2和x1并生成yh0(表5内的第二行、最后一列),以及AND门622C耦合到输入x2和v0并生成yj0(表6内的第二行,最后一列)。其它编码器的输出如在表4到6内指出的生成。

多路复用器640A包括3x1多路复用器642A到642D,它们分别地为内卷积编码器600第一编码器提供了输出yia0到yia3。在数据阶段,ye0到ye3相应地通过多路复用器642A到642D被提供。在码尾阶段,多路复用器642A到642D相应地为分组格式1提供yg0到yg3,为分组格式2提供yi0到yi3。类似地,多路复用器640B包括3x1多路复用器644A到644D,它们相应为内卷积编码器600提供了第二编码器输出yib0到yib3。在数据阶段,yf0到yf3相应地通过多路复用器644A到644D被提供。在码尾阶段,多路复用器644A到644D相应地为分组格式1提供yh0到yh3,为分组格式2提供yj0到yj3。

本发明的另一方面提供了交织器,能存储多个由外卷积编码器并行生成的编码比特并将多个编码比特并行地提供给内卷积编码器.参考图2,交织器耦合在内外卷积编码器.交织器设计成存储一个或多个编码比特的分组.在存储了整个分组后,然后以不同于写入顺序的读出顺序检取编码比特以获得编码比特的交织.如果不需要交织,则编码比特按原顺序从交织器检取.

示例实施例的外卷积编码器可以被设计成接收并并行地对M个数据比特编码并生成M·R个编码比特,其中R涉及外卷积编码器的码率(例如R=2指速率为1/2的编码器)。为了加速处理并减少延时,交织器可以被设计成在编码比特由编码器生成时,并行存储来自外卷积编码器的M·R个编码比特。类似地,内卷积编码器可以设计成接收并对N个编码比特进行并行编码。同样,为了加速处理和减少延时,交织器可以被设计成在单次读出操作中,并行将至少N个编码比特存储到内卷积编码器。

来自内外卷积编码器的每个的编码比特可以被穿刺而提供其它码率的编码比特。例如,参考表1,来自外卷积编码器的输出为分组格式1未被穿刺掉以获得1/2的码率并为分组格式2穿刺以获得2/3的码率。类似地,来自内卷积编码器的输出为分组格式1穿刺以获得1/2的码率并为分组格式2穿刺以获得3/4的码率。编码器和交织器间的接口可以被设计成有效地获得码元穿刺。

图7A是交织器700的实施例图。在该实施例中,交织器700用带有P个端口的多端口存储器710实现,其中P大于一。取决于用于实现交织器的特定存储器单元,P个端口的每个可能被同时用作写入和读出端口,或可能作为专用的写入或读出端口。在图7A示出的实施例中,存储器710包括W个端口,标明为端口D1到Dw,且R端口被标明为读出端口Q1到QR。存储器710进一步包括P个地址输入A1到AP,P个端口的每个有一个地址输入。每个写入和读出端口可以并行地传输C个比特。

地址生成器720接收输入地址ADDR,为每个活动端口生成必要的地址,并将生成的地址提供给存储器710的地址输入A1到AP。虽然未在图7A中示出(为简洁之故),地址生成器720还生成一个或多个控制信号,它们引导存储器710实现写入或读出操作。

在一实施例中,存储器710被配置成带有多行和多列的二维存储器。在一实施例中,编码比特被写入存储器710连续的行内。为了效率,每行的宽度可以对应每个端口的宽度(即C比特)。这使得在每次写入操作时可以将多达W行的编码比特写入存储器710的W个写入端口。一旦整个分组的编码比特被存储在存储器710内,则可以从存储器检取编码比特。在实施例中,编码比特还从存储器710中按行读出。对于图7A示出的实施例,每次读出操作时可以从R个读出端口检取多达R行编码比特。

各种设计可以用来将来自交织器700的编码比特提供给内卷积编码器。实现的特定设计取决于特定的系统要求。在一设计中,R个多路复用器730A到730R相应地耦合到R的读出端口Q1到QR。对于每次读出操作,从存储器710检取多达R行编码比特,并提供给多路复用器730A到730R,它们还相应地接收控制信号AD1到ADR。每个多路复用器730接收C个编码比特,根据相应的控制信号ADX选择一个编码比特并将该选择的编码比特提供给多路复用器输出。控制信号AD1到ADR从每行检取的编码比特选择特定的编码比特。R个多路复用器730可以用于并行地提供多达R个编码比特给内卷积编码器。

为进一步更清楚地理解,现在描述与图5A、5B和6描述的内外卷积编码器一起使用的交织器的特定设计.在上述的编码器设计中,外卷积编码器在一个时钟周期内接收且并行地对8个数据比特进行编码以生成16个编码比特,且内卷积编码器接收并对4个编码比特进行并行编码.在该特定的交织器设计中,使用8端口存储器,其中四个端口用于在写入操作中用于接收编码比特以及四个端口用于在读出操作中提供编码比特.在该设计中,每个端口能并行地接收或提供8比特.因此,对该特定设计,在写入操作中可以写入交织器多达32个编码比特,从读出操作中可以从交织器读出多达32个编码比特.

图7B是外卷积编码器和不带穿刺的交织器间的接口的实施例。在该实施例中,外卷积编码器生成的编码比特提供给四个寄存器732A到732D。寄存器732A到732B接收在第一时钟周期内生成的16个编码比特,且寄存器732C和732D接收在第二(例如另一个)时钟周期内生成的16个编码比特。当不实现穿刺时,寄存器732A到732D上的所有32个编码比特在一次写入操作时相应地被提供给存储器的端口D1到D4。

图7C是外卷积编码器和带有穿刺的交织器间接口的实施例图。参考表1,外码的编码比特以对分组格式2的穿刺模式(1011)而被穿刺。因此,在一个时钟周期内,生成16个编码比特,穿刺4个编码比特,并存储12个编码比特。开始时,在第一时钟周期内生成的16个编码比特被存储到寄存器732A到732B,且第二时钟周期内生成的16个编码比特被存储到寄存器732C和732D。在穿刺后,剩余24个编码比特,如图7C示出,并将其提供给三个写入端口(例如D1到D3)。

地址生成器提供适当的地址,用于把未被穿刺掉的编码比特写入存储器中的顺序行。为写编码比特所使用的每个活动端口产生一个地址。这样,地址生成器在不执行穿刺时为端口D1到D4产生四个地址,在执行穿刺时为端口D1到D3产生三个地址。

为了并行地将四个编码比特提供给内卷积编码器,从存储器检取四行编码比特并提供给四个8x1多路复用器。每个多路复用器还接收相应的3比特控制信号ADX,该信号在检取的行内选择特定的比特以提供给内卷积编码器。每个检取的比特的地址因此可能被分成两部分,第一部分标识存储器内的特定行,第二部分标识行内的特定位置。地址的第一部分提供给存储器的合适地址输入,第二部分作为控制信号ADX提供。地址的第一和第二部分根据实现的系统和标准定义的特定交织方案而生成。

示例实施例的交织器还使用其它存储器而实现。例如单端口存储器单元或多个存储器单元可以用于同时并行地存储和提供多个比特。对于单端口存储器单元,多个写入操作可能用于存储生成的编码比特,且多个读出操作还可能用于检取需要的编码比特。使用多个存储器单元的设计中,每个存储器单元可能类似多端口存储器的一个端口(或几对端口)而操作。因此,可以使用多种设计以实现交织器且在本发明的范围内。

在上述的实施例中,交织器在内外卷积编码器间实现。使用该配置以实现Turbo编码器,这可以提供一定优势。在其它编码器设计中,在外卷积编码器后的交织可能不是必要的,且在外卷积编码器后可能不需要存储器,或可能存储器被简单地用作缓冲器。

示例实施例的串接编码器可以以多种方式操作。在一特定设计中,编码器用于每次对一个数据分组编码。参考图2,数据的特定分组可以由外卷积编码器经编码,并存储在交织器内。在整个分组经外卷积编码器编码后,编码的比特从交织器中被检取,且经内卷积编码器编码。一旦整个分组都由内卷积编码器编码,由外卷积编码器进行下一分组的编码。该设计减少了交织器的存储器要求,这可能在一些应用中是期望的。

在另一特定设计中,交织器实现为带有能存储两个或多个编码比特分组的能力.例如,用于实现交织器的存储器可以被分为两个存储库,每个存储库使得内外卷积编码器能同时在两个分组上进行操作.外卷积编码器对第一分组进行编码并将该分组的编码比特存储到存储库.在将整个第一分组存储到存储器后,外卷积编码器对第二分组进行编码,并将该分组的编码比特存储到第二存储库.当外卷积编码器将当前分组的编码比特编码并存储到一个存储库内时,内卷积编码器可以检取并对从另一存储库来的先前分组的编码比特进行编码.该设计减少了处理延时.

图8是编码器800的特定设计的框图,可以用来实现一些实施例。编码器800可能用于实现图1的编码器114。编码器800包括耦合到地址生成器820和存储器830的处理单元810。处理单元810从缓冲器接收数据,并从控制源(未示出)接收控制信息,根据控制信息对接收到的数据编码,并将编码后的数据提供给缓冲器850。

在图8示出的实施例中,处理单元810包括输入接口812、多比特编码器814、输出接口816以及控制单元818。输入接口812为缓冲器802生成地址和控制信号,根据生成的地址和控制信号接收缓冲器802提供的数据,并将接收到的数据路由到多比特编码器814。多比特编码器814实现输出和内卷积编码器,且可能用一个或多个查询表或一个或多个编码(诸如图4描述的)实现。当作为外卷积编码器操作时,多比特编码器814对来自输入接口812的数据编码,并将生成的编码比特提供给存储器830。且当作为内卷积编码器操作时,多比特编码器814对来自存储器830的编码比特编码,并将生成的编码比特提供给输出接口816。输出接口816然后将供编码后的数据提供给缓冲器850。

控制单元818接收各种控制信息,诸如例如要编码的特定数据分组,缓冲器802内的分组的位置、分组格式、要使用的编码方案、在缓冲器850内存储编码的分组的位置等。控制单元818然后引导输入接口812从缓冲器802获得合适的数据比特,引导编码器状态机814使用合适的编码方案,并进一步引导输出接口816将编码后的数据提供给缓冲器850内合适的位置。

地址生成器820为将编码比特写入存储器830和从存储器读出编码比特而生成合适的地址。地址生成器820可以用逻辑、查询表或一些其它的设计实现。

存储器830存储由多比特编码器814生成的编码比特,并将存储的编码比特提供给多比特编码器814。通过合适地生成地址,存储器830可以被用于提供编码比特的交织。存储器830可以用多端口存储器实现(如上所述)或一个或多个存储单元。

图9时用于实现多个数据比特并行串接编码的方法的实施例流程图。开始时,在步骤912,接收来自特定数据分组的多个(M)数据比特,在步骤914,根据第一编码方案(例如卷积)经并行编码一生成多个(MR)编码比特。第一编码方案生成的编码比特数量取决于方案的特定码率。在步骤916,零个或更多个生成的编码比特可能用第一穿刺方案穿刺以提供不同码率的编码比特。未被穿刺掉的编码比特然后在步骤918存储入存储器。

如图9示出的实施例,整个分组由第一编码方案经编码,且在第二编码方案接着进行编码前经存储。这使得能进行编码比特的交织,如上所述。因此,在步骤920确定整个分组是否经编码。如果回答为否定的,则进程回到步骤912且接收另一M(或更少)数据比特。

另外,如果整个分组经编码,则在步骤922从存储器接收多个(N)编码比特,并在步骤924根据第二(例如卷积)编码方案进行并行地编码以生成多个(NR)编码比特.同样,由第二编码方案生成的编码比特数取决于方案的特定码率.同样,在步骤926,零个或多个生成的编码比特可能用第二穿刺方案穿刺以提供另一码率的编码比特.在步骤928,未被穿刺掉的编码比特然后作为编码后的数据被提供给下一处理单元(例如图1的调制器116).

为了效率以及减少延时,W个码字可能被并行地存储(例如通过W个写入端口)到存储器,且R个码字可能并行地(例如通过R个读出端口)从存储器中检取。W个码字允许并行存储来自第一编码方案的未被穿刺掉的编码比特,R个码字允许N个编码比特被并行地提供给第二编码方案。存储器可能以上述的方式操作以获得编码比特的交织。例如,W个码字可能写入存储器内的连续行,且R个码字可能从存储器内经排列的行中读出。

示例实施例的编码器和交织器可以用于大大缩短编码时间。通过用外卷积编码器对M个数据比特进行并行编码并用内卷积编码器对N个编码比特进行并行编码,可以大大减少总编码延时。本发明的交织器支持并行编码,因为它有在写入操作时能接收多个编码比特,而在读出操作时提供多个编码比特的能力。对特定设计的处理延时内的改善在表7内示出,其中为HDR系统内分组格式1和2,且M=8,N=4。

表7

对于表7示出的特定设计,总编码延时对于分组格式1减少了4.8倍,而对于分组格式2减少了5倍。可以知道通过增加并行编码的比特数还可以进一步获得处理延时的改善,特别是对于内卷积编码器(即增加N)。

本发明的编码器和交织器提供的更短的处理延时提供了多种好处。一些这样的好处简要地如下描述。

第一,更短的处理延时可能用于支持一些类型的服务,诸如语音和视频,这种服务的延时要求更为严格。更短的处理延时可能因此允许用于更多对延时敏感的应用的有效的编码方案。

第二,更短处理延时可以改善系统性能。例如,如果根据通信链路的条件为特定的传输选择特定的用户或数据率,这是在特定时间被确定的,则更短的处理延时增加了可能性,即链路条件在数据传输时不改变的可能性。链路条件一般随着时间改变,且更长的处理延时增加了链路条件在数据传输时间内改变的可能性,这会导致性能恶化。

第三,更短的处理延时可能改善一些通信系统的容量。例如,在HDR系统内,功率控制数据用话务数据经多路复用并发送到用户终端。更短的处理延时使得能更准确地控制用户终端的发送功率,这可以增加系统容量,并改善性能。

第四,更短的处理延时使得多个发送实体(例如三个扇区系统内的三个用户)能在一个处理时隙(例如HDR系统内的前向链路时隙)内连续共享硬件资源(例如编码器),以减少硬件设计的总体区域。

为了简洁,本发明的编码器的一些方面和实施例对HDR系统内的前向链路特别描述。然而本发明可以用于其它通信系统内,它们使用相同、类似或不同的编码方案。例如,本发明的编码器可以用于实现能并行接收并对多个数据比特编码的卷积编码器。本发明的编码器还可以用于实现串接编码器,诸如Turbo编码器,即能并行接收并对多个数据比特编码的。编码器的特定设计取决于各种因子,诸如例如实现的特定的多项式生成器矩阵、要并行编码的比特数、分组格式、码尾比特的使用等。

本发明的编码器可以有利地用于通信系统内的基站或用户终端(诸如移动单元、电话等)。前向链路(即下行链路)和反向链路(即上行链路)的编码可能不同,且一般取决于特定的CDMA系统或实现的标准。因此,本发明的编码器一般为其使用的特定应用而设计。

参考表2和表3示出的特定设计,外卷积编码器的下一状态和输出可以用带有多达七项函数生成。参考表4到表6示出的特定设计,内卷积编码器的下一状态和输出可以用多达五项的函数生成。这些函数可以简单地用逻辑门生成,如领域内已知的方式。内外卷积编码器的其它元件(例如寄存器、多路复用器)还可以以领域内已知的方式实现。

上述的本发明的编码器的一些或所有元件(例如多比特编码器、输入和输出接口、控制单元、编码器状态机、输出生成器、多路复用器等)还可以在以下器件内实现:一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、可编程逻辑设备(PLD)、复杂PLD(CPLD)、控制器、微控制器、微处理器、其它设计成实现在此描述的功能的电子单元或以上的组合。本发明的编码器的一些或所有元件还可以使用处理器执行的软件或固件实现。

存储器和存储单元,诸如用于实现本发明的交织器的,可以用多种存储器技术实现,诸如随机访问存储器(RAM)、动态随机访问存储器(DRAM)、闪存存储器等.存储单元可以用存储元件实现,诸如例如硬盘、CD-ROM驱动等.存储单元的多种其它实现都是可能的,且在本发明的范围内.

最优实施例的前述描述提供给本领域的技术人员,使其能使用本发明。这里定义的一般原理可以被应用于其它实施例中而不使用创造能力。因此,本发明并不限于这里示出的实施例,而要符合与这里揭示的原理和新颖特征一致的最宽泛的范围。

本发明背景