背景技术
快速代码是一种影响数字通信系统可靠性的纠错码。通常,快速代码分为串行快速代码和并行快速代码。并行快速编码器使用两个简单的并行级联代码将L信息位流的输入帧编码为奇偶校验符号,其中递归系统卷积(RSC)编码器典型地用做分量编码器。另外,并行快速编码器包括在分量编码器之间连接的交织器。
在快速编码器中执行交织以便以帧为单位随机化数据流并改进代码字的距离属性。具体地,希望在IMT-200(或CDMA-2000)通信系统的辅助信道(或业务信道)和由ETSI(欧洲电信标准学会)提出的UMTS(通用移动电信系统)的数据信道中使用快速编码器。因此,需要用于这一目的采用使用快速编码器的快速交织器的可靠方法。
图1示出了一般的并行快速编码器,公开于1995年8月29日授权的美国专利No.5,446,747,其引用于此以资参考。
参照图1,快速编码器包括:第一分量编码器111,用于编码输入的帧数据;交织器112,用于交织输入的帧数据;以及第二分量编码器113,用于编码交织器112的输出。已知的RSC(递归系统卷积)编码器或NSC(非递归系统卷积)编码器典型地被用于第一和第二分量编码器111和113。这种分量编码器基于编码速率、约束长度K和生成器多项式具有不同结构。而且,交织器112具有和输入信息位流相同的尺寸,并且重新排列提供到第二分量编码器113的信息位的顺序以降低在信息位之间的相关。
对于快速编码器的内部交织器(或快速交织器)112,提出了各种交织器,诸如PN(伪噪声)随机交织器、随机交织器、块交织器、非线性交织器和S-随机交织器。但是目前为止,就科学研究而不是实施角度而言,这些交织器仅是为改进它们的性能而设计的算法。当实施一个实际系统时,必须考虑硬件实施的复杂性。现在将对与快速编码器的常规交织器相关的属性和问题进行描述。
快速编码器的性能是取决于内部交织器的。一般而言,输入帧尺寸的增加(即,包括在一帧中的信息位数目)使快速编码器性能增加得到提升。但是,交织器尺寸的增加要求计算量的增加。因此,通常,如果帧尺寸很大,则实施交织器是不实际的。
根据实验,随机交织器在性能上优于块交织器。但是随机交织器在下述情况中是不利的,即,种类的增加和帧尺寸增加导致存储交织器索引(即映射规则或地址)的所需存储器容量增加。也就是说,寻址所需的存储器容量显著地增加。因此,考虑到所需的硬件尺寸,最好使用用于通过使用索引生成规则在每个标志时钟上产生地址读取存储在相应地址上的数据的地址枚举方法而不是用于存储交织器检索的查表方法。
因此,当需要各种交织器尺寸并且在IMT-2000或UMTS系统中硬件复杂程度受限时,考虑到固有的限制,应该将快速交织器设计成保证最优的交织器性能。即,需要根据特定的交织执行交织/解交织的交织器。另外,交织器需要好的交织器属性(例如,距离属性、加权属性和随机属性)。
IMT-2000或UMTS规范还没有提供对快速交织器的任何定义。IMT-2000规范定义的前向链路和反向链路具有多种类型的逻辑信道和多种交织器尺寸。因此,为了满足各种要求,需要增加存储器容量。例如,在CDMA前向链路传输模式中,可以使用范围为从144比特/帧至36864比特/帧的各种尺寸的交织器。另外,交织器可以分类成将整个输入帧作为一个区域来执行交织的1维交织器和将输入帧分成几个部分区域来根据分割的区域执行交织的2维交织器。
综上所述,现有技术存在下列缺点:
首先,对于快速编码器的常规内部交织器来说,可以使用PN随机交织器、随机交织器、块交织器、非线性交织器以及S-随机交织器。但是仅就科学研究而不是实施角度而言,这些交织器是为改进它们的性能而设计的算法。因此,当实施一个实际系统时,必须考虑这种交织器硬件实施的复杂性。但是,这一点没有具体定义。
第二,由于在使用查询表的现有交织方法中收发机的控制器(CPU或主机)必须存储基于各个交织器尺寸的交织规则,主存储器除了要求交织器缓冲器之外还要求分离的容量。即,当帧尺寸是变化并增加的时候,要求增加用于存储交织器索引(即,映射或地址)的存储器容量。即,它存在存储器容量的大的增加的缺点。
第三,满足距离属性和随机属性二者的交织器的实施并不容易。
第四,当使用2维交织器时,不考虑分量编码器的周期性来选择区域,使得可以复位分量编码器的状态。
发明内容
因此,本发明的一个目的在于提供一种通信系统中最小化快速编码器的距离属性的交织/解交织设备和方法。
本发明的另一目的在于提供用于快速编码器的交织装置和方法,其中在交织前快速编码器以特定的尺寸分割输入帧。
本发明的另一目的在于提供一种2维交织设备和方法,用于控制组选择,使得选择特定组的周期应该不同于快速编码器中分量编码器的周期。
为实现上述目的,提供一种编码设备,包含:第一分量编码器,用于使用m阶本原多项式编码n比特数据流;2维交织器,用于将n比特数据流分段成k个数据组,并从k个数据组中读取n比特数据流并交织n比特数据流;以及第二分量编码器,用于使用m阶本原多项式编码来自2维交织器的交织过的n比特数据流,该2维交织器包括:控制器,用于控制数据组的选择,使得当k是2m-1的正倍数,并且至少一个数据组具有一特定模式时,2维交织器的输出不同于所述特定模式。
为实现上述目的,还提供一种编码设备,包含:第一分量编码器,用于使用m阶本原多项式编码n比特数据流;2维交织器,用于将n比特数据流分段成k个数据组,并从k个数据组中读取n比特数据流并交织n比特数据流;以及第二分量编码器,用于使用m阶本原多项式编码来自2维交织器的交织过的数据流,该2维交织器包括:控制器,用于当k是2m-1的正倍数时,选择k个数据组的特定一个,并控制数据组的选择,使得选择所述特定数据组的周期不同于分量编码器的周期。
为实现上述目的,还提供一种编码设备,包含:第一分量编码器,用于使用m阶本原多项式编码n比特数据流;2维交织器,用于将n比特数据流分段成k个数据组,并从k个数据组中读取n比特数据流并交织n比特数据流;以及第二分量编码器,用于使用m阶本原多项式编码来自2维交织器的交织过的n比特数据流,该2维交织器包括:控制器,用于当k是2m-1的正倍数时,选择k个数据组的特定一个,并控制数据组的选择,使得选择所述特定数据组的周期不等于2m-1的正倍数。
为实现上述目的,还提供一种用于编码设备中交织器的交织方法,所述编码设备包含:第一分量编码器,用于使用m阶本原多项式编码n比特数据流;2维交织器,用于将n比特数据流分段成k个数据组,并从k个数据组中读取n比特数据流并交织n比特数据流;以及第二分量编码器,用于使用m阶本原多项式编码来自2维交织器的交织过的n比特数据流,所述交织方法包括步骤:控制数据组的选择,使得选择所述特定数据组的周期不等于2m-1的倍数,其中,当k是2m-1的正倍数时,选择k个数据组中的特定一个。
为实现上述目的,还提供一种用于编码设备中交织器的交织方法,所述编码设备包含:第一分量编码器,用于使用m阶本原多项式编码n比特数据流;2维交织器,用于将n比特数据流分段成k个数据组,并从k个数据组中读取n比特数据流并交织n比特数据流;以及第二分量编码器,用于使用m阶本原多项式编码来自2维交织器的交织过的n比特数据流,所述交织方法包括步骤:将输入的n比特数据流顺序存储在存储器中;根据给定的交织规则生成读地址,其中交织规则包括:当k是2m-1的正倍数时,选择k个数据组的特定一个,并控制数据组的选择,使得选择所述特定数据组的周期不等于2m-1的正倍数;以及使用读地址读取来自存储器的输入数据。
具体实施方式
下面将参考附图描述本发明的优选实施例。在下面的描述中,为避免在不需详细的地方模糊本发明,不再描述众所周知的功能或结构。
为设计相对于各种帧尺寸具有最优性能的快速编码器,必须考虑许多参数,诸如快速编码器的分量编码器的存储量(即约束长度K)、生成器多项式和最优编码率。在没有确认这些参数对性能的影响有多大的情况下,很难通过实验设计具有最优性能的快速编码器。
因此,一般地,通过确定满足几个给定标准的条件来实现交织器。标准如下:
距离属性:在相邻代码字符号之间的距离应该保持在一定程度。因为和卷积代码的代码字距离属性具有相同的功能,如果可能的话,最好交织器被设计成具有较长的距离。
加权属性:相应于非零信息字的代码字的加权应该比阈值高。因为这和卷积代码的最小距离属性具有相同功能,如果可能的话,最好交织器被设计成具有较高的加权。
随机属性:在交织后的输出字符号之间的相关因子应该比在交织前的原始输入字符号之间的相关因子低的多。即应该完全执行输出字符号之间的随机化。这对连续解码中产生的外来信息的质量产生直接的影响。
现在将参考附图描述本发明。
本发明提出一种满足快速交织器的属性(包括距离属性、加权属性和随机属性)的最优交织/解交织设备。
一般地,作为快速编码器的内部交织器,随机交织器具有好的性能,特别是对于较大的帧尺寸来说。因此,本发明提出了使用在满足随机交织器的属性的同时具有低复杂性的2维交织器。该2维交织器将输入帧分成多个组,并应用基于组的特定交织规则。组选择周期,定义为在选择一特定组的时间与该组被接下来选中的时间之间的时段,应该不与内部分量编码器的周期相一致。而且,本发明的实施例对每一组采用用于产生PN序列的线性反馈移位寄存器(LFSR),并使用从那产生的随机号作为读地址。但是本发明不限于在组单元基础上执行交织的方法,并且旨在考虑分量编码器的周期性而选择基于组产生的地址。而且不仅常规的分量编码器而且CDMA-2000和UMTS规范所定义的分量编码器都能用于根据本发明的快速编码器的第一和第二分量编码器。另外,根据本发明的交织器能够应用于信道交织器以及串行快速编码器的内部交织器。
图2和3分别示出了根据本发明的交织器和解交织器的结构。
参照图2,将描述用于交织帧数据输出的交织器。地址生成器211根据输入帧数据尺寸L和输入时钟生成用于重排数据位顺序的读地址,并将所生成的读地址提供到交织器存储器212。交织器存储器212在写模式操作中将输入数据顺序存储,并根据从地址生成器211提供的地址在读模式操作中读取数据。接收输入始终的计数器213将写地址提供给交织器存储器212。如上所述,交织器在写模式操作中将输入数据顺序存储在交织器存储器212中,并根据地址生成器211生成的读地址在读模式操作中读取存储在交织器存储器212中的数据。另外,交织器能够在写模式操作中在重排数据位顺序之后将输入数据存储在交织器存储器212中,并在读模式操作中顺序读取数据。
参照图3,将根据本发明实施例描述解交织器。地址生成器311根据输入帧数据尺寸L和输入时钟生成用于将输入数据的顺序恢复成原始状态的写地址,并将所生成的写地址提供到解交织器存储器312。解交织器存储器312在写模式操作中根据从地址生成器311提供的写地址存储输入数据,并在读模式操作中顺序读取所存储的数据。接收符号时钟的计数器313将用于读取来自解交织器存储器312的数据的读地址提供给解交织器存储器312。如上所述,解交织器具有交织器的逆操作,但具有与交织器的相同结构。二者唯一的区别是在写和读模式中输入数据位的顺序。因此,下面将仅参照交织器给出描述。
一般地,对于给定的输入帧尺寸,快速编码器的性能是根据约束长度K和快速交织器的属性而确定的。在设计解码器中,考虑到最终的复杂性和所需的性能改进,约束长度K被设置成3或4。例如在CDMA-2000和UMTS系统中,约束长度K一般设置成4(K=4)。相反,对于快速交织器(即快速编码器的交织器),由于存在太多的设计参数,所以很难选择属性以到达最优的快速交织器。因此,使用次优的快速交织器而不是最优的快速交织器来进行研究。
首先,必须分析常规代码的属性。对于一般的卷积代码,当输入序列I的汉明(Hamming)加权W(I)低时,代码的加权也低。相反,当汉明加权W(I)高时,代码的加权也高。这是基于前馈卷积代码的属性的。与卷积代码不同,使用递归卷积代码的快速代码具有无限冲激响应序列。即,对于K=4,当使用输入序列100000...0,产生具有周期7的分量代码序列。
图1示出了快速编码器的结构。如所示,包括在快速编码器的快速交织器连接在两个分量编码器之间,这两个分量编码器使用了递归卷积编码器。快速交织器对输入数据进行交织,以便当第一编码器产生具有低加权的代码时,使第二编码器产生具有高加权的代码。因此,尽管第一编码器输出的代码具有低加权,第二编码器的输出仍具有高加权,所以使其能够增加代码的总加权。例如,当将输入序列100000...0输入到K=4的快速编码器时,快速编码器的每一分量编码器产生具有2(k-1)-1=7的周期的周期二进制序列。该序列模式与快速编码器的生成器多项式有关。另外,通过将分量编码器的状态复位成与特定输入序列而不是零序列编码器有关的零状态来生成有限代码序列。
例如,当K=4时,对于10000001000000000...的输入序列,第一分量编码器的状态在编码第2个“1”比特之后被复位成零状态。而且,对于在两个‘1’之间的距离是7的倍数的每一种情况,由于周期性,第一编码器的状态以相同方式被复位。因此,所有后续的代码变成零,导致快速代码的最小距离减小。在这种情况下,快速交织器将这种模式的输入序列打断以便第二分量编码器具有较高的代码加权,因此增加了快速编码器的最小加权。
根据设计方法,这种快速交织器能够被分成1维快速交织器和2维快速交织器。1维交织器将被交织的帧被看作一个对象执行交织器。2维交织器将整个帧分成子帧或具有相同尺寸的多个组,并接着每一组独立地使用相应的交织器规则执行交织。一般地,在性能上2维快速交织器优于1维快速交织器,并具有根据组的交织规则,因此与1维快速交织器相比,提供了简单的最优处理。
图4是2维快速交织器的工作原理说明图。参照图4,输入帧被分成4组,组0、组1、组2和组3。P0(k)指示用于交织组0的数据的交织规则;P1(k)指示用于交织组1的数据的交织规则;P2(k)指示用于交织组2的数据的交织规则;P3(k)指示用于交织组3的数据的交织规则。而且当K=0时,P0(0)、P1(0)、P2(0)和P3(0)指示在各个组中交织的数据的地址;当K=1时,P0(1)、P1(1)、P2(1)和P3(1)指示在各个组中交织的数据的地址;当K=2时,P0(2)、P1(2)、P2(2)和P3(2)指示在各个组中交织的数据的地址;当K=3时,P0(3)、P1(3)、P2(3)和P3(3)指示在各个组中交织的数据的地址。即在每一k上,根据相应于该组的交织规则Pg(k)从每一组中读取一个数据位。这可以被看作是1维交织的自然扩展,其中组数是1。当然,可以顺序地或根据特定规则选择组。例如,可以通过改变总交织规则以0、2、1和3的顺序而不是图4所示的0、1、2和3的顺序来选择组。即,图4所示情况为输入帧的数据位数是16,输入帧被分段成4组,其每一个具有4比特,并且根据其相关的交织规则交织每一组。
这种2维快速交织器可能存在一个问题。即,当组数等于分量编码器的周期或周期的倍数时,快速代码的最小距离被极大地减小了。例如对于k=4,周期为7。因此,如果组数是7或7的倍数,则存在将每一分量编码器复位成零状态的可能性。
图5示出了即使交织之后快速编码器的输入序列100000010000...仍被保持的最坏情况。如所示,输入序列即使在交织之后模式仍被保持。因此,第二分量编码器也被复位成零状态,由此减小了快速代码的最小加权。这相应于组数为7的倍数的每一情况。在多数情况下,当组数为7或14时生成最小距离。因此快速交织器具有很短的最小距离,使得快速代码的总BER(误码率)或FER(帧差错率)水平降低。
因此,为解决上述问题,当设计2维快速交织器时,本发明改变诸如组选择周期之类的组选择模式,在相同组的连续选择之间的周期是不同于快速编码器的分量编码器的周期的。即,本发明旨在当2维快速交织器执行组选择时,通过分析快速编码器的属性最小化快速代码的最小距离。
现在,将描述根据本发明实施例最小化快速代码的最小距离的快速交织器设备。
打断组选择周期性的最有效方法是在每一周期上改变将被选择的组。下表1示出了这种方法的例子,其中k=4并且组数是7。尽管表1示出了在循环移位基础上顺序产生的组选择,也可以按照预定模式根据循环移位基础随机进行组选择。
[表1]
移位步长 |
组选择顺序 |
0 |
0123456 |
0123456 |
0123456 |
0123456 |
0123456 |
0123456 |
0123456 |
0123456 |
1 |
0123456 |
1234560 |
2345601 |
3456012 |
4560123 |
5601234 |
6012345 |
0123456 |
2 |
0123456 |
2345601 |
4560123 |
6012345 |
1234560 |
3456012 |
5601234 |
0123456 |
3 |
0123456 |
3456012 |
6012345 |
2345601 |
5601234 |
1234560 |
4560123 |
0123456 |
4 |
0123456 |
4560123 |
1234560 |
5601234 |
2345601 |
6012345 |
3456012 |
0123456 |
5 |
0123456 |
5601234 |
3456012 |
1234560 |
6012345 |
4560123 |
2345601 |
0123456 |
6 |
0123456 |
6012345 |
5601234 |
4560123 |
3456012 |
2345601 |
1234560 |
0123456 |
例如,在表1中,当移位步长是2时,在第一周期使用0123456的顺序选择组,并且当组选择顺序移位3时,在第二周期使用顺序2345601选择组。即,在每一组选择周期上,通过以将前一组选择顺序移位2而确定的组选择顺序来选择组,如表1所示,在‘2’行中从左向右移动。当通过表1中所示的循环移位来选择组时,在7个不同的组选择顺序之后,重复特定的组,由此增加了最小距离。即,当移位步长是0时,在每一周期上组选择模式具有和前一组相同的组选择模式。但是,当移位步长是1、2、3、4、5和6时,特定组选择模式在7个不同的组选择模式之后出现循环。即,通过循环移位改变组选择顺序,以便快速编码器的周期应该不同于循环的移位顺序。
这种循环移位组选择能够简单地实现。每一组选择由下面方程(1)确定:
[方程1]
对于clk=0,...,frame_length-1
g=(clk%Ng+shift_step*k)%NG
例如,在Ng=7,并且shift_step=1的情况下,如果clk是0,1,2,3,4,5,6|7,8,9,10,11,12,13|...,k=0,0,0,0,0,0,0|1,1,1,1,1,1,1|...,所以它输出g=0,1,2,3,4,5,6|1,2,3,4,5,6,0|...。
其中Ng表示组数,clk表示比特单元中的数据时钟,其为一种计数器,并且k表示计数器,其被初始化为0(k=0),并且在每一Ng组选择时将要被首先选择的顺序增加1。另外,shift_step是一满足GCD(2^K-1,shift_step)=1的给定数字,并是一取决于约束长度K的常数。即,能够使用两个计数器和一个地址加法器实现循环移位。
尽管已经参照循环组移位方法描述了本发明,其中组选择顺序是顺序增加的,但是为增加快速交织器的距离属性,还能够随机输出每一组的交织地址。
例如,假设k=4,并且组数Ng=7,在这种情况下,无论使用何种组多路转换方法,不进行循环组移位,就不能打断组选择的周期性。因此,在通过周期移位增加组选择周期之后,组多路转换根据模式对组选择随机化。这里,“组多路转换”是指根据特定模式随机选择组。尽管通过循环移位对组选择顺序进行了移位,但随机选择组的特定模式没有变。即,在移位特定模式的同时执行组选择。
图6说明了2维交织设备中的组选择器,其具有用于随机组选择的组多路转换操作和在每一周期移位组选择以打断组选择周期性的循环移位操作。
参照图6,组选择器确定组数Ng是否是2(k-1)-1的倍数,并且如果是,则通过循环组移位操作增加组选择周期。此后,根据增加的组选择周期,组多路转换器根据特定模式随机地选择组。
图7说明了根据本发明实施例用于执行2维交织的地址生成器。
参照图7,随机地址生成器711-71N根据给定的交织器规则使用它们相关的组的地址生成器生成读地址。控制器721控制选择器731的多路转换。选择器731在控制器721的控制下选择地址生成器711-711N生成的地址。输出地址被用来读取顺序存储在交织器存储器212中的输入帧数据。如上所述,2维交织方法将交织器尺寸分段成多个组,根据所分段的组执行交织以生成地址,并接着顺序地或随机地选择所生成的地址以将它们作为读地址。在这种情况中,选择器的组选择顺序在获得好的交织属性中起着重要的作用。本发明提出了用于在每一周期上使用循环移位来移位组选择顺序的基本方法,以及用于对组选择顺序随机化以增加交织器的距离属性的辅助方法。
至于图7的地址生成器的操作,地址生成器711-711N使用在相应组中的它们的相关交织规则来生成地址。例如,一个能够使用地址生成器的线性反馈移位寄存器(LFSR)。控制器721将用于选择地址生成器711-711N生成的地址的选择信号提供给选择器731。控制器721输出表1所示的用于循环移位的组选择信号。例如,当移位步长是2时,控制器721输出一选择信号,其用于在每一周期上以第一周期的0123456顺序、第二周期的2345601顺序...以及第七周期的5601234顺序地将移位组选择顺序移位2。为增加交织器的距离属性,控制器721能够根据特定模式随机地选择组。在每一Ng组选择上移位特定模式,但不改变其顺序。选择器731根据来自控制器721的选择信号选择地址生成器生成的地址。所选择的地址用于随机读取顺序存储在交织器存储器212中的输入帧数据。
图8A示出了根据本发明实施例的用于控制组选择的控制器的详细方框图,并且图8B示出了图8A的控制器721的时序图。
参照图8A,响应于第二时钟信号clk2,运算器803提供模7运算值给计数器801作为开始计数值(图8B所示)。计数器801接着响应第一时钟信号clk1,使用来自运算器803提供的开始计数值开始计数,并以组选择顺序将查询表805中的计数值用作查询表计数值的地址。这里,计数器801使用循环移位来计数[0...6]。
图9A示出了根据本发明实施例的用于控制组选择的控制器的详细方框图,并且图9B示出了图9A的控制器721的时序图。
参照图9A,计数器903响应图9B的时钟信号clk输出图9B的计数器信号。比较器909将来自计数器903的计数器信号与预定数目‘6’进行比较,并当计数器信号与预定数目‘6’相同时,提供一激活脉冲ACT到可装载的计数器901和移位计数器905。一旦接收到激活脉冲ACT,移位计数器905便输出一移位计数器信号(如图9B所示)到可装载的计数器901。可装载计数器901接着响应时钟信号clk,在查询表907中以组选择顺序写入在每一周期上移1位的可装载计数器值(如图9B所示)。
如上所述,本发明提供一种用于当执行2维交织时满足交织器的距离属性的方法。即,设计一种新的2维交织器,使得选择特定组的周期不同于快速编码器的周期,由此防止包含在快速编码器中的分量编码器被复位成零状态,由此最大化快速编码器的最小距离。
尽管已经参考一具体优选实施例示出并描述了本发明,本领域普通技术人员将理解的是,在不背离由所附权利要求书限定的本发明实质和范围情况下,可以进行多种变化。