首页> 中国专利> 基于无速率码的多用户随机接入系统及其编译码方法

基于无速率码的多用户随机接入系统及其编译码方法

摘要

本发明公开了一种基于无速率码的多用户随机接入系统及其编译码方法,利用无速率码的自适应链路适配特性,以及其编码时的随机特性,在各个用户发送机无需知道信道状态信息,以及在传输过程中无需任何反馈重传机制的条件下,能够自适应的调整各自的传输码率,且能够有效利用多个用户冲突重叠的信息,实现多个用户信息同时有效可靠的传输及正确的检测分离。

著录项

  • 公开/公告号CN101695016A

    专利类型发明专利

  • 公开/公告日2010-04-14

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200910153394.3

  • 申请日2009-10-22

  • 分类号H04L1/00(20090101);H04W28/04(20090101);H04W74/08(20090101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人周烽

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2023-12-17 23:44:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-10

    授权

    授权

  • 2010-05-26

    实质审查的生效 IPC(主分类):H04L1/00 申请日:20091022

    实质审查的生效

  • 2010-04-14

    公开

    公开

说明书

技术领域

本发明涉及无线通信领域,尤其涉及一种基于无速率码的多用户随机接入系统及其编译码方法。

背景技术

在现代无线移动通信系统中,必须采用良好的多用户传输方式来保证多个用户同时有效可靠地传输信息。传统的ALOHA技术虽然能够实现多用户单信道条件下的传输,但不能利用多个用户冲突或重叠的信息,效率不高。而传统的CDMA(Code-Division Multiple-Access)传输方式,是通过不同的扩频序列来区分不同用户的信息,以完成多用户信息的接入传输。Li Ping提出的IDMA(Interleave-Division Multiple-Access)传输方式(见“Interleave DivisionMultiple-Access”,IEEE Trans.Wireless Commun.,vo1.5,no.4,pp.938-947,Apr.2006.),则是不同用户通过使用不同的交织器,有效的利用用户混叠的信息,来实现不同用户的信号分离,以完成多用户信息的接入传输。但无论是CDMA还是IDMA,系统中每个用户所使用的都是传统的码率固定的编码方式,在进行信息传输之前,通常需要根据信道状态信息估计信道参数,根据信道参数设计一个码率固定为R的信道纠错编码。当估计的信道参数大于实际的信道参数时,虽然可以实现可靠传输,但是造成了传输的浪费,因为此时可以使用更高码率的信道纠错编码;当估计的信道参数小于实际的信道参数时,则不能实现可靠传输。为了使发送端得知信道的状态信息以设计码率固定的编码方式,以及在传输过程中重传丢失的数据包,往往需要采用一定的反馈机制,例如ARQ(AutoRepeat-Request)等。

发明内容

本发明的目的在于针对现有技术的不足,提供一种基于无速率码的多用户随机接入系统及其编译码方法,在各个用户发送机无需知道信道状态信息,以及在传输过程中无需任何反馈重传机制的条件下,能够自适应地调整各自的传输码率,且能够有效利用多个用户冲突重叠的信息,实现多个用户信息同时有效可靠的传输及正确的检测分离。

本发明的目的是通过以下技术方案来实现的:一种基于无速率码的多用户随机接入系统,由发送端和接收端组成。其中发送端包含K(K为任意正整数)个单路输入、单路输出的发送机,接收端包含一个单路输入、K路输出的接收机。该系统运行于通信两端。在发送端,每一个用户都拥有一个发送机,每个发送机的结构均相同。对于用户k(k=1,2,...,K),其发送机包括串行连接的编码器-k,映射器-k和接入控制器-k:

编码器-k,用于将用户k的消息数据包编为源源不断产生的Rateless Code编码包,其输入端接外部消息数据包的数据流,其输出端接至映射器-k的输入端;

映射器-k,用于完成由编码包数据比特到编码包传输符号的映射,可用通常的线性调制映射器来实现,其输入端接编码器-k的输出端,其输出端接至接入控制器-k的输入端;

接入控制器-k,主要完成对编码包的发送控制,即按事先确定的概率随机决定是否将当前编码包在当前时隙中接入信道进行发送,其输入端接映射器-k的输出端,其输出端接至信道;

K个用户的发送机并行接入信道,组成系统的发送端。

在接收端,其单路输入、K路输出的接收机在内部分为并行的K路,每一个用户都对应其中相应的一路,并具有相同的结构。对于用户k(k=1,2,...,K),其所对应的那一路结构包括串行连接的解映射及译码软信息估计器-k和判决译码器-k:

解映射及译码软信息估计器-k,用于根据接收到的来自信道的混叠编码包完成各用户信号分离,以及通过解映射完成对用户k的编码包比特Log似然比软信息的估计,其输入端接接收机的来自于信道的输入以及除了判决译码器-k之外其余各判决译码器的软信息输出端,其输出端接至判决译码器-k的输入端;

判决译码器-k,用于完成对用户k编码包的译码,其输入端接解映射及译码软信息估计器-k的输出端,其判决结果输出端输出译码结果,作为接收机的一路输出,其软信息输出端接至除了解映射及译码软信息估计器-k之外的其余各解映射及译码软信息估计器的输入端;

K路结构并行构成接收机,组成系统的接收端。

我们把这种基于无速率码的多用户随机接入系统简称为RMA(RatelessMultiple-Access)系统。

一种上述基于无速率码的多用户随机接入系统的编译码方法,包括编码方法和译码方法。在发送端,按照编码方法完成各用户的编码接入,将各用户的编码包接入信道进行发送;在接收端,按照译码方法,根据接收到的混叠编码包,完成各用户编码包的检测分离和译码;

编码方法如下:设每个用户的发送机均需要发送m个消息数据包,每个消息数据包由b个数据比特组成,其中包括一个循环冗余校验码,用于译码器判断译码是否成功,用dk(i)表示消息数据包,其中i为消息数据包的编号(i=1,2,...,m),下标k为用户的编号(k=1,2,...,K);

考虑其中的第k个用户(k=1,2,...,K),按照如下步骤进行编码接入:

1)利用编码器-k进行编码;

将消息数据包dk(i)送入编码器-k,通过Rateless编码方式(如LT Code,RaptorCode等),得到源源不断产生的编码包序列以及该码的Tanner图,用vk(s)表示编码所得的编码包,其中s为编码包的编号(s=1,2,...),下标k为用户的编号(k=1,2,...,K);

各用户独立完成自己的编码过程,编码时使用不同于其他用户的随机数生成器,以得到与其他用户不同的、相互独立的Tanner图,这样可以保证各用户信号的不相关性,为译码时各用户的信号分离提供可行性;

2)利用映射器-k,进行由编码包数据比特到编码包传输符号的映射;

将由编码器-k得到的编码包vk(s)送入映射器-k,映射方式可采用普通的线性调制方式(如BPSK、QPSK等),完成由编码包数据比特到编码包传输符号的映射:vk(s)→wk(s),其中s为编码包的编号(s=1,2,...),下标k为用户的编号(k=1,2,...,K);

3)利用接入控制器-k,进行对编码包的发送控制;

将由映射器-k得到的经过映射的编码包wk(s)送入接入控制器-k,在任一个时隙j(j=1,2,...),用户k以概率pk顺序将wk(s)接入信道发送:用xk(j)表示用户k在时隙j经信道发送的符号,如果决定在当前时隙j将编码包wk(s)接入信道,则在编码包wk(s)包头增加K个比特的用户标示信息,其中第k位置1,其余各位置0,组成发送编码包wk′(s),令xk(j)=wk′(s),在下一个时隙判断是否将wk(s+1)接入信道;否则令xk(j)=0,下一个时隙继续判断是否将wk(s)接入信道;

由于采用的是Rateless编码方式,所以经过编码及映射后的序列wk={wk(1),wk(2),...,wk(s),...}是源源不断产生的,于是经信道发送的序列xk={xk(1),xk(2),...,xk(j),...}也是源源不断的,长度并不是固定的,xk的每一个长度都对应相应的一个码率;

每个用户的发送机根据以上规则,源源不断的产生编码包并接入信道,直至接收端告知它停止发送。

译码方法如下:

接收机接收到来自信道的,源源不断的,各个用户相互混叠且加上了噪声的编码包,各用户的信号分离及译码同时进行,对于用户k(k=1,2,...,K),其判决译码器-k采用和编码器-k相同的随机数生成器,所以可以准确的重构该码的Tanner图,按照如下步骤进行信号分离和译码:

1)接收机首先接收到N=m个来自信道的混叠编码包;

2)接收机再接收ΔN个混叠编码包,令N=N+ΔN,此时的码率为R=mN;

3)将接收到的编码包送入解映射及译码软信息估计器-k,采用“基于无速率码的多用户随机接入系统的译码软信息估计方法”,在当前码率R下进行运算,利用除了判决译码器-k之外其余各用户的判决译码器的输出软信息(初始化时为0),更新估计软信息;

4)将由解映射及译码软信息估计器-k更新得到的估计软信息作为判决译码器-k的输入,在重构的当前码率R下的Tanner图上运行BP(Belief-Propagation)译码算法,完成一轮迭代译码运算,并更新判决译码器-k的输出判决结果信息和输出软信息;

5)利用判决译码器-k的输出判决结果信息判断译码结果是否满足Tanner图中校验节点所限制的校验关系,或者迭代次数已经达到所限定的最大次数,如果满足上述两个条件之一,则转入步骤6);否则转入步骤3);

6)利用各个包内的循环冗余校验码判断数据包是否都译码正确,如果都正确,转入步骤7);否则转入步骤2);

7)译码结束,接收机发送一个信号告知用户k的发送机停止发送。

所述基于无速率码的多用户随机接入系统的译码软信息估计方法如下:

我们设接收机接收到来自信道的,源源不断的,各用户混叠且加上了噪声的编码包序列为y={y(1),y(2),...,y(j),...}:

y(j)=Σi=1Khi·xi(j)+n(j)(j=1,2,...)

其中j为时隙标号,下标i为用户的编号(i=1,2,...K),xj={xi(1),xi(2),...,xi(j),...}为第i个用户经信道发送的源源不断的序列,h为信道参数,n={n(1),n(2),...,n(j),...}为均值为0,方差为σ2的白高斯噪声序列;

在接收机,我们根据任一时隙j接收到的编码包包头的用户标示信息,判断出该时隙各用户的信道接入状况(对包头K个比特作硬判决,第k(k=1,2,...,K)位比特判决结果为1表示第k个用户接入了信道,为0表示第k个用户没有接入信道),然后去掉用户标示信息;用Jk表示用户k(k=1,2,...,K)的编码包接入时隙的集合:

Jk={j|xk(j)≠0,j=1,2,...}={Jk(1),Jk(2),...,Jk(qk),...}

其中qk为集合Jk中元素的编号(qk=1,2,...),下标k为用户的编号(k=1,2,...,K);

对于每一个用户,我们要在接收机接收到不同长度的编码包序列y时,即在不同的码率R下,计算其解映射及译码软信息估计器的输出估计软信息,对用户k,设接收机已经接收了N个编码包y={y(1),y(2),...,y(N)},则当前的码率为R=m/N;

对于其接入时隙集合Jk中的每一个时隙Jk(qk),其接收到的混叠编码包y(Jk(qk)),可以写作:

y(Jk(qk))=hk·xk(Jk(qk))+Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·xi(Ji(qi))+n(Jk(qk))

=hk·xk(Jk(qk))+ζk(Jk(qk))(qk=1,2,...|Jk|)

其中ζk(Jk(qk))为在时隙Jk(qk),非零的其他用户信号和高斯白噪声之和,我们将其称为合并噪声且近似视其为高斯随机变量,均值记为E[ζk(Jk(qk))],方差记为Var[ζk(Jk(qk))],于是可以将接收编码包y(Jk(qk))也视作符合高斯特性:y(Jk(qk))~N(hk·xk(Jk(qk))+E[ζk(Jk(qk))],Var[ζk(Jk(qk))]),

其中E[ζk(Jk(qk))]=Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·E[xi(Ji(qi))]

Var[ζk(Jk(qk))]=Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi2·Var[xi(Ji(qi))]+σ2

在解映射及译码软信息估计器-k中,首先按照所选用的映射方式所对应的均值运算规则ΓE和方差运算规则ΓVar,由其余各用户编码包的比特log似然比软信息,算出其余各用户编码包的映射符号的均值和方差;然后按照所选用的映射方式所对应的解映射规则F,由接收到的混叠编码包和已经算出的其余各用户编码包的映射符号的均值和方差,根据接收编码包符合的高斯特性,估计出用户k编码包的比特log似然比软信息。

在第a次迭代时,按照“估计软信息更新表达式”

LLRka(v(qk))=F(y(Jk(qk)),E[ζk(Jk(qk))],Var[ζk(Jk(qk))])

=F(y(Jk(qk)),Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·E[xi(Ji(qi))],

Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi2·Var[xi(Ji(qi))]+σ2)

=F(y(Jk(qk)),Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·ΓE(Lia-1(v(qi))),

Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi2·ΓVar(Lia-1(v(qi)))+σ2)

(qk=1,2,...|Jk|)

更新估计软信息,式中LLRka(v(qk))为用户k第a次迭代译码所需的由解映射及译码软信息估计器-k估计出的第qk个编码包的比特log似然比软信息矢量,Lia-1(v(qi))为用户i第a-1次迭代译码后的第qi个编码包的比特log似然比软信息矢量(初始化a=1时,);

如果映射方式采用BPSK,将具体的均值运算规则ΓE,BPSK,方差运算规则ΓVar,BPSK以及解映射规则FBPSK代入“估计软信息更新表达式”,可以得到其具体的表达形式:

LLRka(v(qk)(c))=2hk·y(Jk(qk))(c)-Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·(1-2eLia-1(v(qi)(c))+1)Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)4hi2·eLia-1(v(qi)(c))(eLia-1(v(qi)(c))+1)2+σ2

(qk=1,2,...|Jk|c=1,2,...,b)

其中y(Jk(qk))(c)表示在时隙Jk(qk)接收到的混叠编码包y中的第c个符号,LLRka(v(qk)(c))为用户k第a次迭代译码所需的由解映射及译码软信息估计器-k估计出的第qk个编码包的第c个比特的log似然比软信息,Lia-1(v(qi)(c))为用户i第a-1次迭代译码后的第qi个编码包的第c个比特的log似然比软信息。

如果映射方式采用QPSK,则将具体的均值运算规则ΓE,QPSK,方差运算规则ΓVar,QPSK以及解映射规则FQPSK代入“估计软信息更新表达式”,可以得到其具体的表达形式:

LLRka(v(qk)(2c-1))=2hk·Re[y(Jk(qk))(c)]-Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·(1-2eLia-1(v(qi)(2c-1))+1)Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)4hi2·eLia-1(v(qi)(2c-1))(eLia-1(v(qi)(2c-1))+1)2+σ2

LLRka(v(qk)(2c))=2hk·Im[y(Jk(qk))(c)]-Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·(1-2eLia-1(v(qi)(2c))+1)Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)4hi2·eLia-1(v(qi)(2c))(eLia-1(v(qi)(2c))+1)2+σ2

(qk=1,2,...|Jk|     c=1,2,...,b/2)

其中,y(Jk(qk))(c)表示在时隙Jk(qk)接收到的混叠编码包y中的第c个符号,LLRka(v(qk)(2c-1))、LLRka(v(qk)(2c))为用户k第a次迭代译码所需的由解映射及译码软信息估计器-k估计出的第qk个编码包的奇数位和偶数位比特的log似然比软信息,Lia-1(v(qi)(2c-1)、Lia-1(v(qi)(2c))为用户i第a-1次迭代译码后的第qi个编码包的奇数位和偶数位比特的log似然比软信息,Re[.]表示取实部运算,Im[.]表示取虚部运算;

然后将估计软信息矢量LLRka(v(qk))作为判决译码器-k的输入软信息矢量Lkin,a(qk),即令送入判决译码器-k进行第a次的迭代译码;其余各用户也按此同样操作,各用户译码同时进行;完成第a次迭代后,对于用户k,得到其判决译码器-k的输出软信息矢量Lkout,a(qk),令其余用户也按此同样操作,接着将相应的值代入“估计软信息更新表达式”,开始新一次(第a+1次)的迭代,以此类推,直至判决译码器-k的译码结果满足Tanner图中校验节点所限制的校验关系或者迭代次数达到所限定的最大次数;

这样可以完成码率R=m/N下的软信息估计,由于编码方式的Rateless属性,其编码包序列长度N是不断变化的,我们可以在不同的接收编码包长度下,即各个码率下,运行各自对应的运算,从而完成各个码率下的软信息估计,进而完成信号分离和译码。

本发明的有益效果是:本发明充分利用无速率码的自适应链路适配特性,以及其编码时的随机特性——不同用户的无速率码编码包是按照一定方式随机生成的、互不相关的这一特性,在各个用户发送机无需知道信道状态信息,以及在传输过程中无需任何反馈重传机制的条件下,能够自适应的调整各自的传输码率,且能够有效利用多个用户冲突重叠的信息,实现多个用户信息同时有效可靠的传输及正确的检测分离。

附图说明

图1是RMA系统的具体结构框图;

图2是RMA系统采用LT Code编码时,其LT Code的Tanner图

图3是RMA系统采用Raptor Code编码时,其外码部分的LDPC Code的Tanner图;

图4是RMA系统采用Raptor Code编码时,其内码部分的LT Code的Tanner图;

图5是RMA系统采用Raptor Code编码时,其Raptor Code的整体Tanner图;

图6是采用Raptor Code的RMA系统(各用户均采用BPSK调制方式,以概率1接入,码率R=1/16时)与采用Zigzag Code的IDMA系统(各用户Rzigzag=1/2,8倍扩频,码率R=1/16)在各信噪比下的误比特率对比图,用户数K=2;

图7是采用Raptor Code的RMA系统(各用户均采用BPSK调制方式,以概率1接入,码率R=1/16时)与采用Zigzag Code的IDMA系统(各用户Rzigzag=1/2,8倍扩频,码率R=1/16)在各信噪比下的误比特率对比图,用户数K=4。

具体实施方式

以下参照附图对本发明作进一步描述,本发明的目的和效果将变得更加明显。

无速率码(Rateless Code)是一种具有自适应链路适配特性的新型信道编码方式。它与传统的码率固定的编码方式最大的不同在于它在发送端不设定固定码率,其编码包的个数是没有限制的。发送端可以按照一定方式源源不断的随机产生编码包并发送出去。接收端则可以在接收到这些编码包后尝试译码。从统计意义上来讲,每一个编码包包含着相同的关于消息数据包的信息量,接收端并不关心具体的某一个编码包的接收情况,而是关心接收到的编码包的总数量,因此在传输过程中无需反馈和重传的机制。只要接收端接收到足够多的编码包,就可以成功译码;如果译码失败,接收端可以再多接收一些编码包然后继续尝试译码。接收端将一直重复这个过程直到译码成功。一旦译码成功,接收端只需要发送一个非常简单的信号告知发送端停止发送即可,这样就完成了整个传输过程。此时,实际传输的码率取决于实际发送的编码包数目,而实际发送的编码包数目取决于当时的信道状况。由此可见,采用无速率码编码方式,可以在发送端不知道任何信道状态信息,以及在传输过程中无需任何反馈重传机制的条件下,自适应地调整传输码率,保证信息有效可靠的传输。

参照图1,一个包含K(K为任意正整数)个用户的RMA系统,由发送端和接收端构成。其中发送端包含K个单路输入、单路输出的发送机,接收端包含1个单路输入、K路输出的接收机。该系统运行于通信两端。在发送端,每一个用户都拥有一个发送机,每个发送机的结构均相同。对于用户k(k=1,2,...,K),其发送机包括串行连接的编码器-k,映射器-k和接入控制器-k:

编码器-k,用于将用户k的消息数据包编为源源不断产生的Rateless Code编码包,其输入端接外部消息数据包的数据流,其输出端接至映射器-k的输入端;

映射器-k,用于完成由编码包数据比特到编码包传输符号的映射,可用通常的线性调制映射器来实现,其输入端接编码器-k的输出端,其输出端接至接入控制器-k的输入端;

接入控制器-k,主要完成对编码包的发送控制,即按事先确定的概率随机决定是否将当前编码包在当前时隙中接入信道进行发送,其输入端接映射器-k的输出端,其输出端接至信道;

K个用户的发送机并行接入信道,组成系统的发送端。

在接收端,其单路输入、K路输出的接收机在内部分为并行的K路,每一个用户都对应其中相应的一路,并具有相同的结构。对于用户k(k=1,2,...,K),其所对应的那一路结构包括串行连接的解映射及译码软信息估计器-k和判决译码器-k:

解映射及译码软信息估计器-k,用于根据接收到的来自信道的混叠编码包完成各用户信号分离,以及通过解映射完成对用户k的编码包比特Log似然比软信息的估计,其输入端接接收机的来自于信道的输入以及除了判决译码器-k之外其余各判决译码器的软信息输出端,其输出端接至判决译码器-k的输入端;

判决译码器-k,用于完成对用户k编码包的译码,其输入端接解映射及译码软信息估计器-k的输出端,其判决结果输出端输出译码结果,作为接收机的一路输出,其软信息输出端接至除了解映射及译码软信息估计器-k之外的其余各解映射及译码软信息估计器的输入端;

K路结构并行构成接收机,组成系统的接收端。

上述基于无速率码的多用户随机接入系统的编译码方法包括编码方法和译码方法。在发送端,按照编码方法完成各用户的编码接入,将各用户的编码包接入信道进行发送;在接收端,按照译码方法,根据接收到的混叠编码包,完成各用户编码包的检测分离和译码。

编码方法如下:设每个用户的发送机均需要发送m=1024个消息数据包,每个消息数据包由b=128个数据比特组成,其中包括一个循环冗余校验码,这个循环冗余校验码采用CRC16,用于译码器判断译码是否成功,用dk(i)表示消息数据包,其中i为消息数据包的编号(i=1,2,...,1024),下标k为用户的编号(k=1,2,...,K);

考虑其中的第k个用户(k=1,2,...,K),按照如下步骤进行编码接入:

1)利用编码器-k进行编码;

将消息数据包dk(i)送入编码器-k,通过Rateless编码方式(如LT Code,RaptorCode等),得到源源不断产生的编码包序列以及该码的Tanner图。用vk(s)表示编码所得的编码包,其中s为编码包的编号(s=1,2,...),下标k为用户的编号(k=1,2,...,K)。

实施例1:当编码采用LT Code时,按照如下方式进行编码:

对m=1024个消息数据包进行LT编码,生成LT Code的Tanner图,并得到源源不断生成的LT Code的编码包。用vk(s)表示LT Code的编码包,其中s为编码包的编号(s=1,2,...),下标k为用户的编号(k=1,2,...,K),编码方法为:要产生LT Code编码包vk(s),首先按照度数分布Ω(x)(该分布的各参数如表1所示,其中Ωi表示度数i所占的比例),用随机数生成器为其产生度数degk(s);然后用随机数生成器产生一个1024维二元域向量(i=1,2,...,1024),元素的取值为“0”或者“1”,其中元素“1”的个数为degk(s)。元素为“1”表示对应的编号为i消息数据包dk(i)被选中,将这些被选中的消息数据包按比特作模2求和,即得到LT Code的编码包的值:

vk(s)=[Σi=11024Gkisdk(i)]mod2(s=1,2,...)

  Ω1  Ω2  Ω3  Ω4  Ω5  Ω8  0.007969  0.493570  0.166220  0.072646  0.082558  0.056058  Ω9  Ω19  Ω65  Ω66  其余参数  0.037229  0.0055590  0.025023  0.003135  0

表1

LT Code的Tanner图如图2所示。图中有两类节点,圆圈表示变量节点(variable node),变量节点又分为两类,上面一行为信息节点(information node),共有m=1024个,记作Vk,1,Vk,2,...,Vk,m,分别对应消息数据包dk(1),dk(2),...,dk(m),下面一行为编码节点(parity node),记作Pk,1,Pk,2,...,Pk,s,...,分别对应LT Code的编码包vk(1),vk(2),...,vk(s),...;方框表示校验节点(check node),分别记作Ck,1,Ck,2,...,Ck,s,...,与每一个校验节点相连的各节点的校验和为0。因此,在编码过程中用随机数生成器为每一个LT Code的编码包vk(s)选择degk(s)个消息数据包作模2求和,在Tanner图中就体现为为校验节点Ck,s选择degk(s)个信息节点相连。而校验节点Ck,s与编码节点Pk,s的连接关系是固定的,Ck,s总是与Pk,s一一对应的相连。由于LTCode是一种Rateless编码,其编码包个数随着编码过程源源不断的增加,所以每产生一个新的LT Code编码包vk(s),图中就会增加一个新的校验节点Ck,s和一个新的编码节点Pk,s,随着编码包源源不断的增多,Tanner图会越来越大。

各用户独立完成自己的LT Code编码过程,编码时使用不同于其他用户的随机数生成器,以得到与其他用户不同的、相互独立的Tanner图,这样可以保证各用户信号的不相关性,为译码时各用户的信号分离提供可行性;

实施例2:当编码采用Raptor Code时(它是由外码部分的高码率LDPC Code以及内码部分的LT Code级联组成的),按照如下方式进行编码:

编码第一步,按照Linear-Time PEG Encoding算法(见“Regular and IrregularProgressive Edge-Growth Tanner Graphs”,IEEE Transactions On InformationTheory,Vol.51,No.1,January 2005),对m=1024个消息数据包进行LDPC编码,生成LDPC Code的Tanner图,进而得到n=1072个LDPC Code的编码包。用tk(l)表示LDPC Code的编码包,其中l为编码包的编号(l=1,2,...,1072),下标k为用户的编号(k=1,2,...,K)。

Raptor Code外码部分的LDPC Code的Tanner图如图3所示,图中有两类节点,圆圈表示变量节点(variable node),共有n=1072个,记作Vk,1,Vk,2,…,Vk,n,分别对应LDPC Code的编码包tk(1),tk(2),...,tk(n);方框表示校验节点(check node),共有n-m=1072-1024=48个,分别记作C′k,1,C′k,2,...,C′k,n-m,其与变量节点的连接方式由Linear-Time PEG Encoding算法生成,与每一个校验节点相连的各节点的校验和为0。我们定义Tanner图中,连接到某个节点的边的总数为这个节点的度数。我们固定LDPC Code的变量节点中,前5个节点的度数为1,其余节点的度数为4,按照Linear-Time PEG Encoding算法为各变量节点选择与校验节点的连接关系,构成Tanner图。由该算法得到的Tanner图所对应的校验矩阵H,具有如下性质:H=[Hp,Hd],右边部分的Hd是一个48×1024矩阵,左边部分的Hp是一个48×48上三角矩阵:

则LDPC Code的编码包的值可以由下式求得:

tk(l)=[Σi=l+148hl,ip·tk(i)+Σi=11024hl,id·dk(i)]mod21l48dk(l-48)48<l1072

可见,由该算法得到的LDPC Code是系统码,其1072个编码包中,后1024个就是消息数据包。

编码第二步,对n=1072个LDPC Code的编码包进行LT编码,生成LT Code的Tanner图,并得到源源不断生成的LT Code的编码包。用vk(s)表示LT Code的编码包(也就是整个Raptor Code的编码包),其中s为编码包的编号(s=1,2,...),下标k为用户的编号(k=1,2,...,K),编码方法为:要产生LT Code编码包vk(s),首先按照表1所示的度数分布Ω(x),用随机数生成器为其产生度数degk(s);然后用随机数生成器产生一个1072维二元域向量(l=1,2...,1072),元素的取值为“0”或者“1”,其中元素“1”的个数为degk(s)。元素为“1”表示对应的编号为l的LDPC Code编码包tk(l)被选中,将这些被选中的LDPC Code编码包按比特作模2求和,即得到LT Code的编码包的值:

vk(s)=[Σl=11072Gklstk(l)]mod2(s=1,2,...)

Raptor Code内码部分的LT Code的Tanner图如图4所示。图中有两类节点,圆圈表示变量节点(variable node),变量节点又分为两类,上面一行为信息节点(information node),共有n=1072个,记作Vk,1,Vk,2,...,Vk,n,分别对应LT Code的数据包(此时即为LDPC Code的编码包tk(1),tk(2),...,tk(n)),下面一行为编码节点(parity node),记作Pk,1,Pk,2,...,Pk,s,...,分别对应LT Code的编码包vk(1),vk(2),...,vk(s),...;方框表示校验节点(check node),分别记作Ck,1,Ck,2,...,Ck,s,...,与每一个校验节点相连的各节点的校验和为0。因此,在编码过程中用随机数生成器为每一个LT Code的编码包vk(s)选择degk(s)个LDPC Code的编码包作模2求和,在Tanner图中就体现为为校验节点Ck,s选择degk(s)个信息节点相连。而校验节点Ck,s与编码节点Pk,s的连接关系是固定的,Ck,s总是与Pk,s一一对应的相连。由于LT Code是一种Rateless编码,其编码包个数随着编码过程源源不断的增加,所以每产生一个新的LT Code编码包vk(s),图中就会增加一个新的校验节点Ck,s和一个新的编码节点Pk,s,随着编码包源源不断的增多,Tanner图会越来越大。整个Raptor Code的Tanner图如图5所示,它是由LDPC Code的Tanner图和LT Code的Tanner图级联合并组成的。

各用户独立完成自己的Raptor Code编码过程,编码时使用不同于其他用户的随机数生成器,以得到与其他用户不同的、相互独立的Tanner图,这样可以保证各用户信号的不相关性,为译码时各用户的信号分离提供可行性;

2)利用映射器-k,进行由编码包数据比特到编码包传输符号的映射;

将由编码器-k得到的编码包vk(s)送入映射器-k,映射方式可采用普通的线性调制方式(如BPSK、QPSK等),完成由编码包数据比特到编码包传输符号的映射:vk(s)→wk(s),其中s为编码包的编号(s=1,2,...),下标k为用户的编号(k=1,2,...,K);

实施例3:当映射方式为BPSK时,vk(s)中每一个比特映射为wk(s)中的一个符号,映射方式为:″0→+1,1→-1″,得到经过映射的编码包wk(s)。

实施例4:当映射方式为QPSK时,vk(s)中每两个比特映射为wk(s)中的一个符号,映射方式为:″00→+1+j,01→+1-j,10→-1+j,11→-1-j″,得到经过映射的编码包wk(s)。

3)利用接入控制器-k,进行对编码包的发送控制;

将由映射器-k得到的经过映射的编码包wk(s)送入接入控制器-k,在任一个时隙j(j=1,2,...),用户k以概率pk顺序将wk(s)接入信道发送:用xk(j)表示用户k在时隙j经信道发送的符号,如果决定在当前时隙j将编码包wk(s)接入信道,则在编码包wk(s)包头增加K个比特的用户标示信息,其中第k位置1,其余各位置0,组成发送编码包wk′(s),令xk(j)=wk′(s),在下一个时隙判断是否将wk(s+1)接入信道;否则令xk(j)=0,下一个时隙继续判断是否将wk(s)接入信道;

由于采用的是Rateless编码方式,所以经过Rateless编码及映射后的序列wk={wk(1),wk(2),...,wk(s),...}是源源不断产生的,于是经信道发送的序列xk={xk(1),xk(2),...,xk(j),...}也是源源不断的,长度并不是固定的,xk的每一个长度都对应相应的一个码率;

每个用户的发送机根据以上规则,源源不断的产生编码包并接入信道,直至接收端告知它停止发送。

译码方法如下:

接收机接收到来自信道的,源源不断的,各个用户相互混叠且加上了噪声的编码包,各用户的信号分离及译码同时进行,对于用户k(k=1,2,...,K),其判决译码器-k采用和编码器-k相同的随机数生成器,所以可以准确的重构该码的Tanner图,按照如下步骤进行信号分离和译码:

1)接收机首先接收到N=1024个来自信道的混叠编码包;

2)接收机再接收ΔN=256个混叠编码包,令N=N+ΔN,此时的码率为

R=mN=1024N;

3)将接收到的编码包送入解映射及译码软信息估计器-k,采用基于无速率码的多用户随机接入系统的译码软信息估计方法,在当前码率R下进行运算,利用除了判决译码器-k之外其余各用户的判决译码器的输出软信息(初始化时为0),更新估计软信息;

4)将由解映射及译码软信息估计器-k更新得到的估计软信息作为判决译码器-k的输入,在重构的当前码率R下的Tanner图上运行BP(Belief-Propagation)译码算法,完成一轮迭代译码运算,并更新判决译码器-k的输出判决结果信息和输出软信息;

5)利用判决译码器-k的输出判决结果信息判断译码结果是否满足Tanner图中校验节点所限制的校验关系,或者迭代次数已经达到所限定的最大次数(设为150次),如果满足上述两个条件之一,则转入步骤6);否则转入步骤3);

6)利用各个包内的循环冗余校验码判断数据包是否都译码正确,如果都正确,转入步骤7);否则转入步骤2);

7)译码结束,接收机发送一个信号告知用户k的发送机停止发送。

由以上对译码过程的描述可知,当用户发现接收到的混叠编码包不足以正确译码时,接收机需要再接收256个混叠编码包,进行新一轮的迭代译码。当接收机收到N个编码包时,对应的码率为:

R=mN=1024N

为了表示方便,我们用码率的倒数R-1来刻画码率的变化:

R-1=Nm=N1024

每次多接收ΔN个编码包后,码率变化为ΔR-1

ΔR-1=ΔNm=ΔN1024

此处ΔN为256,所以ΔR-1为0.25。即是说,各用户以ΔR-1=0.25为步进,在不同的码率下运行迭代译码,直至译码成功,发送一个信号告知发送机停止发送。

基于无速率码的多用户随机接入系统的译码软信息估计方法如下:

我们设接收机接收到来自信道的,源源不断的,各用户混叠且加上了噪声的编码包序列为y={y(1),y(2),...,y(j),...}:

y(j)=Σi=1Khi·xi(j)+n(j)(j=1,2,...)

其中,j为时隙标号,下标i为用户的编号(i=1,2,...K),xi={xi(1),xi(2),...,xi(j),...}为第i个用户经信道发送的源源不断的序列,h为信道参数,n={n(1),n(2),...,n(j),...}为均值为0,方差为σ2的白高斯噪声序列;

在接收机,我们根据任一时隙j接收到的编码包包头的用户标示信息,判断出该时隙各用户的信道接入状况(对包头K个比特作硬判决,第k(k=1,2,...,K)位比特判决结果为1表示第k个用户接入了信道,为0表示第k个用户没有接入信道),然后去掉用户标示信息;用Jk表示用户k(k=1,2,...,K)的编码包接入时隙的集合:

Jk={j|xk(j)≠0,j=1,2,...}={Jk(1),Jk(2),...,Jk(qk),...}

其中qk为集合Jk中元素的编号(qk=1,2,...),下标k为用户的编号(k=1,2,...,K);

对于每一个用户,我们要在接收机接收到不同长度的编码包序列y时,即在不同的码率R下,计算其解映射及译码软信息估计器的输出估计软信息,对用户k,设接收机已经接收了N个编码包y={y(1),y(2),...,y(N)},则当前的码率为R=m/N=1024/N;

对于其接入时隙集合Jk中的每一个时隙Jk(qk),其接收到的混叠编码包y(Jk(qk)),可以写作:

y(Jk(qk))=hk·xk(Jk(qk))+Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·xi(Ji(qi))+n(Jk(qk))

=hk·xk(Jk(qk))+ζk(Jk(qk))(qk=1,2,...|Jk|)

其中ζk(Jk(qk))为在时隙Jk(qk),非零的其他用户信号和高斯白噪声之和,我们将其称为合并噪声且近似视其为高斯随机变量,均值记为E[ζk(Jk(qk))],方差记为Var[ζk(Jk(qk))],于是可以将接收编码包y(Jk(qk))也视作符合高斯特性:

y(Jk(qk))~N(hk·xk(Jk(qk))+E[ζk(Jk(qk))],Var[ζk(Jk(qk))]),

其中E[ζk(Jk(qk))]=Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·E[xi(Ji(qi))]

Var[ζk(Jk(qk))]=Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi2·Var[xi(Ji(qi))]+σ2

在解映射及译码软信息估计器-k中,首先按照所选用的映射方式所对应的均值运算规则ΓE和方差运算规则ΓVar,由其余各用户编码包的比特log似然比软信息,算出其余各用户编码包的映射符号的均值和方差;然后按照所选用的映射方式所对应的解映射规则F,由接收到的混叠编码包和已经算出的其余各用户编码包的映射符号的均值和方差,根据接收编码包符合的高斯特性,估计出用户k编码包的比特log似然比软信息。

在第a次迭代时,按照“估计软信息更新表达式”

LLRka(v(qk))=F(y(Jk(qk)),E[ζk(Jk(qk))],Var[ζk(Jk(qk))])

=F(y(Jk(qk)),Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·E[xi(Ji(qi))],

Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi2·Var[xi(Ji(qi))]+σ2)

=F(y(Jk(qk)),Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·ΓE(Lia-1(v(qi))),

Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi2·ΓVar(Lia-1(v(qi)))+σ2)

(qk=1,2,...|Jk|)

更新估计软信息,式中LLRka(v(qk))为用户k第a次迭代译码所需的由解映射及译码软信息估计器-k估计出的第qk个编码包的比特log似然比软信息矢量,Lia-1(v(qi))为用户i第a-1次迭代译码后的第qi个编码包的比特log似然比软信息矢量(初始化a=1时,);

如果映射方式采用BPSK,将具体的均值运算规则ΓE,BPSK,方差运算规则ΓVar,BPSK以及解映射规则FBPSK代入“估计软信息更新表达式”,可以得到其具体的表达形式:

LLRka(v(qk)(c))=2hk·y(Jk(qk))(c)-Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·(1-2eLia-1(v(qi)(c))+1)Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)4hi2·eLia-1(v(qi)(c))(eLia-1(v(qi)(c))+1)2+σ2

(qk=1,2,...|Jk|     c=1,2,...,128)

其中,y(Jk(qk))(c)表示在时隙Jk(qk)接收到的混叠编码包y中的第c个符号,LLRka(v(qk)(c)为用户k第a次迭代译码所需的由解映射及译码软信息估计器-k估计出的第qk个编码包的第c个比特的log似然比软信息,Lia-1(v(qi)(c))为用户i第a-1次迭代译码后的第qi个编码包的第c个比特的log似然比软信息。

如果映射方式采用QPSK,则将具体的均值运算规则ΓE,QPSK,方差运算规则ΓVar,QPSK以及解映射规则FQPSK代入“估计软信息更新表达式”,可以得到其具体的表达形式:

LLRka(v(qk)(2c-1))=2hk·Re[y(Jk(qk))(c)]-Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·(1-2eLia-1(v(qi)(2c-1))+1)Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)4hi2·eLia-1(v(qi)(2c-1))(eLia-1(v(qi)(2c-1))+1)2+σ2

LLRka(v(qk)(2c))=2hk·Im[y(Jk(qk))(c)]-Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)hi·(1-2eLia-1(v(qi)(2c))+1)Σik,Jk(qk)Ji,Jk(qk)=Ji(qi)4hi2·eLia-1(v(qi)(2c))(eLia-1(v(qi)(2c))+1)2+σ2

(qk=1,2,...|Jk|c=1,2,...,64)

其中,y(Jk(qk))(c)表示在时隙Jk(qk)接收到的混叠编码包y中的第c个符号,LLRka(v(qk)(2c-1))、LLRka(v(qk)(2c))为用户k第a次迭代译码所需的由解映射及译码软信息估计器-k估计出的第qk个编码包的奇数位和偶数位比特的log似然比软信息,Lia-1(v(qi)(2c-1))、Lia-1(v(qi)(2c))为用户i第a-1次迭代译码后的第qi个编码包的奇数位和偶数位比特的log似然比软信息,Re[.]表示取实部运算,Im[.]表示取虚部运算。

然后将估计软信息矢量LLRka(v(qk))作为判决译码器-k的输入软信息矢量Lkin,a(qk),即令送入判决译码器-k进行第a次的迭代译码;其余各用户也按此同样操作,各用户译码同时进行;完成第a次迭代后,对于用户k,得到其判决译码器-k的输出软信息矢量Lkout,a(qk),令其余用户也按此同样操作,接着将相应的值代入“估计软信息更新表达式”,开始新一次(第a+1次)的迭代,以此类推,直至判决译码器-k的译码结果满足Tanner图中校验节点所限制的校验关系或者迭代次数达到所限定的最大次数;

这样可以完成码率R=m/N=1024/N下的软信息估计,由于编码方式的Rateless属性,其编码包序列长度N是不断变化的,我们可以在不同的接收编码包长度下,即各个码率下,运行各自对应的运算,从而完成各个码率下的软信息估计,进而完成信号分离和译码。

图6和图7,是采用Raptor Code的RMA系统和采用Zigzag Code(见“Zigzagcodes and concatenated zigzag codes”,IEEE Trans.Inform.Theory special issue oncodes on graphs,vol.,IT-47,no.2,pp.,800-807,Feb.2001.)的IDMA系统,在系统用户数K=2和K=4时的性能比较图。可以看到,采用Raptor Code的RMA系统的性能要优于采用Zigzag Code的IDMA系统。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号