交织实现方法和设备的制作方法

文档序号:7890775阅读:222来源:国知局
专利名称:交织实现方法和设备的制作方法
技术领域
本发明涉及通信技术,尤其涉及一种交织实现方法和设备。
背景技术
在现代通讯系统中,前向纠错编码器可以纠正一定范围的随机错误,但在一些突发性的连续噪声场景下,差错比特串的长度就很有可能超出前向纠错编码器的纠正范围。这时可以采用交织器,利用交织器将相继比特分散成非相继比特,使得较长的差错比特串变为较短的差错比特串,从而可以继续被前向纠错编码器纠正。交织器有块交织器和卷积交织器两种。对于卷积交织器,卷积交织器的输入端将待处理的数据按顺序输入I个分支内进行延迟处理,I为分支的个数。每个分支的数据经过各自延迟的移位寄存器后再被读出,每个分支上的移位寄存器可以称为一条交织链。每条交织链的长度为nd (j) = floor ((j*D) /I),其中,nd (j)为第j条交织链的长度,也就是第j条交织链上的延时时间,j = 0,1,... , 1-1,D为交织深度,floor((j*D)/I)表示对(j*D)/I进行向下取整,j*D表示j与D进行相乘运算。在每条交织链上对数据延迟处理后,按照计算得到的输出序列值(id值)读出每一条交织链的数据,其中第j条交织链对应的输出序列值 id(j) = (j*D) % I。现有技术中卷积交织处理时,每条交织链上的数据写入后延迟对应的时间后即被输出,并不能对交织器两端相邻的设备起到速率匹配的作用。

发明内容
本发明实施例是提供一种交织实现方法和设备,能够进行数据缓存,起到速率匹配的作用。本发明实施例提供了一种交织实现方法,包括将待交织处理的数据依次输入到每个交织链内;在每个交织链内,将输入数据写入写指针指示的存储位置;在需要读出数据时,根据输出序列值依次读出每个交织链内读指针指示位置的数据;其中,所述写指针在数据写入后指向下一个数据写入位置,所述读指针在数据读出后指向下一个数据读出位置。本发明实施例提供一种交织实现设备,包括 输入模块,用于将待交织处理的数据依次输入到每个交织链内。写入模块,用于在每个交织链内,将输入数据写入写指针指示的存储位置,所述写指针在数据写入后指向下一个数据写入位置;读出模块,用于在需要读出数据时,根据输出序列值依次读出每个交织链内读指针指示位置的数据,所述读指针在数据读出后指向下一个数据读出位置,且所述写指针和所述读指针之间的存储空间的初始长度为交织链的长度。
由上述技术方案可知,本发明实施例通过在每个交织链内设置写指针和读指针,并且写指针和读指针指示的位置随着数据的写入或读出而改变,可以将数据缓存在交织链内;由于交织器实现了数据缓存功能,就可以在交织器两端的设备的速率不一致时,由交织器对速率不匹配部分的数据进行缓存,通过在交织链内写入、读出数据协调两端设备的速率,实现速率匹配。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图I为本发明第一实施例的方法流程示意图;图2为本发明实施例中数据写入读出示意图;图3为本发明实施例中每个分支的存储单元的示意图;图4为本发明实施例中数据写入示意图;图5为本发明实施例中数据读出示意图;图6为本发明实施例中缓存滑动示意图;图7为本发明第二实施例的方法流程示意图;图8为本发明实施例中交织深度增加后数据写入读出示意图;图9为本发明第三实施例的方法流程示意图;图10为本发明实施例中交织深度减小后数据写入读出示意图;图11为本发明第四实施例的设备结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有技术不能缓存数据的问题,本发明实施例的交织器提供了数据缓存功能,而不是现有技术中数据写入便被读出。图I为本发明第一实施例的方法流程示意图,包括步骤11 :交织器将待交织处理的数据依次输入到每个交织链内。其中,待交织处理的数据来自于交织器的上一级设备,例如前向纠错编解码器,当交织器接收到来自前向纠错编解码器的数据后,交织器将接收的数据依次输入交织器的每个交织链(也可以称为分支)内。例如,交织链的编号分别为0,1,...1-1,那么交织器将接收的数据按照0、1. . . I-I的顺序输入到每个交织链内。步骤12 :交织器在每个交织链内,将输入数据写入写指针指示的存储位置。本发明实施例中,在每个交织链内设置写指针和读指针,分别指示数据的写入地址和读出地址。通过设置写指针和读指针,可以利用交织器内的存储空间,使用该存储空间完成数据缓存。当利用交织器的存储空间缓存数据后,可以实现交织链相邻的两个设备间的速率匹配,例如交织器相邻的两个设备分别为A设备和B设备,且A设备和B设备的速率不同,例如,A设备的速率为a (bit/s),B设备的速率为Mbit/s),假设a > b,那么在一定时间内来自A设备的数据量大于B设备能够处理的数据量,如果A设备和B设备之间没有速率匹配的设备,那么来自A设备的数据不能都被B设备处理,可能会造成数据丢失。而本实施例中,将利用交织器内的存储空间实现数据缓存,那么来自A设备的数据可以先缓存在交织器内,按照B设备能够处理的速率由交织器内传输给B设备进行处理,也就是实现了 A设备和B设备之间的速率匹配。步骤13 :交织器在需要读出数据时,根据输出序列值依次读出每个交织链内的读指针指示位置的数据,其中,所述写指针在数据写入后指向下一个数据写入位置,所述读指针在数据读出后指向下一个数据读出位置。
其中,交织器可以根据下一级设备的读出指令输出数据,例如,交织链的下一级设备为调制解调器,则交织器收到调制解调器的读取指令时,也就是交织器在需要读出时,将数据输出给调制解调器。通过写指针和读指针指示的位置的改变,可以使得所述写指针和读指针指示的位置随着数据的写入和读出在对应交织链的存储单元内滑动,也就实现了交织链的存储空间能够起到缓存数据的作用。现有技术中交织器只是对数据进行延时,没有缓存功能。那么在上述场景下,交织器接收到来自A设备的数据后在经过一定延时后,会将这些数据都传输给B设备,由于A设备的速率比B设备的速率大,那么传输给B设备的数据将大于B设备能够处理的数据量,就会出现数据丢失、数据处理错误等问题。而本实施例中,由于交织器实现了数据缓存功能,那么来自A设备的数据可以缓存到交织器内,就不必如现有技术中由于交织器没有缓存功能只能接收多少数据就发送多少数据;由于数据可以先在交织器内缓存,那么交织器按照B设备能够处理的速率将缓存的数据发送给B设备,就可以实现交织器对A设备和B设备的速率匹配。另外,输入到卷积交织器的第j条交织链上的数据的延迟为nd(j)+rdel(j),计算公式分别为nd(j) = floor ((j*D)/I) ,rdel (j) = ((D*j) % I),其中,j = 0,1, · · · , 1-1,D为交织器的交织深度,floor ()表示向下取整,I为交织链的个数,表示相乘运算,“/”表示相除运算,“ % ”表示取余运算。本实施例中,上述的nd(j)可以由第j条交织链内的写指针和读指针之间的存储空间的长度实现,即当第j条交织链的写指针和所述读指针之间的存储空间的初始长度为交织链的长度时,那么写入该第j条交织链的数据将延迟nd(j)后输出,也就是实现了数据的整数延迟nd(j)。而rdel (j)可以通过改变交织链的读出顺序实现,例如,数据是按照0,1,
2,... I-I这一顺序依次写入交织链内的,每个交织链能够提供的延迟为nd(j),为了再实现残留延迟rdel (j),那么在读出数据时,可以改变交织链的读出顺序,即不再按照0,1,2,I-I这一顺序依次读出每个交织链上的数据,而是根据输出序列值指示的读出顺序读出各交织链上的数据。其中,本发明实施例中,输出序列值用id(j)表示,id(j) = ((D*j)%I)。因此,对于第j条交织链,其对应的输出序列值为id (j),之后可以按照id(j)从小到大的顺序依次输出对应的交织链内的数据,例如,j = O时其对应的输出序列值id (O) = O,是最小的,那么读出时最先读出第O条交织链内的数据,也就是第I次读出的是第O条交织链内的数据;对于第j = I条交织链,其对应的输出序列值为((D*l) % I),那么第I条交织链上的数据将在第((D*1) % D+1次读出,其余交织链上的数据读出顺序类似。通过上述读出顺序的改变就可以实现上述的残留延迟。再者,每个交织 链的存储空间在逻辑上是循环的,例如,当写指针指示的存储位置到达物理空间的最大指示位置时,下一次该写指针将重新指示物理空间的最小指示位置,也可以将交织链的存储空间理解为是环形存储空间。并且,本发明实施例中的写指针和读指针指示的位置不是不变的,而是需要随着数据的写入或读出进行相应的改变,实现数据缓存和读取。其中,本发明实施例中每个分支上可以缓存数据,并用写指针和读指针指示数据写入、读出的位置。由于写指针指向的是写入地址,读指针指向的是读出地址,且读指针和写指针指向的位置是随着数据写入、读出而改变的,因此该读指针和写指针之间的区域可以理解为一个滑窗,例如,参见图2,交织器包括I条交织链,每条交织链的编号分别为O、
I、. . . 1-1,后续图中的0、1、. . . I-I的含义相同。每个分支对应一个滑窗,滑窗的两个端点分别为读指针和与指针。每个分支上的滑窗的长度的初始值为根据当前的交织深度确定的值,即,nd(j)=
为索引为j的分支上的滑窗的长度,j =0,1,..., 1-1, I为分支个数,D _为当前的交织深度,floor (j*D ■)/I)表示对“(j*D ■)/I”的值向下取整,当前的交织深度是指数据输入交织器时,交织器的交织深度,j*D表示j与D相乘。另外,图2中每个分支上用实线表示的框为最大滑窗长度,具体地,参见图3,初始数据未写入时,每个分支上包括大小为w的缓存和长度为nd(j)的滑窗。随着数据不断写入到缓存内,缓存内的存储空间将越来越小,并且写指针和读指针之间的距离越来越大,将缓存内写满后,写指针和读指针之间的滑窗将达到最大滑窗长度。最大滑窗长度的计算公式为ncLx(j) = flo0r(j*Dmax)/I),其中,Dmax为交织深度的最大值,可以根据实际需要设定。因此,在当前交织深度D3ff时,每个交织链能够提供的缓存w = ndmax(j)-nd3ff (j)=floor (j*Dmax) /I) -floor ((j*D 当前)/I)。进一步地,参见图4,图4以及其他附图中的0、1、2.....I-I表示交织器内交织链
(或者称为分支)的序号,当数据按照写指针的指示依次写入缓存(也可以称为交织链内的存储空间)时,滑窗长度就会增加一个数据位宽,直至达到最大滑窗长度。此时,滑窗将充满整个交织链,缓存被写满,交织器输出满标志。当输出满标志后表明该分支内不能再次写入数据。另一方面,参见图5,当数据依次被读出时,滑窗长度就会减小一个数据位宽,直至缓存被清空,滑窗大小又减为初始值。此时,交织器输出空标志。当输出空标志后表明该分支内不能再次读出数据。上述的图4中当滑窗长度达到最大滑窗长度时,表明对应的交织链内的存储空间w已满;而图5中当滑窗长度恢复到初始值时,表明对应的交织链内的存储空间w已空。为了正确实现数据的写入、读出,类似现有的先进先出(First Input First Output,FIFO)存储器的处理,当存储空间已满时需要输出满标至,此时就不再写入数据;当存储空间已空时需要输出空标志,此时就不再读出数据。 从上述的写及读过程可以看出,数据未写入时,每个分支上的缓存大小为W,此时的缓存能够存储的数据容量也是《,当数据写入时,缓存的剩余空间将逐渐减小直至缓存存满数据,此时的缓存的剩余空间为0,并且当数据写入时,写指针逐渐远离读指针,滑窗的长度就逐渐变大。也就是说,缓存大小w就是数据未写入时剩余存储空间大小,是每个分支上可以提供的缓存大小,由于每个分支上可以提供大小为w的缓存,则共可以提供大小为I*w的缓存。并且,参见图6,由于初始时,每个分支的数据都需要写入到初始的相同的缓存位置,那么所有分支上的大小为I*w的缓存将组成一个图6中上一个图所示的矩形,而随着后续不同分支在不同时刻的写入、读出数据,不同分支上的缓存位置也有所不同,那么所有分支上的大小为I*w的缓存所组成的形状不再是矩阵,例如可能变成是图6的下一个图所示的形状。数据输出序列计算公式为id(j) = ((D*j) % I)。例如,第一个输出的为第Xl个分支的读指针指示位置的数据,其中(xl*D) % I = 0,第二个输出的为第x2个分支的读指针指示位置的数据,其中(x2*D) % I = 1,...第I个输出的为第xn个分支的读指针指示位置的数据,其中(xn*D) % I = 1-1。本实施例通过设置写指针和读指针,并且写指针和读指针是可调的,使得交织器不仅具有交织功能还具有数据缓存功能,由于增加了数据缓存功能,可用于交织器两端设备间的速率匹配。例如,假设交织器上一级设备以Abit/s的输出速率平稳输出数据给交织器,而交织器的下一级设备是集中对数据进行处理的,例如,前N秒不处理数据,而在后面的M秒集中进行处理。此时,由于上一级设备持续的在输出数据,而下一级设备在一段时间内是不能够处理数据的,在下一级设备不能够处理数据的这一段时间需要存储上一级设备输出的数据,避免数据丢失。也就是说,当上一级设备和下一级设备的速率不匹配时,如上述的一个持续输出数据,一个一段时间输入数据应该为0,那么可以在上一级设备和下一级设备之间设置存储器,以便将上一级设备输出但下一级设备没有处理的数据进行存储,通过数据缓存实现上一级设备和下一级设备的速率匹配。而现有技术中交织器只是对数据进行延时,没有进行数据存储,而本发明实施例中将利用交织器内的存储空间实现数据存储,进而实现交织器的上一级设备和下一级设备的速率匹配。图7为本发明第二实施例的方法流程示意图,本实施例以交织深度增加为例。当交织器的交织深度增加时,需要作出两个改变,第一是nd长度的增加,第二是数据输出序列的改变。参见图7,本实施例包括步骤71 :计算滑窗长度的增加值And(j)。该增加值And (j) = nKjO-nUj),其中,ndnOT(j)为根据增加后的交织深度计算得到的滑窗长度,ndold(j)为根据原始的交织深度计算得到的滑窗长度。步骤72 :将读指针指示的位置回退And(j),并在需要读出数据时,按照新计算得到的输出序列(id)值,依次读出对应的分支内读指针指示位置的数据。参见图8,读指针指示的位置向后滑动,此时,将存在重复读出的数据。对于重复读出的数据,将重复读出的数据作为哑元,在交织器或接收端丢弃。同时,由于交织深度改变,数据输出序列也将改变,新的数据输出序列为idnOT(j)=(j*Dnew) % I。
本实施例中交织深度可以增加,使得交织深度可以在用户定义的范围内动态改变,提高了受时变噪声影响的系统的可靠性,可以在延时、交织深度、数据缓存中灵活调配存储单元,大大提高系统的性能。图9为本发明第三实施例的方法流程示意图,图10为本发明实施例中交织深度减小后数据写入读出示意图。本实施例以交织深度减小为例。当交织深度减小时,需要作出两个改变,第一是nd长度的减小,第二是数据输出序列的改变。与交织深度增加时不同的是,如果直接减小滑窗的大小,一些已经输入滑窗的数据会被剔除,所以这时会插入一些哑元,保证已有的数据不会被剔除掉。参见图9,本实施例包括步骤91 :确定需要插入哑元的周期。
需要插入哑元的周期为δ = ceil ((Dtjld-Dnew)=Kl-I)/];)*]^其中,ceil表示向上取整。步骤92 :计算滑窗长度的减小值And(j)以及重新确定输出序列值。其中,滑窗长度的减小值And(j)的计算公式为如果(Dold-Dnew)*(1-1) % I 为 O,贝丨J And(j) = ndold (j)-ndnew (j)+1 ;如果(Dold-Dnew)*(I-I) % I 不为 0,贝丨J And(j) = ndold (j)-ndnew (j)。所述重新确定的输出序列值的计算公式为idnew(j) = ((Dnew*j) % I),其中,idnew(j)为重新确定的输出序列值,Dmw为减小后的交织深度,%表示取余运算。步骤93 :根据所述插入哑元的周期及滑窗长度的减小值And(j),按照重新确定的输出序列值依次读出每个交织链内读指针指示位置的数据。当交织深度减小时,写指针停止不动,周期计数器开始工作,如果周期计数器小于And(j)则正常输出数据;如果周期计数器不小于And(j)则输出哑元,此时,读指针停止不动,滑窗不变。其中周期计数器用于对读指针的指示值进行计数。另外,数据输出序列为idnew(j)= (j*Dnew) % I。本实施例中交织深度可以增加,使得交织深度可以在用户定义的范围内动态改变,提高了受时变噪声影响的系统的可靠性,可以在延时、交织深度、数据缓存中灵活调配存储单元,大大提高系统的性能。本发明实施例的交织器增加了数据缓存的功能,由于交织器相邻的模块是前向纠错解码器和调制解调器,流水处理的数据很有可能有很大不同,并且处理的符号边界也不同,这就需要他们之间有一个大的缓存用来解耦速率的不同。而单独增加存储器会带来成本的很大增加,而利用交织器窗口滑动产生的缓存,可以使存储器的密度增加,并且可以根据实际场景灵活分配交织深度和缓存深度,便于系统优化和扩展。由于交织链滑窗的设计,可以使交织的深度在用户定义的范围内作动态改变,提高了受时变噪声影响的系统的可靠性,可以在延时、交织深度、数据缓存中灵活调配存储单兀,大大提闻了系统的性能。图11为本发明第四实施例的设备结构示意图,该设备可以为交织器,该设备包括输入模块111、写入模块112和读出模块113 ;输入模块111用于将待交织处理的数据依次输入到每个分支内。写入模块112用于在每个交织链内,将输入数据写入写指针指示的存储位置,所述写指针在数据写入后指向下一个数据写入位置。读出模块113用于在需要读出数据时,根据输出序列值依次读出每个交织链内读指针指示位置的数据,所述读指针在数据读出后指向下一个数据读出位置。可选的,所述写入模块的写指针和读出模块的读指针之间的区域为滑窗,所述滑窗的初始值为nd(j) = floor ((j*D)/I),其中D为当前交织深度,j为交织链的序号,j =0,... 1-1,I为交织链的个数,floor O表示向下取整运算,*表示相乘运算,/表示相除运

ο可选的,所述写入模块具体用于每写入一个数据,移动写指针指示的位置,使得滑窗长度增加一个数据位宽,直至滑窗达到最大值,所述滑窗的最大值为ndmax(j)=floor ((j*Dmax)/I),其中,Dmax为交织深度的最大值,且,ndmax(j) = w+nd(j), w为每个交织链上缓存的长度;所述读出模块具体用于每读出一个数据,移动读指针指示的位置,使得滑窗长度减小一个数据位宽,直至滑窗恢复到所述初始值。可选的,该设备还包括第一处理模块,用于当交织深度增加时,计算滑窗长度的增加值And(j)以及重新确定输出序列值;其中,And(j) = ndnew(j)-ndold(j), ndnew(j)为根据增加后的交织深度计算得到的滑窗长度,nd-U)为根据原始的交织深度计算得到的滑窗长度;重新确定的输出序列值的计算公式为icU(j) = ((Dnew*j)% I),其中,idnOT(j)为重新确定的输出序列值,Dnrat为增加后的交织深度,%表示取余运算;;所述读出模块具体用于将读指针指示的位置回退And(j),并在需要读出数据时,按照所述重新确定的输出序列值idnOT(j),依次读出每个交织链内读指针指示位置的数据。可选的,该设备还包括第二处理模块,用于当交织深度减小时,确定需要插入哑元的周,并计算滑窗长度的减小值And(j)以及重新确定输出序列值;所述读出模块具体用于根据所述插入哑元的周期及滑窗长度的减小值And(j),按照重新确定的输出序列值依次读出每个交织链内读指针指示位置的数据。可选的,所述第二处理模块具体用于采用如下公式确定所述需要插入哑元的周期δ = ceil ((Dold-Dnew) * (I-I)/I) *1,其中,δ 为插入哑元的周期,ceil O 表示向上取整,Dnew为减小后的交织深度,Dold为减小前的交织深度;采用如下公式确定所述滑窗长度的减小值And(j)如果(Dold-Dnew)*(1-1) % I 为 O,贝丨J And(j) = ndold (j)-ndnew (j)+1 ;如果(Dold-Dnew)*(I-I) % I 不为 0,贝丨J And(j) = ndold (j)-ndnew (j);所述读出模块具体用于如果周期计数器小于And(j),则按照重新确定的输出序列值依次读出每个交织链内读指针指示位置的数据;如果周期计数器不小于△!!(!(」)则在所述插入哑元的周期输出哑元,所述周期计数器用于对读指针的指示值进行计数。
本实施例通过设置写指针和读指针,并且写指针和读指针是可调的,使得交织器不仅具有交织功能还具有数据缓存功能,由于增加了数据缓存功能,可用于两端设备间的速率匹配。可以理解的是,上述方法及设备中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的 是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种交织实现方法,其特征在于,包括 将待交织处理的数据依次输入到每个交织链内; 在每个交织链内,将输入数据写入写指针指示的存储位置; 在需要读出数据时,根据输出序列值依次读出每个交织链内读指针指示位置的数据;其中,所述写指针在数据写入后指向下一个数据写入位置,所述读指针在数据读出后指向下一个数据读出位置。
2.根据权利要求I所述的方法,其特征在于,所述写指针和读指针之间的区域为滑窗,所述滑窗的初始值为nd(j) = floor((j*D)/I),其中D为当前交织深度,j为交织链的序号,j = O,... 1-1,I为交织链的个数,floor O表示向下取整运算,*表示相乘运算,/表示相除运算。
3.根据权利要求2所述的方法,其特征在于, 所述将输入数据写入写指针指示的存储位置,包括每写入一个数据,移动写指针指示的位置,使得滑窗长度增加一个数据位宽,直至滑窗达到最大值,所述滑窗的最大值为Iidmax (j) = floor((j*Dmax)/I),其中,Dmax 为交织深度的最大值,且,ndmax(j) = w+nd(j),w 为每个交织链上缓存的长度; 所述依次读出每个交织链内读指针指示位置的数据,包括每读出一个数据,移动读指针指示的位置,使得滑窗长度减小一个数据位宽,直至滑窗恢复到所述初始值。
4.根据权利要求2所述的方法,其特征在于,还包括 当交织深度增加时,重新确定输出序列值以及重新确定读指针指示的位置,并根据重新确定的输出序列值依次读出每个交织链内重新确定的读指针指示位置的数据; 所述重新确定读指针指示的位置包括 计算滑窗长度的增加值And(j),将读指针指示的位置回退And(j),其中,And(j)=ndnew(j)-ndold(j),ndnew(j)为根据增加后的交织深度计算得到的滑窗长度,nd^(j)为根据原始的交织深度计算得到的滑窗长度; 所述重新确定的输出序列值的计算公式为idnOT(j) = ((Dnew*j) % I),其中,idnOT(j)为重新确定的输出序列值,Dnew为增加后的交织深度,%表示取余运算。
5.根据权利要求2所述的方法,其特征在于,还包括 当交织深度减小时,确定需要插入哑元的周期; 计算滑窗长度的减小值AncKj)以及重新确定输出序列值,所述重新确定的输出序列值的计算公式为idnOT(j) = ((DnOT* j) % I),其中,idnew (j)为重新确定的输出序列值,Dnew为减小后的交织深度,%表示取余运算; 根据所述插入哑元的周期及滑窗长度的减小值And(j),按照重新确定的输出序列值依次读出每个交织链内读指针指示位置的数据。
6.根据权利要求5所述的方法,其特征在于, 所述需要插入哑元的周期的计算公式为δ = ceil ((Dtjld-DneJ=Kl-I)/]:)*]:,其中,δ为插入哑元的周期,ceil O表示向上取整,Dnew为减小后的交织深度,Dtjld为减小前的交织深度; 所述滑窗长度的减小值And(j)的计算公式为如果(Dold-Dnew) *(1-1) % I % O,则 And(j) = ndold(j)-ndnew(j)+l ;如果(DaLd-Dnew)*(I-I) % I 不为 O,则 And(j) = ndold(j)-ndnew(j); 所述根据所述插入哑元的周期及滑窗长度的减小值And(j),按照重新确定的的输出序列值输出数据,包括 如果周期计数器小于△!!(!(」),则按照重新确定的的输出序列值依次读出每个交织链内读指针指示位置的数据;如果周期计数器不小于△!!(!(」)则在所述插入哑元的周期输出哑元,所述周期计数器用于对读指针的指示值进行计数。
7.一种交织实现设备,其特征在于,包括 输入模块,用于将待交织处理的数据依次输入到每个交织链内。
写入模块,用于在每个交织链内,将输入数据写入写指针指示的存储位置,所述写指针在数据写入后指向下一个数据写入位置; 读出模块,用于在需要读出数据时,根据输出序列值依次读出每个交织链内读指针指示位置的数据,所述读指针在数据读出后指向下一个数据读出位置,且所述写指针和所述读指针之间的存储空间的初始长度为交织链的长度。
8.根据权利要求7所述的设备,其特征在于,所述写入模块的写指针和读出模块的读指针之间的区域为滑窗,所述滑窗的初始值为nd(j) =floor((j*D)/I),其中D为当前交织深度,j为交织链的序号,J=O,... 1-1,I为交织链的个数,floor O表示向下取整运算,*表示相乘运算,/表示相除运算。
9.根据权利要求8所述的设备,其特征在于, 所述写入模块具体用于每写入一个数据,移动写指针指示的位置,使得滑窗长度增加一个数据位宽,直至滑窗达到最大值,所述滑窗的最大值为Iidmax(j) = floor((j*Dfflax)/I),其中,Dmax为交织深度的最大值,且,ndmax(j) = w+nd(j),w为每个交织链上缓存的长度;所述读出模块具体用于每读出一个数据,移动读指针指示的位置,使得滑窗长度减小一个数据位宽,直至滑窗恢复到所述初始值。
10.根据权利要求8所述的设备,其特征在于,还包括 第一处理模块,用于当交织深度增加时,计算滑窗长度的增加值AncKj)以及重新确定输出序列值;其中,And(j) = ndnew(j)-ndold(j), ndnew(j)为根据增加后的交织深度计算得到的滑窗长度,nd-U)为根据原始的交织深度计算得到的滑窗长度;重新确定的输出序列值的计算公式为icU(j) = ((Dnew*j) % I),其中,idnOT(j)为重新确定的输出序列值,Dnew为增加后的交织深度,%表示取余运算; 所述读出模块具体用于将读指针指示的位置回退△!!(!(」),并在需要读出数据时,按照所述重新确定的输出序列值idnOT(j),依次读出每个交织链内读指针指示位置的数据。
11.根据权利要求8所述的设备,其特征在于,还包括 第二处理模块,用于当交织深度减小时,确定需要插入哑元的周期,并计算滑窗长度的减小值And(j)以及重新确定输出序列值; 所述读出模块具体用于根据所述插入哑元的周期及滑窗长度的减小值AncKj),按照重新确定的输出序列值依次读出每个交织链内读指针指示位置的数据。
12.根据权利要求11所述的设备,其特征在于,所述第二处理模块具体用于 采用如下公式确定所述需要插入哑元的周期 δ = ceil ((Dtjld-Dnew)=Kl-I)/];)*]:,其中,δ为插入哑元的周期,ceil()表示向上取整,Dnew为减小后的交织深度,Dold为减小前的交织深度; 采用如下公式确定所述滑窗长度的减小值And(j) 如果(Dold-Dnew) *(1-1) % I % O,则 And(j) = ndold(j)-ndnew(j)+l ;如果(DaLd-Dnew)*(1-1) % I 不为 O,则 And(j) = ndold(j)-ndnew(j); 所述读出模块具体用于如果周期计数器小于△! !(」),则按照重新确定的输出序列值依次读出每个交织链内读指针指示位置的数据;如果周期计数器不小于ArnKj)则在所述插入哑元的周期输出哑元,所述周期计数器用于对读指针的指示值进行计数。
全文摘要
本发明提供一种交织实现方法和设备。该方法包括将待交织处理的数据依次输入到每个交织链内;在每个交织链内,将输入数据写入写指针指示的存储位置;在需要读出数据时,根据输出序列值依次读出每个交织链内读指针指示位置的数据;其中,所述写指针在数据写入后指向下一个数据写入位置,所述读指针在数据读出后指向下一个数据读出位置。本发明实施例可以实现交织器对两端设备的速率匹配。
文档编号H04L1/00GK102624484SQ20121005484
公开日2012年8月1日 申请日期2012年3月2日 优先权日2012年3月2日
发明者任帆, 梁柏熙 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1