CN101379711A - 用于生成置换的方法和装置 - Google Patents

用于生成置换的方法和装置 Download PDF

Info

Publication number
CN101379711A
CN101379711A CNA2007800044027A CN200780004402A CN101379711A CN 101379711 A CN101379711 A CN 101379711A CN A2007800044027 A CNA2007800044027 A CN A2007800044027A CN 200780004402 A CN200780004402 A CN 200780004402A CN 101379711 A CN101379711 A CN 101379711A
Authority
CN
China
Prior art keywords
value
displacement
index
index value
array
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
CNA2007800044027A
Other languages
English (en)
Other versions
CN101379711B (zh
Inventor
T·M·纳加拉
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 CN101379711A publication Critical patent/CN101379711A/zh
Application granted granted Critical
Publication of CN101379711B publication Critical patent/CN101379711B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/2742Irregular interleaver wherein the permutation pattern is not obtained by a computation rule, e.g. interleaver based on random generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/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/2721Coding, 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 the interleaver involves a diagonal direction, e.g. by using an interleaving matrix with read-out in a diagonal direction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

公开了用于确定K个值的集合的至少一次置换的方法和装置。该方法和装置利用将索引值映射为K个值的集合内的另一值的第一置换函数并首先输出该经映射的值作为至少一次置换中的下一值;根据第二预定义置换函数将该索引值设为下一索引值;以及重复映射、输出和设置直至每个操作都执行了至少K次且已输出K个值的经置换的序列。

Description

用于生成置换的方法和装置
背景
领域
本发明涉及置换的生成,尤其涉及生成用于编码诸如将通过无线***传送的信息的一组索引的伪随机置换。
背景
在编码诸如将在无线通信***中传送的信息时,已知要生成数列的不同随机置换。该置换越随机,数据传输将越稳健且越具有对抗在已编码数据的传输期间所引入的差错的弹性。
在编码数据时利用置换的一特定示例包括例如可在无线发射机或收发机中利用的turbo编码器。特别地,图1示出了可在无线收发机中使用的turbo编码器100。该turbo编码器100接收由整数序列102(例如,{0,1,2,...,K-1},其中K是整数)标识的数据信号的输入。如***100中可见,序列102被输入一上卷积编码器104,后者将该序列编码并将得到的经卷积编码的序列输出到多路复用器106。多路复用器106还包括向其递送未经更改的序列102的输入108。最后,下线路包括顺序连接的置换生成器110和卷积编码器112。
特别地,turbo编码器100的下线路通过首先根据一规定算法或方法置换由整数序列102标识的数据信号来生成其信号。已知算法或方法的示例将在稍后讨论。
在序列102由置换生成器110置换之后,由卷积编码器112在随后向该经置换的序列应用卷积码。在该示例编码器100中,来自卷积编码器104和112的每一个的数据码元以及K个数据码元108由多路复用器106多路复用以作为经turbo编码的码元114输出。
如上所述,置换生成器110可采用特定算法或方法来生成序列102的不同置换。一种此类方法是使用随机数生成器生成随机置换来产生经置换的序列。因此,编码器和解码器两者都可利用同一随机数生成器和同一初始种子数以产生同一序列。然而,该方法的缺点在于编码器和解码器中的每一个必须将所生成的经置换的序列存储在存储器中。因此,对于K值较大和大量不同置换的情形,存储这些置换的所需的存储器的量较为耗成本。
另一方法生成置换的已知方法包括使用矩形阵列。作为示例,假定需要从0到9的数字的置换。这些数字可被写入到2行乘5列(2 x 5)大小的矩形阵列中。数字0到9随后被顺序***到各行并从各列读出。一示例性结果阵列被如下示出:
 
0 1 2 3 4
5 6 7 8 9
如从以上阵列可见,通过按列读出数字将生成的经置换的序列是{0,5,1,6,2,7,3,8,4,9}。本领域的技术人员将认识到的是,通过选择各种行数和列数的阵列,可生成不同的置换。然而,该方法的缺点是结果序列可能没有充分的随机程度,从而不能提供稳健的置换。
用于生成序列置换的另一已知方法包括使用线性同余技术。特别地,在这种技术中选择一介于0与K-1之间的数A0。接着,定义一递归函数以使得对于n=1,2,...,K-1的值,An等于(aAn-1+b)mod K,其中n是整数。连同该定义的函数,还必须满足许多条件。第一条件是值a和b小于K。另外,b必须与K互质。此外,对于每一个可除尽K的质数p,值(a-1)必须是p的倍数。另外,如果值K是4的倍数,则值(a-1)也必须是4的倍数。最后,需要a与K互质。
作为该技术的示例,假定值K=9,质数因子p是3,且a的值被选成(a-1)=3x。因此,如果a等于4且b等于7以及A0等于5,则生成的经置换的序列将为{5,0,7,8,3,1,2,6,4}。然而该方法的缺陷在于对于K为质数值的情形,可以选取的a的值只有1。因此,不同的置换仅在值A0和b上有所不同,从而限制了可实现的随机性。
作为本领域中利用置换的一类已知编码器的另一示例,图2示出了利用低密度生成器矩阵编码器的编码器200。如图所示,***接收被直接递送至多路复用器204的输入序列202以及从低密度生成器矩阵编码器208输出的经置换的序列206。在低密度生成器矩阵编码器208内,通过其本身又由K个数据码元的置换和将经置换的序列的块编码的块码组成的码的并行级联而生成经编码的码元。这些块码码元在从低密度生成器矩阵208并行206输出后由多路复用器204组合在一起。同样,低密度生成器矩阵208执行的置换也是通过上述已知算法或方法中的任意一种来实现的。因此,由于所讨论的每种置换算法或方法都具有一些缺陷,低密度生成器矩阵208也相应地具有同样缺陷。
概要
根据本公开的一方面,公开了一种用于确定K个值的集合的至少一次置换的方法。该方法包括将一索引值初始化为该K个值的集合内的设定值并根据第一预定义置换函数将该索引值映射为该K个值的集合内的第一经置换的值。该方法还包括输出第一经置换的值作为该至少一次置换中的第一个值,根据第二预定义置换函数生成基于该索引值的下一索引值,以及根据第一预定义置换函数将该下一索引值映射为该K个值的集合内的第二经置换的值。
根据另一方面,公开了一种包括用于确定K个值的集合的至少一次置换的指令集的机器可读存储介质。该指令集包括用于将一索引值初始化为K个值的集合内的设定值的指令。该指令集还包括用于根据第一预定义置换函数将该索引值映射为该K个值的集合内的第一经置换的值的指令,以及用于输出该第一经置换的值作为该至少一次置换中的第一个值的指令。还包括有用于根据第二预定义置换函数生成基于该索引值的下一索引值的指令;以及用于根据第一预定义置换函数将该下一索引值映射为该K个值的集合内的第二经置换的值的指令。
在又一方面,公开了一种用于确定K个值的集合的至少一次置换的置换生成器。该生成器包括:种子索引生成器,其被配置成将一索引值初始化为该K个值的集合内的设定值;以及第一置换单元,其被配置成根据第一预定义置换函数将该索引值映射为该K个值的集合内的第一经置换的值并输出该第一经置换的值作为该至少一次置换中的第一个值。该生成器还包括第二置换单元,其被配置成根据第二预定义置换函数生成基于该索引值的下一索引值并将该下一索引值输出至第一置换生成器。
根据再一方面,公开了一种用于通信***中的收发机。该收发机包括:编码器和解码器中的至少一个,用于通过至少一次置换的使用对无线信号进行编码或解码;以及置换生成器,用于确定K个值的集合的至少一次置换。特别地,置换生成器还包括:种子索引生成器,其被配置成将一索引值初始化为该K个值的集合内的设定值;第一置换单元,其被配置成根据第一预定义置换函数将该索引值映射为该K个值的集合内的第一经置换的值并输出该第一经置换的值作为至少一次置换中的第一个值;以及第二置换单元,其被配置成根据第二预定义置换函数生成基于该索引值的下一索引值并将该下一索引值输出到第一置换生成器。
根据本公开的又一方面,公开了一种用于确定K个值的集合的至少一次置换的装置。该装置包括:用于将一索引值初始化为所述K个值的集合内的设定值的装置;用于根据第一预定义置换函数将该索引值映射为该K个值的集合内的第一经置换的值的装置;用于输出该第一经置换的值作为至少一次置换中的第一个值的装置;用于根据第二预定义置换函数生成基于该索引值的下一索引值的装置;以及用于根据该第一预定义置换函数将该下一索引值映射为该K个值的集合内的第二经置换的值的装置。
附图简述
图1是包括置换生成器的turbo编码器的框图。
图2是使用低密度生成器矩阵——其本身又利用至少一个置换生成器——的编码器的框图。
图3是根据本公开生成一个或多个经置换的序列的方法的流程图。
图4是根据本公开采用至少一个置换生成器的通信***的框图。
图5是根据本发明可在***中使用的置换生成器的示例性框图。
图6是根据本公开的另一置换生成器的另一示例性框图。
具体描述
本公开内容公开了用于生成伪随机且还可用于随意长度的序列的置换的方法和装置。当前公开的方法和装置提供具有足够的随机性的反复置换以便即使对于较大的K值和大量不同置换而言也能在利用最小的存储量的同时提供稳健编码。这是通过利用第一置换生成器基于输出索引确定经置换的值并利用第二置换生成器提供将用于输入到第一置换生成器中的每一后续索引值的诸下一索引值的经置换的序列来实现的。
图3示出了根据本公开生成置换的过程。如图所示,该过程300在框302处发起。流程行进到框304,在其处索引被初始化为介于零与K-1之间的某一随机值。该值——被称为‘种子’——可用随机数生成器或类似函数导出。另外,作为替代,注意图3的方法也可利用固定种子值而不是生成的随机数。
在初始索引在框304中确定后,流程行进到框306,在其处经置换的值被设为等于该索引所映射的值,如框306所示。用于设置该经置换的值的特定映射函数将在以下具体讨论。然后流程行进到框308,在其处该经置换的值被输出作为0到K-1数字这一原始序列的经置换的序列中的第一索引。
在经置换的值在框308中已输出之后,流程行进到框310,在其处通过将索引的值设为等于基于当前索引递归确定的下一索引来更新索引,如框310所示。该索引函数将在以下更具体地描述。在已设置了索引值之后,流程行进到决策框312。
在框312,关于在框306、308和310中实现的过程是否已执行了K次迭代作出确定。如果没有,则流程往回行进到框306以重复框306、308和310的过程以实现经置换的序列的其它值。一旦在框310中确定已执行了K次迭代,该置换结束。然后流程行进到决策框314以确定是否已生成了M次置换。注意,所需的置换的次数(M)可以是一次或多次,这仅取决于用户偏好或***要求。在框314中确定生成了M次置换之后,过程300在终止框316终止。
注意,图3的过程可以执行任意所需的次数以便生成原始序列零到K-1的一组不同的经置换的序列。通过利用随机种子值,每次置换是独立生成的另外,更新用于每个后续映射的索引值提供了一种建立稳健且随机的置换的方法,而无需利用诸如存储器等大量***资源。
参照图3的框306的映射函数,一种生成置换的技术是将从零到K-1的数按行***到矩形阵列中。
这使得进入该阵列中的各项在随后能够如本公开中先前讨论地被逐列读出以产生原始序列的置换。该矩形阵列的高度仅受到确保高度a是小于K的某一质数的限制。因此,由“b”标示的矩形阵列的宽度的约束仅在于b等于K除以 a ( b = K a ) . 对于生成具有余数的宽度值b的K和a的值,值b被简单地上舍入为下一整数值来构成固有地具有整数行和列的阵列。
原始序列(即,零到K-1)的元素随后被逐行地***到该矩形阵列中。作为示例,假定K的值等于10,高度a等于三行而宽度b等于4列。结果矩形阵列将如表1中所示:
 
0 1 2 3
4 5 6 7
8 9 10 11
表1
接着,随后沿列读出各元素而得到结果序列(0,4,8,1,5,9,2,6,10,3,7,11)。因此,来自原始序列的一对一映射可由下表2给出:
 
元素 映射(元素)
0 0
1 4
2 8
3 1
4 5
5 9
6 2
7 6
8 10
9 3
10 7
 
11 11
表2
然而要注意,在以上示例中,原始序列(0到9)的元素映射至超出该集合的值(即,10和11)。尽管如此,但应注意原始阵列元素10映射至在原始数列的所需范围之内的经置换的索引7。因此,映射函数可被定义成重新映射落在原始数列的范围之外的经映射的元素,这可通过引用等于该经映射的元素的索引值(上表2中元素)并随后使用从该元素的映射得到的经映射的值——该值是落在原始数的范围之内的——来实现。作为所提供的该示例中的例示,首先被映射成值十(10)的值为八(8)的元素被重新映射为值七(7),该值是该阵列中从为十(10)的索引值得到的经映射的元素的值并且在0到9这一所需范围之内。相应地,对本示例使用该映射函数方案在以下表3中给出:
 
元素 经映射的元素
0 0
1 4
2 8
3 1
4 5
5 9
6 2
7 6
8 7(经由10映射)
9 3
表3
作为该映射函数的进一步示例,以下以C+代码编写的伪码是可用来执行上述映射函数的示例性实现。
unsigned int map(unsigned int index,unsigned int a,unsigned int b)
{
unsigned int rv=0;
unsigned int I,J;
J=index%a;
I=(index-J)/a;
rv=I+J*b;
if(rv>=K)
{
rv=map(rv,a,b);
}
return rv;
}
其中rv是针对输入索引值所返回的经置换的值。注意,以上代码返回该rv值,除非该值等于或超过值K。在这种情形下,利用该计算出的rv值而非一新的输入的索引作为索引值来再执行一次该映射函数。该功能性由此确保返回的经置换的值将不会落在0到K-1的值域之外。
注意,往回参照图3,在框306执行一次该函数以输出经置换的值(即,返回rv),而在框306执行经映射的函数之前将通过框310中执行的下一索引函数来改变种子索引值。考虑在图3的框310中执行的下一_索引函数,以下示例提供了一种为映射函数的每次迭代提供索引变化的示例性方法。在我们的第一示例中,下一_索引函数可简单地对于下一_函数的每次执行递增值1(例如,下一_函数=(索引+1)mod(k))。
然而,仅使用该第一次示例性置换生成(例如,以上映射函数)不一定产生最佳质量的随机置换。因此,为由第一次示例性置换生成所生成的每个经置换的值执行进一步的第二次置换以为映射函数的下一次执行确定一新的索引。即,由于该矩形阵列的高度是质数,所以该第二次置换包括使用该原始序列的置换确定或生成下一索引。
具体而言,这可以使用诸如An=(An-1+c)mod(a)等递归来实现,其中值c是小于a的某一质数而A0的初始值等于零。因此,使用上述K等于10、a等于3、b等于4并且数字c被设为值2的示例,序列结果置换将是序列。该置换实质是矩形阵列的行的结果置换。即,行0被置换为行2,行1被置换为行1,以及行2被置换为行0。使用该方案,使用K=10、a=3以及b=4的示例的该置换的结果映射在下表4中给出:
 
8 9 10 11
4 5 6 7
0 1 2 3
表4
类似地,矩形阵列的列可通过序列{0,1,...(b-1)}的置换来置换。因此,列0和列3保持不变,而列1和2被置换以使得它们被并置,得到的矩形阵列的映射在下表5中给出:
 
8 10 9 11
4 6 5 7
0 2 1 3
表5
在该矩形阵列的行和列都置换之后,进一步的随机性可通过对角地读取该结果阵列的各项来实现。即,读取从零行和零列开始并且逐行加1对a取模递增以及逐列加1对b取模递增。给定以上示例,则序列结果是{8,6,1,11,4,2,9,7,0,10,5,3}。由于大于或等于值K的各项是无意义的,所以这些项被跳过以生成结果序列{8,6,1,4,2,9,7,0,5,3}。
以下表6示出了得到的索引的置换序列:
 
索引 下一__索引
0 5
1 4
2 9
3 8
4 2
5 3
6 1
7 0
8 6
9 7
表6
该上述索引函数可通过以下C+语言代码来执行
unsigned int next_index(unsigned int index)
{
unsigned int rv=0;
int I,J;
J=index%b;
I=(index-J)/b;
do
{
J=J+2;
if(J>=b)
{
if(J%2==0)
{
J=1;
}
else if(J%2==1)
{
J=0;
}
}
I=(I+B)%a;//B是小于a的质数
rv=(I*b+J);
}while(rv>=K);
returnrv;
}
图3的过程为每次置换提供了仅由两个数字a和初始随机确定的种子“索引”值来定义的能力。然而如上所述,该初始索引值也可以是预定的,因此每次置换可简单地通过一个数a来定义,尽管一随机确定的种子可提供更佳稳健和随机的置换。a的值仅受该数为质数的限制,尽管如此,但a可从质数表中随机选出。此外,a的值被约束为小于值K。如果确保数b与a互质,则还可获得额外的质量等级。如本领域的技术人员可认识到的,上述映射和下一索引函数仅是示例性的,还可利用许多不同函数和码序列来置换经映射的值和用于确定将使用的下一索引值。通过仅要求一初始种子索引值和一选定的值a,上述方法在通信***中是有用的,因为仅需要从发射机向接收机传送两个值以供接收机中的解码器从经置换的序列确定初始序列。
作为图3的过程如何确定实际经置换的序列的例示,提供了以下示例在该示例中,出于简单起见,将使用先前使用的值和表。对于上述示例,值K被设为10而值a被设为3。映射函数的经置换的序列的结果可参见以上所示的表3。下一_索引函数的结果的示例在上文由示出了基于输入索引所返回的新索引的表6示出。
作为示例,假定初始种子或索引为7——不论其是随机生成还是特意选择的,以上讨论且在图3中显示的映射函数和下一索引函数生成具有稳健伪随机性的置换序列。作为结果得到的所生成的经置换的序列可参见下表7所示的例示,初始索引为7。
 
索引序列 映射_值序列 下一_索引序列
7 6 0
0 0 5
5 9 3
3 1 8
8 7 6
6 2 1
1 4 4
4 5 2
2 8 9
9 3 7
表7
在对映射函数(图3的框306)输入时,输出值是6,它将是输出的经置换的序列中的第一个值(例如,图3的框308)。在经置换的序列的第一个值输出之后,该经置换的序列是表7中被标记为映射值序列的中间列。在映射函数已确定第一个值之后,下一索引函数(例如,图3中的框310)基于前一索引值确定下一索引。在以上示例中,索引值7被输入到索引函数中,后者生成输出值0,如表7的第三列的第一行所示。
如图3的框312所示,在确定了下一索引值且还未生成K个经置换的值之后,过程返回以利用在框310中确定的新索引值来确定下一经映射的值(即,经置换的值)。如表7的第二行所示,所确定的新索引值0被用作映射函数的索引值输入。又如所示的,输入值0生成经置换的输出值0。因此,生成的该置换中的第二个经置换的值是0。
索引值0随后被输入到下一索引函数,后者返回对应下一索引值的值5。该新索引然后又被用来确定下一经置换的值9,以此类推。如图3中可见,映射函数和下一索引函数被重复K次以生成K个值的经置换的序列。相应地,仅作为示例,假定初始种子或索引为7,则生成的置换是{6,0,9,1,7,2,4,5,8,3},如表7中所示。
图4示出了其中可采用图3的方法的示例性通信***。特别地,图4示出了一通信***400,在该通信***400中具有至少两个收发机402和404。收发机设备(402或404)中的至少一个包括供用于将要传送的传输码元编码的编码器408使用的置换生成器406。编码器408例如可以是诸如图1中公开的turbo编码器或者如图2所示的使用低密度生成器矩阵的编码器。在任一情形下,置换生成器406根据图3中所示的过程操作。相应地,在传送信号——诸如无线信号传输410——时,如果初始种子在***400中是已知的,则仅需要向接收经编码的传输410的收发机404传送“a”的值,或者仅“a”的值和初始经编码的消息。相比于将置换存储在存储器中的***,这使得通信***400中的编码和解码不需要许多的***资源。在所示示例中,收发机之一被显示具有一解码器412,后者连同置换生成器414一起工作以将经编码的传输解码。生成器414与生成器406互补,并且能够通过利用“a”的值和初始种子值(在合适情况下)——这两者都可用该经编码的传输来传送——从接收到的置换生成原始序列。
图5示出了可在图4的***以及图1和2所示的编码器中使用的置换生成器500的示例性框图。如图所示,生成器500可包括诸如随机数生成器等种子索引生成器504。然而如先前所讨论的,在一初始种子为使用置换生成器的所有设备已知的情况下该种子索引生成器是任选的。
生成器500包括第一置换单元或生成器506,它接收要置换的0到K-1个整数的原始序列508。第一置换生成器可如上所述地执行映射函数,其中给定0到K-1个整数的范围内的起始索引值(诸如来自种子索引生成器504),可获得一经置换的值。该值随后可被输出到输出510,后者可将经置换的序列递送至诸如编码器等设备。
如图5中进一步所示,第一置换生成器将当前索引值递送至第二置换单元或生成器512。该生成器512可采用如上所述的下一_索引函数,其中从输入索引值生成一不同的经置换的索引值。然后该生成器向第一置换生成器返回下一索引值以确定经置换的序列中的下一经置换的值。
注意,生成器500可包括用于在给定值K的情况下确定供第一和第二置换生成器用来计算它们各自的值的阵列参数“a”和“b”的处理器514或等效设备或功能。此外,处理器514、或生成器506或508中的任一个可跟踪序列506中的所有值是否已被置换(即,针对所有K个值计算出了经置换的值)还应注意,生成器500可以被实现为在一个或多个处理器上运行的软件、硬件、或固件。
图6示出了根据本公开的另一置换生成器的另一示例性框图。如图所示,生成器602包括用于将索引或种子初始化为介于0与K-1之间的某一随机值的装置604。然而,如先前所提及的,在使用预定起始索引值的情况下该装置的使用可以是任选的。装置604将索引值输出到用于将经置换的值确定或设置成等于根据该索引返回经映射的元素或经置换的值的映射函数(即,映射(索引))的结果的装置606。装置606随后将得到的经置换的值递送给用于输出该经置换的值的装置608。另外,装置606将当前索引值提供给用于例如使用上述基于当前索引值的下一_索引函数(即设置索引=下一_索引(索引))来更新该索引(即,确定一新索引值)的装置610。装置610向装置606返回将在映射接收到的K个值的序列中的下一个值时使用的下一索引值。
生成器602还包括用于确定是否已输出了K个经置换的值的装置612。在装置606已经映射了K个经置换的值时,生成器停止处理直到输入下一K个数的序列。注意,生成器602的元件可以硬件、固件或诸如存储在机器可读存储介质上的指令等软件来实现。
结合本文中公开的示例描述的方法或算法可直接在硬件中、在由处理器执行的软件模块中、固件中、或在这当中的两者或多者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
上述示例仅是示例性的,本领域的技术人员现在可在不背离在此公开的发明概念的情况下对上述示例作出各种使用和变更。对这些示例的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他示例——例如即时消息接发服务或任何普通无线数据通信***中,而不会脱离在此描述的新颖方面的精神或范围。由此,本公开的范围并非旨在被限定于本文中示出的示例,而是应被授予与本文中公开的原理和新颖性特征一致的最广义的范围。本文中专门使用措辞“示例性的”来表示“起到示例、实例、或例示的作用”。本文中描述为“示例性”的任何示例性示例不必被解释为优于或胜过其他示例。相应地,本文中描述的各新颖方面将仅由所附权利要求的范围来限定。

Claims (50)

1.一种用于确定K个值的集合的至少一次置换的方法,包括:
将一索引值初始化为所述K个值的集合内的设定值;
根据第一预定义置换函数将所述索引值映射为所述K个值的集合内的第一经置换的值;
输出所述第一经置换的值作为所述至少一次置换中的第一个值;
根据第二预定义置换函数生成基于所述索引值的下一索引值;以及
根据所述第一预定义置换函数将所述下一索引值映射为所述K个值的集合内的第二经置换的值。
2.如权利要求1所述的方法,其特征在于,还包括:
输出所述第二经置换的值作为所述至少一次置换中的第二个值。
3.如权利要求1所述的方法,其特征在于,还包括:
继续映射诸下一索引值以输出其它经置换的值并生成其它下一索引值直至所述置换包括所有所述K个值。
4.如权利要求3所述的方法,其特征在于,还包括:
在确定所述至少一次置换之后通过重复所述映射索引值的过程确定至少第二次置换以进行一定义次数的置换。
5.如权利要求1所述的方法,其特征在于,所述设定值是由随机数生成器确定的随机数。
6.如权利要求1所述的方法,其特征在于,根据所述第一预定义置换函数将所述索引值映射为所述K个值的集合内的经置换的值包括映射至具有a行和b列的阵列,其中a是小于K的质数而b被设成至少为K/a的值。
7.如权利要求6所述的方法,其特征在于,所述第一置换函数执行将所述K个值的集合按行写入所述阵列中并随后按列从所述阵列读出所述值的操作以实现经置换的映射元素的集合。
8.如权利要求7所述的方法,其特征在于,所述第一置换函数包括在所述阵列的大小被调节成使得a与b的乘积大于K时还通过使用具有大于所述K个值的值的经映射的置换元素重映射来进行重映射。
9.如权利要求6所述的方法,其特征在于,所述第二置换函数执行所述阵列的经编号的行的置换和所述阵列的经编号的列的置换以生成所述阵列内所述索引值的置换。
10.如权利要求6所述的方法,其特征在于,所述第二置换是由关系An=(An-1+c)mod(a)定义的递归函数,其中An是所述经置换的索引值,值c是小于a的质数,而初始值A0被定义为零。
11.一种包括用于确定K个值的集合的至少一次置换的指令集的机器可读存储介质,所述指令集包括:
用于将一索引值初始化为所述K个值的集合内的设定值的指令;
用于根据第一预定义置换函数将所述索引值映射为所述K个值的集合内的第一经置换的值的指令;
用于输出所述第一经置换的值作为所述至少一次置换中的第一个值的指令;
用于根据第二预定义置换函数生成基于所述索引值的下一索引值的指令;以及
用于根据所述第一预定义置换函数将所述下一索引值映射为所述K个值的集合内的第二经置换的值的指令。
12.如权利要求11所述的机器可读存储介质,其特征在于,所述指令集还包括:
用于输出所述第二经置换的值作为所述至少一次置换中的第二个值的指令。
13.如权利要求11所述的机器可读存储介质,其特征在于,所述指令集还包括:
用于继续映射诸下一索引值以输出其它经置换的值并生成其它下一索引值直至所述置换包括所有所述K个值的指令。
14.如权利要求13所述的机器可读存储介质,其特征在于,所述指令集还包括:
在确定所述至少一次置换之后通过重复所述映射索引值数的过程确定至少第二次置换以进行一定义次数的置换。
15.如权利要求11所述的机器可读存储介质,其特征在于,所述设定值是由随机数生成器确定的随机数。
16.如权利要求11所述的机器可读存储介质,其特征在于,所述用于根据所述第一预定义置换函数将所述索引值映射为所述K个值的集合内的经置换的值的指令包括映射至具有a行和b列的阵列,其中a是小于K的质数而b被设成至少为K/a的值。
17.如权利要求16所述的机器可读存储介质,其特征在于,所述第一置换函数执行将所述K个值的集合按行写入所述阵列中并随后按列从所述阵列读出所述值的操作以实现经置换的映射元素的集合。
18.如权利要求17所述的机器可读存储介质,其特征在于,所述第一置换函数包括在所述阵列的大小被调节成使得a与b的乘积大于K时还通过使用具有大于所述K个值的值的经映射的置换元素重映射来进行重映射。
19.如权利要求16所述的机器可读存储介质,其特征在于,所述第二置换函数执行所述阵列的经编号的行的置换和所述阵列的经编号的列的置换以生成所述阵列内所述索引值的置换。
20.如权利要求16所述的机器可读存储介质,其特征在于,所述第二置换是由关系An=(An-1+c)mod(a)定义的递归函数,其中An是所述经置换的索引值,值c是小于a的质数,而初始值A0被定义为零。
21.一种用于确定K个值的集合的至少一次置换的置换生成器,包括:
种子索引生成器,其被配置成将一索引值初始化为所述K个值的集合内的设定值;
第一置换单元,其被配置成根据第一预定义置换函数将所述索引值映射为所述K个值的集合内的第一经置换的值并输出所述第一经置换的值作为所述至少一次置换中的第一个值;以及
第二置换单元,其被配置成根据第二预定义置换函数生成基于所述索引值的下一索引值并将所述下一索引值输出至所述第一置换生成器。
22.如权利要求21所述的置换生成器,其特征在于,所述第一置换单元还被配置成根据所述第一预定义置换函数将接收到的下一索引值映射为所述K个值的集合内的第二经置换的值并输出所述第二经置换的值作为所述至少一次置换中的第二个值。
23.如权利要求21所述的置换生成器,其特征在于,所述第二置换单元被配置成生成其它下一索引值直至所述置换包括所有所述K个值以及所述第一置换单元被配置成映射接收自所述第二置换单元的所述诸下一索引值的每一个并输出这些经映射的值作为所述置换中其它经置换的值。
24.如权利要求23所述的置换生成器,其特征在于,所述第一和第二置换单元还被配置成在确定所述至少一次置换之后通过重复所述映射索引值确定至少第二次置换以进行一定义次数的置换。
25.如权利要求21所述的置换生成器,其特征在于,所述种子索引生成器还包括随机数生成器,所述种子索引生成器被配置成基于所述随机数生成器确定的随机数来生成所述设定值。
26.如权利要求21所述的置换生成器,其特征在于,所述第一置换单元还被配置成根据所述第一预定义置换函数将所述索引值映射为所述K个值的集合内的经置换的值,包括映射至具有a行和b列的阵列,其中a是小于K的质数而b被设成至少为K/a的值。
27.如权利要求26所述的置换生成器,其特征在于,所述第一置换单元被配置成执行与将所述K个值的集合按行写入所述阵列中并随后按列从所述阵列读出所述值等效的操作以实现经置换的映射元素的集合。
28.如权利要求27所述的置换生成器,其特征在于,所述第一置换单元还被配置成在所述阵列的大小被调节成使得a与b的乘积大于K时通过使用具有大于所述K个值的值的经映射的置换元素重映射来进行重映射。
29.如权利要求26所述的置换生成器,其特征在于,所述第二置换单元被配置成执行与所述阵列的经编号的行的置换和所述阵列的经编号的列的置换等效的操作以生成所述阵列内所述索引值的置换。
30.如权利要求26所述的置换生成器,其特征在于,所述第二置换单元被配置成执行由关系An=(An-1+c)mod(a)定义的递归函数,其中An是所述经置换的索引值,值c是小于a的质数,而初始值A0被定义为0。
31.一种用于通信***中的收发机,包括:
编码器和解码器中的至少一个,用于通过至少一次置换的使用对无线信号进行编码或解码;以及
置换生成器,用于确定K个值的集合的所述至少一次置换,所述置换生成器包括:
种子索引生成器,其被配置成将一索引值初始化为所述K个值的集合内的设定值;
第一置换单元,其被配置成根据第一预定义置换函数将所述索引值映射为所述K个值的集合内的第一经置换的值并输出所述第一经置换的值作为所述至少一次置换中的第一个值;以及
第二置换单元,其被配置成根据第二预定义置换函数生成基于所述索引值的下一索引值并将所述下一索引值输出至所述第一置换生成器。
32.如权利要求31所述的收发机,其特征在于,所述第一置换单元还被配置成根据所述第一预定义置换函数将接收到的下一索引值映射为所述K个值的集合内的第二经置换的值并输出所述第二经置换的值作为所述至少一次置换中的第二个值。
33.如权利要求31所述的收发机,其特征在于,所述第二置换单元被配置成生成其它下一索引值直至所述置换包括所有所述K个值以及所述第一置换单元被配置成映射接收自所述第二置换单元的所述诸下一索引值的每一个并输出这些经映射的值作为所述置换中其它经置换的值。
34.如权利要求33所述的收发机,其特征在于,所述第一和第二置换单元还被配置成在确定所述至少一次置换之后通过重复所述映射索引值确定至少第二次置换以进行一定义次数的置换。
35.如权利要求31所述的收发机,其特征在于,所述种子索引生成器还包括随机数生成器,所述种子索引生成器被配置成基于所述随机数生成器确定的随机数来生成所述设定值。
36.如权利要求31所述的收发机,其特征在于,所述第一置换单元还被配置成根据所述第一预定义置换函数将所述索引值映射为所述K个值的集合内的经置换的值,包括映射至具有a行和b列的阵列,其中a是小于K的质数而b被设成至少为K/a的值。
37.如权利要求36所述的收发机,其特征在于,所述第一置换单元被配置成执行与将所述K个值的集合按行写入所述阵列中并随后按列从所述阵列读出所述值等效的操作以实现经置换的映射元素的集合。
38.如权利要求37所述的收发机,其特征在于,所述第一置换单元还被配置成在所述阵列的大小被调节成使得a与b的乘积大于K时通过使用具有大于所述K个值的值的经映射的置换元素重映射来进行重映射。
39.如权利要求36所述的收发机,其特征在于,所述第二置换单元被配置成执行与所述阵列的经编号的行的置换和所述阵列的经编号的列的置换等效的操作以生成所述阵列内所述索引值的置换。
40.如权利要求36所述的收发机,其特征在于,所述第二置换单元被配置成执行由关系An=(An-1+c)mod(a)定义的递归函数,其中An是所述经置换的索引值,值c是小于a的质数,而初始值A0被定义为零。
41.一种用于确定K个值的集合的至少一次置换的装置,包括:
用于将一索引值初始化为所述K个值的集合内的设定值的装置;
用于根据第一预定义置换函数将所述索引值映射为所述K个值的集合内的第一经置换的值的装置;
用于输出所述第一经置换的值作为所述至少一次置换中的第一个值的装置;
用于根据第二预定义置换函数生成基于所述索引值的下一索引值的装置;以及
用于根据所述第一预定义置换函数将所述下一索引值映射为所述K个值的集合内的第二经置换的值的装置。
42.如权利要求41所述的装置,其特征在于,还包括:
用于输出所述第二经置换的值作为所述至少一次置换中的第二个值的装置。
43.如权利要求41所述的装置,其特征在于,还包括:
用于继续映射诸下一索引值以输出其它经置换的值并生成其它下一索引值直至所述置换包括所有所述K个值的装置。
44.如权利要求43所述的装置,其特征在于,还包括:
用于在确定所述至少一次置换之后通过重复所述映射索引值的过程确定至少第二次置换以进行一定义次数的置换的装置。
45.如权利要求41所述的装置,其特征在于,所述设定值是由随机数生成器确定的随机数。
46.如权利要求41所述的装置,其特征在于,根据所述第一预定义置换函数将所述索引值映射为所述K个值的集合内的经置换的值包括映射至具有a行和b列的阵列,其中a是小于K的质数而b被设成至少为K/a的值。
47.如权利要求46所述的装置,其特征在于,所述第一置换函数执行将所述K个值的集合按行写入所述阵列中并随后按列从所述阵列读出所述值的操作以实现经置换的映射元素的集合。
48.如权利要求47所述的装置,其特征在于,所述第一置换函数包括在所述阵列的大小被调节成使得a与b的乘积大于K时通过使用具有大于所述K个值的值的经映射的置换元素重映射来进行重映射。
49.如权利要求46所述的装置,其特征在于,所述第二置换函数执行所述阵列的经编号的行的置换和所述阵列的经编号的列的置换以生成所述阵列内所述索引值的置换。
50.如权利要求46所述的装置,其特征在于,所述第二置换是由关系An=(An-1+c)mod(a)定义的递归函数,其中An是所述经置换的索引值,值c是小于a的质数,而初始值A0被定义为0。
CN2007800044027A 2006-02-02 2007-02-02 用于生成置换的方法和装置 Expired - Fee Related CN101379711B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/347,507 2006-02-02
US11/347,507 US8082479B2 (en) 2006-02-02 2006-02-02 Methods and apparatus for generating permutations
PCT/US2007/061579 WO2007090204A1 (en) 2006-02-02 2007-02-02 Methods and apparatus for generating permutations

Publications (2)

Publication Number Publication Date
CN101379711A true CN101379711A (zh) 2009-03-04
CN101379711B CN101379711B (zh) 2012-12-26

Family

ID=37983573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800044027A Expired - Fee Related CN101379711B (zh) 2006-02-02 2007-02-02 用于生成置换的方法和装置

Country Status (6)

Country Link
US (1) US8082479B2 (zh)
EP (1) EP1980023A1 (zh)
JP (1) JP2009526445A (zh)
KR (1) KR101006032B1 (zh)
CN (1) CN101379711B (zh)
WO (1) WO2007090204A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034471A (zh) * 2012-12-10 2013-04-10 杜海洋 一种随机数的生成方法及***
CN103530086A (zh) * 2013-09-26 2014-01-22 福建升腾资讯有限公司 一种分散机制的软件随机数生成方法
CN106371804A (zh) * 2011-12-22 2017-02-01 英特尔公司 用于执行置换操作的设备和方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8289999B1 (en) * 2009-11-05 2012-10-16 L-3 Services, Inc. Permutation mapping for ARQ-processed transmissions
US9165023B2 (en) 2011-01-31 2015-10-20 Freescale Semiconductor, Inc. Integrated circuit device and method for determining an index of an extreme value within an array of values
US20170177358A1 (en) * 2015-12-20 2017-06-22 Intel Corporation Instruction and Logic for Getting a Column of Data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347385B1 (en) * 1998-08-03 2002-02-12 Nortel Networks Limited Interleavers for turbo code
JP4081875B2 (ja) 1998-09-08 2008-04-30 ソニー株式会社 符号化装置および方法、復号装置および方法、並びに提供媒体
US6871303B2 (en) 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
KR100346170B1 (ko) 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
US6442728B1 (en) * 1999-01-11 2002-08-27 Nortel Networks Limited Methods and apparatus for turbo code
JP3515036B2 (ja) 1999-02-19 2004-04-05 株式会社エヌ・ティ・ティ・ドコモ インターリービング方法、インターリービング装置、ターボ符号化方法及びターボ符号化装置
AUPQ403399A0 (en) * 1999-11-12 1999-12-09 Canon Kabushiki Kaisha Image compression
JP2001196941A (ja) 2000-01-13 2001-07-19 Matsushita Electric Ind Co Ltd インタリーブ装置およびインタリーブ方法
US6549998B1 (en) * 2000-01-14 2003-04-15 Agere Systems Inc. Address generator for interleaving data
JP2001285077A (ja) 2000-03-31 2001-10-12 Mitsubishi Electric Corp 通信装置および通信方法
KR100393608B1 (ko) 2000-09-29 2003-08-09 삼성전자주식회사 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법
US7091889B2 (en) 2002-09-09 2006-08-15 Telefonaktiebolaget Lm Ericsson (Publ) Speed and memory optimized interleaving
WO2004041340A2 (en) 2002-10-30 2004-05-21 Nektar Therapeutics Increased dosage metered dose inhaler
JP4077355B2 (ja) 2003-04-16 2008-04-16 三菱電機株式会社 通信装置および通信方法
JP4265345B2 (ja) 2003-08-22 2009-05-20 日本電気株式会社 携帯電話機、インターリーブパラメータ演算装置、方法及びプログラム
US7673213B2 (en) * 2004-02-19 2010-03-02 Trellisware Technologies, Inc. Method and apparatus for communications using improved turbo like codes
EP1587217A1 (en) * 2004-04-15 2005-10-19 Istituto superiore Mario Boella per le Tecnologie dell'Informazione e delle Telecomunicazioni Pruning methods for the generation of S-random interleavers
GB2415336B (en) * 2004-06-18 2006-11-08 Toshiba Res Europ Ltd Bit interleaver for a mimo system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106371804A (zh) * 2011-12-22 2017-02-01 英特尔公司 用于执行置换操作的设备和方法
CN106371804B (zh) * 2011-12-22 2019-07-12 英特尔公司 用于执行置换操作的设备和方法
CN103034471A (zh) * 2012-12-10 2013-04-10 杜海洋 一种随机数的生成方法及***
CN103034471B (zh) * 2012-12-10 2016-06-01 杜海洋 一种随机数的生成方法及***
CN103530086A (zh) * 2013-09-26 2014-01-22 福建升腾资讯有限公司 一种分散机制的软件随机数生成方法
CN103530086B (zh) * 2013-09-26 2017-01-18 福建升腾资讯有限公司 一种分散机制的软件随机数生成方法

Also Published As

Publication number Publication date
JP2009526445A (ja) 2009-07-16
KR20080099299A (ko) 2008-11-12
CN101379711B (zh) 2012-12-26
US20070192655A1 (en) 2007-08-16
WO2007090204A1 (en) 2007-08-09
US8082479B2 (en) 2011-12-20
KR101006032B1 (ko) 2011-01-06
EP1980023A1 (en) 2008-10-15

Similar Documents

Publication Publication Date Title
CN101379711B (zh) 用于生成置换的方法和装置
CN100596029C (zh) Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
CN102208210B (zh) 闪存设备及其数据存储方法
CN102647193B (zh) 具有良好性能的不规则缩短的ldpc码的码构造
CN1930782B (zh) 用于交织器存储器和去交织器存储器的地址生成器
US20030131304A1 (en) Error-correcting encoding apparatus
CN101222295B (zh) 将数据分为多段部分数据来分发的***
EP0899888A1 (en) Coding and decoding methods and devices and equipment using them
CN108809506B (zh) 一种编码方法及装置
KR101800409B1 (ko) 송신 장치 및 그의 인터리빙 방법
Longo A noiseless coding theorem for sources having utilities
CN103324548A (zh) 存储器控制器
EP2267904A2 (en) Interleaving method and apparatus, de-interleaving method and apparatus, and interleaving/de-interleaving system and apparatus
CN102356558A (zh) 以混洗哈达玛函数对信号进行编码
CN102037651B (zh) 解码装置、数据存储装置、数据通信***以及解码方法
US6646579B2 (en) Method and device for generating OVSF code words
KR100975696B1 (ko) 통신 시스템에서 부호화 장치 및 방법
CN106034007A (zh) 信令编码调制方法和解调译码方法及装置
CN101346884B (zh) 卷积编码器、通信装置以及卷积编码方法
Ryabko et al. “Book stack” as a new statistical test for random numbers
CN107408950A (zh) 发送器及其奇偶校验置换方法
CN101510782A (zh) 译码方法和***
CN100392986C (zh) 交叉循环码的编码方法与装置
CN106921469A (zh) 信令编码调制方法和解调译码方法
US20190020359A1 (en) Systematic coding technique for erasure correction

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20121226

Termination date: 20160202