高数据速率的turbo交织器的制作方法

文档序号:7512687阅读:239来源:国知局
专利名称:高数据速率的turbo交织器的制作方法
技术领域
本公开一般涉及通信,具体地说,涉及编码和解码技术。

背景技术
无线通信系统被广泛地部署来提供各种通信内容,比如语音、视频、分组数据、消息、广播等等。这些无线系统可以是能够通过共享可用系统资源支持多个用户的多址系统。这种多址系统的实例包括码分多址(CDMA)系统、时分多址(TDMA)系统、频分多址(FDMA)系统、正交FDMA(OFDMA)系统以及单载波FDMA(SC-FDMA)系统。
较新的无线通信系统可以支持宽带和/或多输入多输出(MIMO)操作,以便实现高数据吞吐量。具有宽带和/或MIMO能力的用户装置(UE)可能需要支持非常高的峰值数据速率。例如,具有4×4MIMO结构的20MHz系统中的UE的峰值数据速率可以高达200+兆/秒(Mbps)。通常是UE处的接收机处理的瓶颈的UE的解码容量应当进行相应地设计,以支持这样的高峰值数据速率。


发明内容
本文描述了用于有效地支持高解码吞吐量的技术。发射机(例如,基站)可采用Turbo编码器对数据比特的码块进行编码,所述Turbo编码器包括多个组成编码器和码交织器。接收机(例如,UE)可以采用Trubo解码器对所述码块进行解码,所述Turbo解码器具有至少一个软输入软输出(SISO)解码器、至少一个码交织器以及至少一个码解交织器。接收机可以使用多个SISO解码器以实现高解码吞吐量,其中所述多个SISO解码器并行地对所述码块的不同段执行操作。所述多个SISO解码器可结合多个码交织器、多个码解交织器和多个存储单元进行操作。
可以基于Turbo交织器对所述码块中的数据比特进行交织(即,重新排序或混洗(shuffle))。Turbo交织器是用于指定应该如何对所述码块中的数据比特进行重新排序的映射或函数。Turbo编码器中的码交织器基于Turbo交织器进行操作。类似地,Turbo解码器中的单个或多个码交织器基于Turbo交织器进行操作,以及Turbo解码器中的单个或多个码解交织器基于Turbo交织器的逆来进行操作。
根据一个方面,如果码块大小大于阈值大小,则可以使用“无竞争”Turbo交织器,以及如果码块大小小于或等于阈值大小,则可以使用“常规”Turbo交织器。无竞争Turbo交织器是这样的映射或函数,其对码块中的数据比特进行重新排序,使得来自多个SISO解码器的信息在进行交织或解交织后,可以在每个写周期内并行地写入多个存储单元,而不会遇到这些存储单元的存储器存取竞争。常规Turbo交织器是这样的映射或函数,其可以以任何方式对码块中的数据比特进行重新排序,而不考虑Turbo解码器处的无竞争存储器存取。对于要求高解码吞吐量的大的数据有效载荷,可以使用大的码块大小,而对于小的数据有效载荷,可以使用小的码块大小。多个SISO解码器可以用于大的码块大小(例如,比阈值大小要大的那些码块),并可以从使用无竞争Turbo交织器中获益。
如果码块大小大于阈值大小,则发射机可以基于多个组成编码器和无竞争Turbo交织器对码块进行Turbo编码。如果码块大小小于或等于阈值大小,则发射机可以基于多个组成编码器和常规Turbo交织器对码块进行Turbo编码。
如果码块大小大于阈值大小,则接收机可以基于多个SISO解码器和无竞争Turbo交织器对码块进行Turbo解码。如果码块大小小于或等于阈值大小,则接收机可以基于至少一个SISO解码器和常规Turbo交织器对所述码块进行Turbo解码。
在下面更为详细地描述本公开的各个方面和特征。



图1示出了基站和UE的方框图; 图2示出了发射(TX)数据处理器的方框图; 图3示出了Turbo编码器的方框图; 图4示出了接收(RX)数据处理器的方框图; 图5示出了Turbo解码器的方框图; 图6示出了具有一个SISO解码器的Turbo解码器的方框图; 图7示出了具有多个SISO解码器的Turbo解码器的方框图; 图8示出了码块大小与数据有效载荷之间的关系图; 图9示出了抖动互素(DRP)交织器的操作; 图10示出了可配置Turbo解码器的方框图; 图11示出了用于处理数据的过程的一个设计; 图12示出了用于处理数据的装置的一个设计。

具体实施例方式 本文所述的技术可以用于各种无线通信系统,比如CDMA、TDMA、FDMA、OFDMA、SC-FDMA以及其它系统。术语“系统”和“网络”通常可互换地使用。CDMA系统可以实现比如通用陆地无线接入(UTRA)、cdma2000等的无线技术。UTRA包括宽带CDMA(W-CDMA)和低码片速率(LCR)。cdma2000涵盖IS-2000、IS-95和IS-856标准。TDMA系统可以实现比如全球移动通信系统(GSM)的无线技术。OFDMA系统可以实现比如演进UTRA(E-UTRA)、超移动宽带(UMB)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、Flash-

等的无线技术。UTRA、E-UTRA和GSM是通用移动通信网络(UMTS)的一部分。3GPP长期演进(LTE)是将要发布的使用E-UTRAN的UMTS版本,其在下行链路上使用OFDMA以及在上行链路上使用SC-FDMA。在名为“第三代合作伙伴项目”(3GPP)的组织的文档中描述了UTRA、E-UTRA、GSM、UMTS和LTE。在名为“第三代合作伙伴项目2”(3GPP2)的组织的文档中描述了cdma2000和UMB。这些技术还可用于无线局域网(WLAN),其可以实现IEEE 802.11标准家族中的任何无线技术、Hiperlan等。这些各种无线技术和标准在本领域是公知的。为清楚起见,下面将针对LTE来描述这些技术的一些方面,并且在下面的部分描述中使用LTE术语。
这些技术可用于UE以及基站。UE还可称为移动站、终端、接入终端、用户单元、站等。UE可以是蜂窝电话、个人数字助理(PDA)、无线通信设备、无线调制解调器、手持设备、膝上型计算机、无绳电话等。UE可以经由下行链路和上行链路上的传输与一个或多个基站进行通信。基站还可称为节点B、演进节点B(eNB)、接入点等。
这些技术还可用于单输入单输出、单输入多输出、多输入单输出和/或多输入多输出(MIMO)传输。单输入指的是一个发射天线用于数据发送,多输入指的是多个发射天线用于数据发送。单输出指的是一个接收天线用于数据接收,多输出指的是多个接收天线用于数据接收。
图1示出了无线通信系统100中的基站110和UE 150的一个设计的方框图。基站110配备有多个(T个)天线134a-134t,所述多个天线134a-134t可用于数据发送和接收。UE 150具有多个(R个)天线152a-152r,所述多个天线152a-152r可用于数据发送和接收。每个天线可以是物理天线或天线阵列。
在基站110,发射(TX)数据处理器120可以从数据源112接收业务数据,基于传输格式对该业务数据进行处理(例如,格式化、编码、交织以及符号映射),并提供数据符号。如本文所使用,数据符号是与数据对应的符号,导频符号是与导频对应的符号,并且符号通常为复数值。数据符号和导频符号可以是根据比如PSK或QAM的调制方案进行调制的调制符号。导频是发射机和接收机二者均事先已知的数据。传输格式可以指示码块大小、调制和编码方案等。传输格式还可称为速率、分组格式等。
TX MIMO处理器130可将数据符号与导频符号复用,并可以执行直接MIMO映射、预编码/波束成形等。符号可以从用于直接MIMO映射的一个天线发送,或从用于预编码/波束成形的多个天线发送。处理器130可以向T个发射机(TMTR)132a-132t提供T个输出符号流。每个发射机132可处理其输出符号流(例如,针对OFDM、SC-FDM、CDMA等),以获得输出码片流。每个发射机132还可以对其输出码片流进行调节(例如,模拟变换、滤波、放大和上变频),并生成下行链路信号。来自发射机132a-132t的T个下行链路信号可以分别从T个天线134a-134t发送。
在UE 150,R个天线152a-152r可接收下行链路信号,并且每个天线152可将所接收到的信号提供给相应的接收机(RCVR)154。每个接收机154可以处理(例如,滤波、放大、下变频和数字化)其所接收到的信号,以提供采样,并可以进一步处理采样(例如,针对OFDM、SC-FDM、CDMA等),以获得已接收符号。接收机154a-154r可将所接收到的数据符号提供给MIMO检测器160,并将所接收到的导频符号提供给信道处理器194。信道处理器194可以基于所接收到的导频符号估计下行链路信道响应,并将信道估计提供给MIMO检测器160。MIMO检测器160可以采用信道估计对所接收到的数据符号执行MIMO检测,并提供数据符号估计。接收(RX)数据处理器170可以进一步处理(例如,符号解映射、解交织以及解码)该数据符号估计,并将已解码数据提供给数据接收器172。通常,MIMO检测器160和RX数据处理器170所执行的处理与基站110处的TX MIMO处理器130和TX数据处理器120所执行的处理是互补的。
UE 150可以评估信道条件,并将反馈信息发送给基站110。反馈信息可以包括MIMO秩、信道质量指示符(CQI)和/或其它信息,所述MIMO秩用于指示待并行发送的数据流或层的数量。来自数据源180的反馈信息和业务数据可由TX数据处理器182进行处理,与导频符号复用并由TXMIMO处理器184进行处理,并由发射机154a-154r进一步处理以生成R个上行链路信号,所述R个上行链路信号可以经由天线152a-152r发送。
在基站110,上行链路信号可由T个天线134a-134t接收,由接收机132a-132t进行处理,由MIMO检测器136检测,并进一步由RX数据处理器138进行处理,以恢复UE 150所发送的反馈信息和业务数据。控制器/处理器140可以基于反馈信息对去往UE 150的数据传输进行控制。信道处理器144可以基于所接收到的导频符号估计上行链路信道响应,并提供信道估计,该信道估计可用于MIMO处理或检测。
控制器/处理器140和190可分别指导基站110和UE 150处的操作。存储器142和192可以分别存储用于基站110和UE 150的数据和程序代码。
图2示出了TX数据处理器120的一个设计的方框图,其也可用于图1中的TX数据处理器182。在TX数据处理器120内,划分单元210可接收待发送数据,并将该数据划分成具有所选码块大小的码块。码块也可称为数据块、传输块、分组等。每个码块可被单独地进行编码和解码。循环冗余校验(CRC)生成器220可以生成每个码块的CRC值并将该CRC值附加到该码块。CRC值可由接收机使用,以确定是对码块进行正确地解码还是出错。Turbo编码器230可基于所选择的码率对每个码块进行编码,并提供已编码块。速率匹配和信道交织器240可以针对该编码块选择来自Turbo编码器230的码比特的子集,对所选择的码比特进行交织,并提供已交织块。速率匹配和交织可以为该码比特提供时间、频率和/或空间分集。符号映射器250可以基于所选择的调制方案,将已交织比特映射到数据符号。所选择的码块大小、码率和调制方案可以基于传输格式来确定,所述传输格式可以基于信道条件、UE能力、系统资源的可用性等来选择。
图3示出了图2中的Turbo编码器230的一个设计的方框图。Turbo编码器230实现并行级联卷积码(PCCC),并包括两个组成编码器310a和310b,码交织器320和打孔与复用(Mux)单元330。Turbo编码器230对N个数据比特的码块进行编码,并提供对应的S个码比特的已编码块,其中N和S可以是任何适当的值。
在Turbo编码器230内,码交织器320可以基于所选择的Turbo交织器,对码块中的数据比特(被标记为x)进行交织或重新排序,其中所选择的Turbo交织器可以是下面所述的无竞争Turbo交织器或常规Turbo交织器。组成编码器310a可以基于第一组成码对数据比特进行编码,并提供第一校验比特(被标记为y)。类似地,组成编码器310b可以基于第二组成码对来自码交织器320的已交织数据比特进行编码,并提供第二校验比特(被标记为z)。组成编码器310a和310b可以实现两种递归系统组成码,其可以是卷积码。单元330可以从组成编码器310a和310b接收数据比特和校验比特,并可以基于所选择的码速率来打孔或删除足够数量的比特,以获得期望数量的比特。单元330可对未删除数据比特和校验比特进行复用,并提供已编码块的已编码比特。所述已编码比特可以包括数据比特(其也称为系统比特),其后为第一校验比特,再往后为第二校验比特。
图4示出了RX数据处理器170的一个设计的方框图,其也可用于图1中的RX数据处理器138。在RX数据处理器170内,对数似然比(LLR)计算单元410可以从MIMO检测器160接收数据符号估计,并计算与每个数据符号估计对应的码比特的LLR。可以通过将B个码比特映射到信号星座(constellation)中的复数值来获得数据符号。对于数据符号的B个码比特,可以基于对应的数据符号估计来计算B个LLR。每个码比特的LLR可以指示在给定码比特的数据符号估计的情况下,码比特等于零(‘0’)或一(‘1’)的可能性。信道解交织器和去速率匹配单元420可以以与图2中单元240执行的交织和速率匹配互补的方式对来自单元410的LLR进行解交织和去速率匹配,并提供输入LLR。Turbo解码器430可以对来自信道解交织器420的每个输入LLR块进行解码,并提供已解码块。CRC校验器440可对每个已解码块进行校验,并提供该块的解码状态。组装器450可将已解码块进行组装,并提供已解码数据。
图5示出了Turbo解码器430a的一个设计的方框图,其可用于图4中的Turbo解码器430。在Turbo解码器430a内,解复用器(Demux)510可以接收码块的输入LLR,并将该输入LLR解复用为数据比特x的LLR X、第一校验比特y的LLR Y和第二校验比特z的LLR Z。SISO解码器520a可从解复用器510接收数据比特LLR X和第一校验比特LLR Y,以及从码解交织器540接收解交织后的数据比特LLR X2。SISO解码器520a可以基于第一组成码导出数据比特的新的LLR X1。码交织器530可以基于所选择的Turbo交织器(其用于图3中的码交织器320)对数据比特LLR X1进行交织,并提供交织后的数据比特LLR

SISO解码器520b可以从解复用器510接收数据比特LLR X和第二校验比特LLR Z,以及从码交织器530接收交织后的数据比特LLR

SISO解码器520b可以基于第二组成码导出数据比特的新的LLR

码解交织器540可以基于所选择的Turbo交织器的逆对数据比特LLR

进行解交织,并提供解交织后的数据比特LLRX2。
SISO解码器520a和520b可以是最大后验概率(MAP)解码器,其可以实现BCJR MAP算法或较低复杂度的派生算法。SISO解码器520a和520b还可以实现软输出维特比(Viterbi)(SOV)算法或本领域公知的其它解码算法。
可以对SISO解码器520a和520b所执行的解码进行多次迭代,例如,6次、8次、10次或更多次。每次迭代后解码结果将更为可靠。在完成所有解码迭代后,检测器560可以从SISO解码器520a接收最终的数据比特LLR,对每个LLR进行硬判决,并提供已解码比特。
SISO解码器520a和520b可以串联操作,其中一个SISO解码器的外来信息被提供为另一SISO解码器的输入。由于两个SISO解码器串联操作,一个物理SISO解码器可以用来实现两个SISO解码器520a和520b。
图6示出了Turbo解码器430b的方框图,其为图5中的Turbo解码器430a的一个设计。在Turbo解码器430b内,解复用器610可以接收码块的输入LLR,并将输入LLR解复用为第一组成码的LLR U和第二组成码的LLRV。LLR U可以包括数据比特LLR X和第一校验比特LLR Y。LLR V可以包括数据比特LLR X和第二校验比特LLR Z。
对于第一组成码,SISO解码器620可以从解复用器610接收LLR U以及从存储单元650接收LLR X2,并导出新的LLR X1。码交织器630可以基于所选择的Turbo交织器对LLR X1进行交织,并将交织后的LLR

提供给存储单元650。对于第二组成码,SISO解码器620可以从解复用器610接收LLR V以及从存储单元650接收LLR

并导出新的LLR

码解交织器640可以基于所选择的Turbo交织器的逆对LLR

进行解交织,并将解交织后的LLR X2提供给存储单元650。存储单元650可以(i)通过以交织后的顺序存储来自SISO解码器620的LLR X1来实现码交织器630,以及(ii)通过以解交织后的顺序存储来自SISO解码器620的LLR

来实现码解交织器640。码交织和解交织可以通过生成存储单元650的合适地址来完成。检测器660可以在完成所有解码迭代后接收最终数据比特LLR,并可以提供已解码比特。
UE 150可以具有宽带和/或MIMO能力,并需要支持非常高的峰值数据速率,例如,200+Mbps。UE 150的解码能力可能是瓶颈。具有并行SISO解码器的高容量Turbo解码器可以用于支持高峰值数据速率。
Turbo编码器可以对N个数据比特的码块进行解码,并生成S个码比特的已编码块,其中S依赖于码率R,或者R=N/S。具有并行SISO解码器的Turbo解码器可以将码块的N个数据比特所对应的N个转换(transition)的整个格式结构划分成M个段。每个段可以覆盖一个K个转换的格式结构窗口,使得M=N/K。每个段可以由不同的SISO解码器进行处理。M个SISO解码器可以并行地对M个段进行解码。
图7示出了Turbo解码器430c的一个设计的方框图,其可以用于图4中的Turbo解码器430。Turbo解码器430c包括解复用器710和M个并行段解码器712a-712m。每个段解码器712包括SISO解码器720、码交织器730、码解交织器740和存储单元750。
在Turbo解码器430c内,解复用器710可以接收码块的输入LLR并将其解复用为与每个段m对应的LLR Um和Vm,其中m∈{1,...,M}。LLR Um可以包括数据比特LLR Xm和与段m的第一组成码对应的第一校验比特LLR Ym。LLR Vm可以包括数据比特LLR Xm和与段m的第二组成码对应的第二校验比特LLR Zm。解复用器710可以将每个输入LLR提供给一个段解码器712。
在用于段m的段解码器712内,SISO解码器720可以在任何给定时刻对第一或第二组成码进行解码。对于第一组成码,SISO解码器720可以从解复用器710接收LLR Um以及从存储单元750接收LLR Xm2,并导出新的LLR Xm1。码交织器730可以对LLR Xm1进行交织并将交织后的LLR

提供给存储单元750。对于第二组成码,SISO解码器620可以从解复用器710接收LLR Vm以及从存储单元750接收LLR

并导出新的LLR

码解交织器740可以对LLR

进行解交织,并将解交织后的LLR Xm2提供给存储单元750。存储单元750可以实现码交织器730和码解交织器740两者。
对于第一组成码的解码,输入LLR(或输入APP)处于自然次序。对于段m,输入LLR对应于码块中的数据比特Km,Km+1,...,K(m+1)-1。对于第二组成码的解码,输入LLR不处于自然次序。对于段m,输入LLR对应于码块中的数据比特π(Km),π(Km+1),...,π(K(m+1)-1),其中π(x)表示所选择的Turbo交织器的映射函数,其将位置x上的数据比特映射到位置π(x)。
码交织器730a-730m可以基于所选择的Turbo交织器来操作。码解交织器740a-740m可以基于所选择的Turbo交织器的逆来操作。对于第一组成码,存储单元750a-750m可以将输入LLR分别提供给SISO解码器720a-720m,并可以分别存储码交织器730a-730m的输出。对于第二组成码,存储单元750a-750m可以将输入LLR分别提供给SISO解码器720a-720m,并可以分别存储码解交织器740a-740m的输出。在完成所有解码迭代后,检测器760可以从存储单元750a-750m接收最终数据比特LLR,并提供已解码比特。
如图5至7中所示,Turbo解码的一个重要特征是在对两个组成码进行的解码之间交换“外来”信息。对第一组成码进行解码的输出LLR被提供为对第二组成码进行解码的输入LLR,反之亦然。对一个组成码进行解码的输出LLR的顺序与对另一组成码进行解码的输入LLR的顺序不同。因此,在存储到存储单元之前,根据情况对输出LLR进行交织或解交织。
对于一个段,每个存储单元750可以存储用于一个SISO解码器720的LLR。每个存储单元750可以以自然次序存储第一组成码的LLR,然后以交织的顺序存储第二组成码的LLR,然后以自然次序存储第一组成码的LLR,等等。
每个SISO解码器720提供输出LLR,该输出LLR可以被交织或解交织,然后提供给M个存储单元750a-750m。在交织或解交织后,每个输出LLR可以被提供给M个存储单元750中的任何一个。
M个SISO解码器720a-720m可以连续地提供输出LLR,该输出LLR可以被交织或解交织,然后提供给M个存储单元750a-750m。如果作为交织或解交织的结果,那么来自多个SISO解码器的输出LLR在更多的写周期内被映射到相同的存储单元,那么可能出现存储器竞争,并且会插入停顿(stall)时间来解决存储器竞争。该停顿时间可能减少Turbo解码器的容量。
可以使用无竞争Turbo交织器来避免采用多个SISO解码器进行并行解码期间的存储器竞争。无竞争Turbo交织器对码块中的数据比特进行重新排序,从而使得来自多个SISO解码器的信息在交织或解交织之后可以在每个写周期中并行地写入多个存储单元,而不会出现存储器存取竞争。无竞争Turbo交织器可以如下在数学上进行定义

以及公式(1)

公式(2) 对于0≤m,n<M,m≠n,妿0≤k<K, 其中

表示向下去整操作符,其提供小于或等于x的最大整数, π(x)表示码交织函数,以及 π-1(x)表示码解交织函数。
公式(1)显示,任意两个段m和n中的第k个数据比特应该被交织到不同的段。该条件确保了,对于每个写周期,来自M个SISO解码器720a-720m的M个输出LLR在交织后被映射到M个不同的存储单元750a-750m,其中该映射依赖于码交织函数π(x)。
公式(2)显示,任意两个段m和n中的第k个数据比特应该被解交织到不同的段。该条件确保了,对于每个写周期,来自M个SISO解码器720a-720m的M个输出LLR在解交织后被映射到M个不同的存储单元750a-750m,其中该映射依赖于码解交织函数π-1(x)。
如下所述,公式(1)和(2)中的条件可以基于各种交织器设计而实现。无竞争Turbo交织器可以针对N、M和K的特定值来进行定义。无竞争Turbo交织器然后可以针对N、M和K的这些特定值提供无竞争存储器存取,而针对N、M和K的其他的值,可能提供或者可能不提供无竞争存储器存取。
系统可以支持一组码块大小,其可以基于各种因素来进行选择,例如待发送数据有效载荷的期望范围、编码效率等。可以基于待发送的数据量来选择供使用的适当的码块大小。
根据一个设计,图8示出了码块大小与数据有效载荷之间的关系图。在该设计中,最大的码块大小为8192。对于小于或等于8192的数据有效载荷,一个码块可用于整个数据有效载荷。对于8193到16384范围内的数据有效载荷,可使用两个码块,并且数据有效载荷可以被均匀地划分在两个码块之中。一般地,对于在8192NB+1到8192(NB+1)之间的范围的数据有效载荷,可使用NB+1个码块,数据有效载荷可以被均匀地划分在NB+1个码块中。如图8中所示,一旦数据有效载荷充分大,则码块大小为4096或更大。
具有并行SISO解码器的高容量Turbo解码器(例如,如图7中所示的)可以用于大的数据有效载荷,所述大的数据有效载荷可以采用宽带和/或MIMO进行传输。对于小的数据有效载荷,具有单个SISO解码器的Turbo解码器(例如,如图6中所示的6)就足够。从而,无竞争Turbo交织可能仅对大的数据有效载荷是需要的,例如,特定的大有效载荷及更大的。
根据一个方面,Turbo交织可以如下进行 ●对于小于或等于阈值大小的小的码块大小,使用常规Turbo交织器,以及 ●对于大于阈值大小的大的码块大小,使用无竞争Turbo交织器。
对于图8中示出的设计,阈值大小可以等于4096。一般地,阈值大小可以基于某个点来进行选择,在该点需要高容量的Turbo解码器来满足解码吞吐量的要求。
常规Turbo交织器可以用于最多为阈值大小的小的码块大小。在一个设计中,常规Turbo交织器可以是3GPP版本6中定义的Turbo交织器,其在2006年12月的3GPP TS 25.212中的名称为“Multiplexing and channelcoding(FDD)”的文档中进行了描述,该文档可公开获得。3GPP版本6Turbo交织器支持高达5114的码块大小,且被定义及验证。其它Turbo交织器也可以用于常规Turbo交织器。
如公式(1)和(2)中所示,无竞争Turbo交织器的设计依赖于码块大小N、段M的数量和段大小K。在N与对应的M和K的组合之间可以存在一对一的映射。对于每个大的码块大小N,可以针对该码块大小N(在给定的M和K的情况下)定义适当的Turbo交织器函数π(x),以获得良好的解码性能。采用Turbo交织器函数π(x)的解码性能可以通过计算机模拟、实验室测量、现场测试等来验证,并且有可能针对每个使用该码块大小N的数据有效载荷来进行。可以评估不同的Turbo交织器设计(例如,采用不同参数值)。可针对每个Turbo交织器设计来对解码性能进行验证,以找出能够提供良好的(或者可能的最好的)解码性能的Turbo交织器。Turbo交织器设计过程从而可能是复杂和冗长的,特别是对于大的码块大小。通过仅针对大的码块大小而不是全部的码块大小使用无竞争Turbo交织器,Turbo交织器的设计复杂度以及实现复杂度可以显著地降低。
在另一方面,可以采用无竞争Turbo交织器来支持有限的一组大的码块大小而不是所有可能的大小。在一个设计中,所支持的大的码块大小可表示为 Ni=Nth+L·i,i=1,2,...,公式(3) 其中Nth是阈值大小, L是连续的大的码块大小之间的步长大小或增量,以及 Ni是第i个大的码块大小。
在公式(3)中示出的设计中,所支持的大的码块大小以L线性地增加。对于每个大的码块大小Ni,可以使用多达L-1个填充比特,并且填充开销可以多达(L-1)/Ni。L可以基于Turbo交织器复杂性和填充开销之间的折衷来进行选择。较小的L的值对应于更多所支持的大的码块大小,其会增加Turbo交织器复杂度但会减少填充开销。对于大的L的值,会减少Turbo交织器的复杂度但会增加填充开销。
在一个设计中,所支持的大的码块大小可表示为 Ni=4096+32·i,i=1,2,...,128。公式(4) 公式(4)中的设计支持范围为4128到8192的128个不同的大的码块大小,其增量为L=32。针对128个不同的大的码块大小,可以定义128个无竞争Turbo交织器。每个大的码块大小的填充开销小于1%。
在另一设计中,所支持的大的码块大小可表示为 Ni=4096+64·i,i=1,2,...,64。 公式(5) 公式(5)中的设计支持范围为4160到8192的64个不同的大的码块大小,其增量为L=64。针对64个不同的大的码块大小,可以定义64个无竞争Turbo交织器。每个大的码块大小的填充开销为约1.5%或更低。
Nth和L还可以使用其他值,其确定所支持的大的码块大小的数量和填充开销。
在另一设计中,所支持的大的码块大小可表示为 Ni=Ni-1+Li,i=1,2,3,...,公式(6) 其中N0=Nth,Li是第i个大的码块大小的增量。在公式(6)中示出的设计中,所支持的大的码块大小可采用不同的数量Li来增加。例如,可以对Li进行选择,以获得每个大的码块大小的目标填充开销,同时减少Turbo交织器的复杂度。
一般地,可以支持任意数量的大的码块大小。无竞争Turbo交织器可以基于各种设计针对每个大的码块大小来进行定义。
在一个设计中,无竞争Turbo交织器可以采用抖动互素(DRP)交织器来实现。DRP交织器使用互素(RP)交织器,其将处于位置n的数据比特映射到位置(s+P·n)mod N,其中P和N互质,s为开始索引,“mod N”表示模N求余操作。DRP交织器在RP交织器之前以及之后还应用抖动操作。
图9示出了DRP交织器的操作。大小为N的码块被划分成多个大小为KR的部分,其中N为KR的整数倍。每个部分中的KR个比特基于第一/读取抖动函数Ia(n)进行交织。随后基于RP交织器,对第一抖动后的N个比特进行交织,该RP交织器可由Ib(n)=(s+P·n)mod N给出。RP交织后的N个比特被划分为多个大小为KW的部分,其中N为KW的整数倍。基于第二/写入抖动函数Ic(n),对每个部分中的KW个比特进行交织,以获取最终的交织后的比特。DRP交织器在IEEE第54界汽车技术会议录,2001年10月,第2394-2398页的S.Crozier和P.Guinand的名称为“High-PerformanceLow-Memory Interleaver Banks for Turbo-Codes”的论文中进行了描述,该论文可公开获得。
可以基于两个抖动函数Ia(n)和Ic(n)以及RP交织器函数Ib(n)来如下定义DRP交织器函数πdrp(n) πdrp(n)=Ic(Ib(Ia(n))),n=0,...,N-1.公式(7) DRP交织器功能具有下列特性 πdrp((n+Q)mod N)=(πdrp(n)+Q·P)mod N,以及公式(8) πdrp((n+1)mod N)=(πdrp(n)+D(n mod Q))mod N, 公式(9) 其中D(n)是总的抖动函数,其周期为Q,Q为KR和KW的最小公倍数。可以看出的是,DRP交织器满足公式(1)和(2)中的K=Q时的无竞争交织器准则。
在另一设计中,可采用近似正则置换(ARP)交织器来实现无竞争Turbo交织器。ARP交织器使用RP交织器,但在每个位置增加小的偏差。ARP交织器函数πarp(n)可如下定义 πarp(n)=(P·n+P·A(n)+B(n))mod N,n=0,...,N-1,公式(10) 其中A(n)和B(n)为具有周期C的函数,该周期是N的约数。
A(n)和B(n)的值与P和N/K相比是小的。项P·A(n)+B(n)将排列增加到RP交织器。ARP交织器在C.Berrou等的下述论文中进行了详细说明题目为“Designing Good Permutations for Turbo CodesTowards SingleModel”,IEEE通信国际会议,第1卷,2004年6月20日-24日,第341-345页,该论文可公开获得。通过仔细地选择A(n)和B(n),Berrou的论文显示,对于M=C,以及可能地对于M=p·C,只要N是p的倍数,ARP交织器可以满足公式(1)和(2)中的无竞争交织器准则。
在又一设计中,无竞争Turbo交织器可采用二次置换多项式(QPP)交织器来实现。QPP交织器函数πqpp(n)可如下定义 πqpp(n)=(a·n+b·n2)mod N,n=0,...,N-1,公式(11) 其中a和b为二次式的两个常数。针对每个大的码块大小,可以为QPP交织器的a和b选择特定的数值。
可以看出,如果二次式是针对N的QPP交织器,则对于任何可整除N的K都是无竞争的。QPP交织器在Jin Sun和Oscar Y.Takeshita的下述论文中进行了详细描述题目为“Interleavers for Turbo Codes Using PermutationPolynomials Over Integer Rings”,IEEE信息理论学报,第51卷,第1期,第101-119页,2005年,该论文可公开获得。可以看出,只要K是N的除数,则QPP交织器可以满足公式(1)和(2)中的无竞争交织器准则。
图10示出了Turbo解码器430d的一个设计的方框图,其还可以用于图4中的Turbo解码器430。在Turbo解码器430d内,控制单元1060可以接收所选择的码块大小,并确定该码块大小是否大于阈值大小。如果码块大小不大于阈值大小,则单元1060可以选择常规Turbo交织器1030a,否则,可以选择无竞争Turbo交织器1030b。单元1060可以基于码块大小生成各种控制。
交换单元1010可以接收码块的输入LLR,如果码块大小不大于阈值大小,则将输入LLR提供给SISO解码器1020a,否则,将输入LLR提供给SISO解码器1020b。SISO解码器1020a可以包括图6中的SISO解码器620。常规Turbo交织器1030a可以包括图6中的交织器630、解交织器640和存储单元650。SISO解码器1020a和常规Turbo交织器1030a可以如上针对图6所述地进行操作。单元1060可以将所选择的码块大小和/或控制信号提供给SISO解码器1020a和常规Turbo交织器1030a,其可以基于码块大小进行操作。
SISO解码器1020b可以包括图7中的解复用器710和SISO解码器720a-720m。无竞争Turbo交织器1030b可以包括图7中的码交织器730a-730m、码解交织器740a-740m和存储单元750a-750m。SISO解码器1020b和无竞争Turbo交织器1030b可以如上针对图7所述地进行操作。单元1060可将码块大小提供给SISO解码器1020b,该SISO解码器1020b可以针对该码块大小,基于段大小K对输入LLR进行解复用和解码。单元1060还可以将码块大小提供给无竞争Turbo交织器1030b,其可以选择合适的无竞争Turbo交织器函数来用于解码。
在完成所有解码迭代后,选择器1040可以从Turbo交织器1030a或1030b接收最终数据比特LLR。如果码块大小不大于阈值大小,则选择器1040可以提供来自Turbo交织器1030a的最终数据比特LLR,否则,可以提供来自Turbo交织器1030b的最终数据比特LLR。检测器1050可以从选择器1040接收最终数据比特LLR,并提供已解码比特。
图11示出了处理数据的过程1100的一个设计。过程1100可由发射机或接收机来执行,例如,由UE、基站或一些其它实体。可以确定从多个码块大小中选择的码块大小(块1112)。如图8中所示,例如,可以基于正在发送的数据有效载荷的大小来选择码块大小。如果码块大小大于阈值大小,则可以使用无竞争Turbo交织器(块1114)。如果码块大小小于或等于阈值大小,则可以使用常规Turbo交织器(块1116)。所述多个码块大小可以包括多个较大的码块大小,所述较大的码块大小大于阈值大小。每个较大的码块大小可与相应的无竞争Turbo交织器相关联。所述多个较大的码块大小可以以预先确定的步长大小来线性地增加。所述多个码块大小还可以包括包括多个较小的码块大小,所述较小的码块大小小于或等于阈值大小。常规Turbo交织器可以用于所有较小的码块大小。
如果码块大小大于阈值大小,则可以基于无竞争Turbo交织器进行Turbo编码或解码(块1118)。如果码块大小小于或等于阈值大小,则可以基于常规Turbo交织器来进行Turbo编码或解码(块1120)。
对于发射机(例如,基站),如果码块大小大于阈值大小,则可以基于多个组成编码器和无竞争Turbo交织器,对码块进行Turbo编码。如果码块大小小于或等于阈值大小,则可以基于多个组成编码器和常规Turbo交织器,对码块进行Turbo编码。
对于接收机(例如,UE),如果码块大小大于阈值大小,则基于多个SISO解码器和无竞争Turbo交织器,对码块进行Turbo解码。多个存储单元可以用于存储来自多个SISO解码器的信息。在基于无竞争Turbo交织器进行交织或解交织后,来自多个SISO解码器的信息可以在每个写周期内并行地写入多个存储单元。无竞争Turbo交织器可以基于DRP交织器、ARP交织器、QPP交织器或一些其它类型的能够支持对多个存储单元进行无竞争存取的交织器。如果码块大小小于或等于阈值大小,则可以基于至少一个SISO解码器和常规Turbo交织器,对码块进行Turbo解码。
图12示出了用于处理数据的装置1200的一个设计。装置1200包括用于确定从多个码块大小中选择出的码块大小的模块(模块1212),用于如果码块大小大于阈值大小则使用无竞争Turbo交织器的模块(模块1214),用于如果码块大小小于或等于阈值大小则使用常规Turbo交织器的模块(模块1216),用于如果码块大小大于阈值大小则基于无竞争Turbo交织器进行Turbo编码或解码的模块(模块1218),以及用于如果码块大小小于或等于阈值大小则基于常规Turbo交织器进行Turbo编码或解码的模块(模块1220)。
图12中的模块可以包括处理器、电子设备、硬件设备、电子部件、逻辑电路、存储器等,或者它们的组合。
本领域技术人员应当理解,可以使用各种不同的方法和技术中的任何一种来表示信息和信号。例如,在以上整个说明书中所提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或磁性粒子、光场或光粒子或者其任何组合来表示。
本领域技术人员还应当明白,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里所述功能的下列部件来实现或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
结合这里的公开所描述的方法或算法的步骤可以直接体现在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以位于RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质。示例性的存储介质耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以位于ASIC中。ASIC可以位于用户终端中。在替换方案中,处理器和存储介质可以作为分立的部件位于用户终端中。
在一个或多个示例性设计中,所述功能可以被实现在硬件、软件、固件或其任意组合中。如果被实现在软件中,则这些功能可以被作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够由通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储介质、磁盘存储介质或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够由通用或专用计算机或者由通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外、无线电和微波的无线技术来从网站、服务器或其它远程源传送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光学盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
本公开的上述描述被提供来使得本领域普通技术人员能够实现或使用本公开内容。在不脱离本公开内容的范围的情况下,针对本公开的各种修改对于本领域普通技术人员而言将会是显而易见的,并且在此定义的一般性原理可以应用于其他变形。因此,本公开内容并非意欲限制在此所描述的实例和设计,而是要解释为与在此公开的原理或新颖性特征相一致的最宽范围。
权利要求
1、一种用于处理数据的装置,包括
至少一个处理器,其被配置为确定从多个码块大小中选择出的码块大小,以及如果所述码块大小大于阈值大小,则使用无竞争Turbo交织器;以及
存储器,其耦合到所述至少一个处理器。
2、根据权利要求1所述的装置,其中,所述至少一个处理器被配置为如果所述码块大小大于所述阈值大小,则基于多个软输入软输出(SISO)解码器和所述无竞争Turbo交织器,对码块进行解码。
3、根据权利要求2所述的装置,其中,所述存储器被配置为实现多个存储单元,以存储来自所述多个SISO解码器的信息。
4、根据权利要求3所述的装置,其中,所述至少一个处理器被配置为在基于所述无竞争Turbo交织器进行交织或解交织后,将来自所述多个SISO解码器的信息,在每个写周期内并行地写入到所述多个存储单元中。
5、根据权利要求1所述的装置,其中,所述多个码块大小包括多个大于所述阈值大小的码块大小,其中所述多个码块大小中的每一个与相应的无竞争Turbo交织器相关联。
6、根据权利要求5所述的装置,其中,所述多个码块大小以预定的步长线性地增加。
7、根据权利要求5所述的装置,其中,所述多个码块大小如下给出
Ni=Nth+L·i,
其中Nth为最小的大小,L是连续码块大小之间的步长大小,Ni是所述多个码块大小中的第i个码块大小。
8、根据权利要求5所述的装置,其中,所述多个码块大小如下给出
Ni=Ni-1+Li
其中Li是第i个码块大小的增量,Ni是所述多个码块大小中的第i个码块大小。
9、根据权利要求1所述的装置,其中,所述至少一个处理器被配置为如果所述码块大小小于或等于所述阈值大小,则使用常规Turbo交织器。
10、根据权利要求9所述的装置,其中,所述至少一个处理器被配置为如果所述码块大小小于或等于所述阈值大小,则基于至少一个软输入软输出(SISO)解码器和所述常规Turbo交织器,对码块进行解码。
11、根据权利要求9所述的装置,其中,所述多个码块大小包括小于或等于所述阈值大小的若干码块大小,其中,针对所述若干码块大小,使用所述常规Turbo交织器。
12、根据权利要求1所述的装置,其中,所述至少一个处理器被配置为基于数据有效载荷大小来选择所述码块大小。
13、根据权利要求1所述的装置,其中,所述至少一个处理器被配置为如果所述码块大小大于所述阈值大小,则基于多个组成编码器和所述无竞争Turbo交织器,对码块进行编码。
14、根据权利要求9所述的装置,其中,所述至少一个处理器被配置为如果所述码块大小小于或等于所述阈值大小,则基于多个组成编码器和所述常规Turbo交织器,对码块进行编码。
15、根据权利要求1所述的装置,其中,所述无竞争Turbo交织器基于抖动互素(DRP)交织器、近似正则置换(ARP)交织器和二次置换多项式(QPP)交织器中的一个。
16、一种用于处理数据的方法,包括
确定从多个码块大小中选择出的码块大小,以及
如果所述码块大小大于阈值大小,则使用无竞争Turbo交织器。
17、根据权利要求16所述的方法,还包括
如果所述码块大小大于所述阈值大小,则基于多个软输入软输出(SISO)解码器和所述无竞争Turbo交织器,对码块进行解码。
18、根据权利要求17所述的方法,还包括
在基于所述无竞争Turbo交织器进行交织或解交织后,将来自所述多个SISO解码器的信息,在每个写周期内并行地写入到多个存储单元中。
19、根据权利要求16所述的方法,还包括
如果所述码块大小小于或等于所述阈值大小,则选择常规Turbo交织器。
20、根据权利要求19所述的方法,还包括
如果所述码块大小小于或等于所述阈值大小,则基于至少一个软输入软输出(SISO)解码器和所述常规Turbo交织器,对码块进行解码。
21、根据权利要求16所述的方法,还包括
如果所述码块大小大于所述阈值大小,则基于多个组成编码器和所述无竞争Turbo交织器,对码块进行编码。
22、根据权利要求19所述的方法,还包括
如果所述码块大小小于或等于所述阈值大小,则基于多个组成编码器和所述常规Turbo交织器,对码块进行编码。
23.、一种处理数据的装置,包括
用于确定从多个码块大小中选择出的码块大小的模块,以及
用于如果所述码块大小大于阈值大小,则使用无竞争Turbo交织器的模块。
24、根据权利要求23所述的装置,还包括
用于如果所述码块大小大于所述阈值大小,则基于多个软输入软输出(SISO)解码器和所述无竞争Turbo交织器,对码块进行解码的模块。
25、根据权利要求24所述的装置,还包括
用于在基于所述无竞争Turbo交织器进行交织或解交织后,将来自所述多个SISO解码器的信息,在每个写周期内并行地写入到多个存储单元中的模块。
26、根据权利要求23所述的装置,还包括
用于如果所述码块大小小于或等于所述阈值大小,则选择常规Turbo交织器的模块。
27、根据权利要求26所述的装置,还包括
用于如果所述码块大小小于或等于所述阈值大小,则基于至少一个软输入软输出(SISO)解码器和所述常规Turbo交织器,对码块进行解码的模块。
28、根据权利要求23所述的装置,还包括
用于如果所述码块大小大于所述阈值大小,则基于多个组成编码器和所述无竞争Turbo交织器,对码块进行编码的模块。
29、根据权利要求26所述的装置,还包括
用于如果所述码块大小小于或等于所述阈值大小,则基于多个组成编码器和所述常规Turbo交织器,对码块进行编码的模块。
30.、一种机器可读质,包括指令,当所述指令被机器执行时,使得所述机器执行下述操作
确定从多个码块大小中选择出的码块大小,以及
如果所述码块大小大于阈值大小,则使用无竞争Turbo交织器。
31、根据权利要求30所述的机器可读质,当其被机器执行时,使得所述机器还执行下述操作
如果所述码块大小大于所述阈值大小,则基于多个软输入软输出(SISO)解码器和所述无竞争Turbo交织器,对码块进行解码。
32、根据权利要求31所述的机器可读质,当其被机器执行时,使得所述机器还执行下述操作
在基于所述无竞争Turbo交织器进行交织或解交织后,将来自所述多个SISO解码器的信息,在每个写周期内并行地写入到多个存储单元中。
33、一种用于处理数据的装置,包括
至少一个处理器,其被配置为确定从多个码块大小中选择出的码块大小,以及如果所述码块大小大于阈值大小,则使用无竞争Turbo交织器,以及如果所述码块大小小于或等于所述阈值大小,则使用常规Turbo交织器;以及
存储器,其耦合到所述至少一个处理器。
34、根据权利要求33所述的装置,其中,所述至少一个处理器被配置为如果所述码块大小大于所述阈值大小,则基于多个软输入软输出(SISO)解码器和所述无竞争Turbo交织器,对码块进行解码,以及,如果所述码块大小小于或等于所述阈值大小,则基于至少一个SISO解码器和所述常规Turbo交织器,对所述码块进行解码。
全文摘要
描述了用于支持高解码吞吐量的技术。发射机可以采用Turbo编码器对数据比特的码块进行编码。接收机可以采用具有多个软输入软输出(SISO)解码器的Turbo解码器,对所述码块进行解码。如果所述码块大小大于阈值大小,则可以使用无竞争Turbo交织器。如果所述码块大小小于或等于所述阈值大小,则可以使用常规Turbo交织器。所述无竞争Turbo交织器对所述码块中的所述数据比特进行重新排序,使得来自多个SISO解码器的信息在进行交织或解交织以后,可以在每个写周期内并行地写入多个存储单元,而不会遇到存储器存取竞争。所述常规Turbo交织器可以以任何方式对码块中的数据比特进行重新排序,而不考虑无竞争存储器存取。
文档编号H03M13/27GK101529726SQ200780040526
公开日2009年9月9日 申请日期2007年11月1日 优先权日2006年11月1日
发明者魏永斌, J·孙, D·P·马拉蒂 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1