一种计算并标识打孔/重复比特位置的速率匹配算法的制作方法

文档序号:7649437阅读:255来源:国知局
专利名称:一种计算并标识打孔/重复比特位置的速率匹配算法的制作方法
技术领域
本发明涉及到用于时分同步码分多址无线移动通讯系统(简称为TD-SCDMA系统)的物理层编解码系统采用TURBO编码进行速率匹配过程中,计算并标识打孔/重复比特位置的速率匹配算法。
背景技术
在TD-SCDMA系统中,根据3GPP的34108协议的规定,传输数据业务或者流媒体等高速率业务时常常采用TURBO编码方式。在通讯业务正常进行时,数据业务传输信道的传输时间间隔(简称为TTI)为10毫秒,而每个子帧的时间为5ms,对单用户而言,根据子帧结构中码片速率和扩频因子的关系,一个物理层子帧只能传输Ni个比特的用户数据(其中Ni∈{44,88,176,352,704})。在10毫秒中,高层将流媒体等业务数据按照比特流的形式传给物理层,每子帧中传输的用户数据的比特个数可能大于或小于Ni(通常将每子帧中传输的用户数据的比特个数称为比特数,以下简称为比特数)。在物理层处理过程中,通过一定的算法,将该用户数据中某些位置的数据删除或者重复,使得最终输出的数据比特数刚好与Ni相同的过程通常被称之为速率匹配。而将确定需要删除或者重复的数据位置的计算过程称为速率匹配算法。在速率匹配算法中,将某些位置的数据删除的过程称为“打孔”,而将某些位置的数据重复放入下一个位置的过程,称为“重复”。由于“打孔”、“重复”的数据均是以比特为计量单位,因此,又常将“打孔”、“重复”的过程称为“比特打孔”和“比特重复”,或者称为“打孔/重复比特”。
现有技术在3GPP的TS 25222协议中给出的速率匹配算法中,规定计算并标识需打孔/重复比特位置的子模块是按照逐个比特计算和判断的方式进行的,当传输的数据量较大时,现有技术执行的冗余指令数较多,导致速率匹配模块执行的指令数增加,从而使得整个系统的反应速度变慢,影响系统的正常运行。
在TD-SCDMA系统中,系统终端(简称为UE)常采用高速数字信号处理器(简称为DSP)实现物理层编解码模块的功能。

发明内容
为解决现有技术逐个比特计算并标识需打孔/重复比特位置的方法,在数据处理量较大时出现系统反应速度变慢等问题,本发明提出一种计算并标识打孔/重复比特位置的方法,该方法建立在DSP指令系统和指令流水线的执行特性的基础上,在DSP处理器中易于实现,并且能省去现有技术中由于计算非打孔/重复比特位置所产生的时间消耗。同时,该方法不占用指令寄存器(简称为IR)过多的指令代码,节约了系统资源。仿真试验检测证明,该方法对3GPP 34.108中规定的各种传输业务组合的不同打孔率都有明显的优化效果。
本发明速率匹配算法将待进行速率匹配计算的数据系列分为三个子系列,在计算打孔比特位置时,先确定基本打孔间隔值Δx,再计算新误差序列的增量Δm、新误差序列减量Δp、打孔比特间距修正值Δem、初始打孔位置j和起始误差更新值e′0=j×emin us-eini,然后,根据Δx、Δm、Δp、Δem、j和e′0等参数计算打孔位置并循环计算(ΔNi,j/2+1)次,最终确定出整个数据系列的打孔比特位置;在计算重复比特位置时,其计算步骤与计算打孔比特位置的步骤基本相同,仅是将重复比特标志存放在重复标记数组内的步骤与计算打孔比特位置的相应步骤不同。
本发明速率匹配算法采用下列方法选择基本打孔间隔值Δx选择整数i,使得(i-1)×emin us-eplus<0且i×emin us-eplus>0;计算f=(2i-1)×emimus-2×eplus并判断是否f<0,是则基本打孔间隔值Δx=j,否则基本打孔间隔值Δx=i-1。
本发明速率匹配算法采用下列方法计算新误差序列的增量Δm、减量Δp和打孔比特间距修正值Δem
计算temp=eplus-Δx×emimus并判断是否temp≤0,是则Δm=temp、Δp=emin us和Δem=-1,否则Δm=temp、Δp=-emin us和Δem=1。
本发明速率匹配算法采用下列方法计算初始打孔位置j及起始误差更新值e′0选择整数j,使得(j-1)×emin us-eini<0且j×emin us-eini>0,则j为第一个打孔位置距该序列首地址的偏移量;计算表达式e′0=j×emin us-eini,则e′0为打孔起始误差更新值。
本发明速率匹配算法计算并标识打孔比特位置的步骤包括1、计算初始化值e′=e′0,m=1;2、计算e′=e′-Δm;3、若e′≤-emin us并且Δem=-1,或者e′≥0并且Δem=1时,设置打孔距离为d=Δx+Δem,同时修正误差更新量e′=e′+Δp;如果不满足上述条件时,则不改变d和e′的值;4、将上一打孔比特位置偏移d位比特,将0xdddd写入该比特位;5、将d设置为基本打孔间隔d=Δx;并且增加打孔比特计数值m=m+1;6、当m≤[ΔNi,j/2+1]时,重复执行步骤2-5,直到m=[ΔNi,j/2+1]。


图1现有技术3GPP TS25222中速率匹配算法计算并标识打孔比特位置的流程示意图;图2本发明速率匹配算法计算并标识打孔比特位置的流程示意图;图3不同打孔率条件下现有技术和本发明速率匹配算法的性能比较示意图。
下面结合附图以及具体实施方式
对本发明速率匹配算法做进一步的说明。
图1是现有技术3GPP TS25222中速率匹配算法计算并标识打孔比特位置的流程示意图。由图可知,现有技术在计算并标识打孔比特位置时,先将待计算的数据系列分为三个字子系列,分别对每个子系列进行速率匹配计算,对第i个子系列(i=2,3)中需要打孔的位置填写OXDDDD,在计算完所有子系列后,再进行比特合并,即如出现OXDDDD则忽略该位置的数据,速率匹配计算结束。现有技术对每个子系列进行速率匹配计算时是按照逐个比特计算和判断的方式进行的,当传输的数据量较大时,现有技术执行的冗余指令数较多,导致速率匹配模块执行的指令数增加,从而使得整个系统的反应速度变慢,影响系统的正常运行。
根据3GPP TS25222协议的规定,具体的比特打孔位置是通过计算e的计算表达式后,根据其符号的正负进行判断的。在计算e的计算表达式时速率匹配的参数主要有eini,eplus和eminus。其中,eini是初始误差系数,该系数由3GPPTS25.222中参数计算部分得出;eminus是误差减量,eplus是误差增量,均为在逐比特判断打孔位置时用于计算e的增量和减量。对于某一位置比特,先将e减去eminus,如果e>0表示该位置不需要打孔(或者重复),继续判断下一位置比特;如果e<0,则说明该位置需要进行打孔(或者重复)操作,操作完成后再进入下一比特判断。
现有技术在进行速率匹配算法的打孔计算时,速率匹配模块计算并标识打孔比特位置的算法包括以下步骤(参数计算部分省略)1)计算初始化值e=eini,m=1,其中,m指示比特序列的位置;2)更新误差e=e-emin us;3)判断是否e≤0,是则将0xdddd写入该比特位,同时修正更新量e=e+eplus,否则不对该位比特xi,m进行任何操作;4)增加已经处理比特计数值m=m+1;5)判断是否m≤X1(此时X1为速率匹配前的比特个数)时,是则重复执行步骤2)-4),否则结束速率匹配计算。
可见,该算法的循环次数为速率匹配前的比特个数,当Xi很大时,计算量显著增加,系统运行速度变慢。
图2是本发明速率匹配算法计算并标识打孔比特位置的流程示意图。
在此,先对本发明速率匹配算法涉及到的相关概念和变量做一个简要的说明打孔间隔值两个被打孔比特之间间隔的比特数。
打孔间隔值集在整个匹配序列中出现的所有打孔间隔值的集合。根据3GPP TS25.222规定的速率匹配算法和3GPP 34.108的传输业务配置,打孔间隔值集里由相邻的两个整数值组成。
Δx基本打孔距离,在打孔序列中出现次数较多的打孔间隔值。
Δem打孔比特间距的修正值,可以用Δx+Δem计算另一个打孔间隔值,且Δem∈{-1,1}。
e′新误差系列,本发明方法满足现有技术误差更新的计算方法。该新误差序列相当于现有技术算法中的e序列,该序列是一个数组,记录每次增加或者减小后的误差更新值。为以示区别本发明采用e′表示,该误差系列实际上是对应每个打孔位置比特进行增量(或减量)计算操作后的值,本发明方法仍采用增量、减量以及溢出的判断准则计算发生跳变的打孔位置,并将新误差更新值记为e′,把起始的新误差e′记为e′0Δm新误差序列中更新e′的减量Δp新误差序列中更新e′的增量ΔNi,j整个TURBO序列需要打孔的比特数。
本发明方法速率匹配算法计算并标识打孔比特位置的步骤包括1、确定基本打孔间隔值Δx选择整数i,使得(i-1)emin us-eplus<0且i×emin us-eplus>0,计算并判断是否f=(2i-1)×emin us-2×eplus<0,是则Δx=i,否则Δx=i-1;所谓基本打孔间隔值是在整个打孔序列中出现次数较多的打孔间隔值,采用本发明方法选取的基本打孔间隔值可以减小对打孔间距d的修正。
2、计算新误差序列增量Δm,新误差序列减量Δp,打孔比特间距修正值Δem如果temp=eplus-Δx×emin us≥0,则Δm=temp,Δp=-emin us,Δem=1;如果temp=eplus-Δx×emin us<0,则Δm=temp,Δp=emin us,Δem=-1;计算中,如果选择了较小的数值作为基本打孔间隔,计算新误差序列e’出现超过判决门限时,选择+1作为打孔修正值;同理,如果选择了较大的数值作为基本打孔间隔,则需要选择-1作为打孔修正值。
3、计算初始打孔位置j,起始误差更新值e`0选择整数j,使得(j-1)×emin us-eini<0且j×emin us-eini>0,则j为第一个打孔位置距该数据序列首地址的偏移量;计算起始误差更新值e′0=j×emin us-eini,该误差为新误差系列的初始值。
4、根据Δx、Δm、Δp、Δem、j和e`0等参数计算并标识打孔位置并循环计算(ΔNi,j/2+1)次1)计算初始化值e′=e′0,m=1;2)计算e′=e′-Δm;3)若e′≤-emin us并且Δem=-1,或者e′≥0并且Δem=1时,设置打孔距离为d=Δx+Δem,同时修正误差更新量e′=e′+Δp;如果不满足上述条件时,则不改变d和e′的值;4)将上一打孔比特位置偏移d位比特,将0xdddd写入该比特位;5)将d设置为基本打孔间隔d=Δx;并且增加打孔比特计数值m=m+1;6)当m≤[ΔNi,j/2+1]时,重复执行步骤2-5,直到m=[ΔNi,j/2+1]。
需要说明的是根据3GPP TS25.222协议中速率匹配的比特分离模块中子序列的分离方法,取出该次需打孔的子序列首地址作为打孔的起始地址(如果是计算比特重复,同样按照该方法计算需要重复子序列的首地址,只是将标记值写入重复标记数组),然后,按照上述步骤根据打孔偏移量计算第i个打孔比特的位置并插入打孔标记。由于比特分离模块将数据序列分解成了3个相等的子序列,所以在需要做TURBO打孔的两个校验序列中,打孔比特基本相同,当ΔNi,j为奇数时,有一个校验序列需要少打一个比特。在本发明方法中,每个序列都按照最大的打孔数配置,让每个序列循环(ΔNi,j/2+1)次,然后在比特合并子模块按照总比特数循环,将最后多打的比特忽略。
对于计算速率匹配比特重复位置的情况,选择或计算各个参数的方法与计算比特打孔位置的方法是完全一样的,确定具体比特位置的方法及步骤也是一样的。由于“比特重复”是在数据比特合并时将某些位置数据重复,使数据系列达到预定的长度。因此,不能在原数据系列的比特重复位置按位直接进行重复,所以需要将比特重复位置的标志存放在重复标记数组内,在进行数据比特合并时根据重复标记数组的记录,确定需要比特重复的位置及重复比特数,从而使数据系列达到预定的长度。
仿真测试结果仿真条件①根据3GPP 34.108中不同的传输业务类型,在不同的传输速率和业务组合时,对本发明速率匹配算法和现有技术速率匹配算法所耗费的时间进行统计比较。
②为避免由于外在因素而造成对速率匹配算法性能估计产生偏差,避免不同公司的汇编语言的优化方法不同所带来的误差,对两种速率匹配算法均采用了最佳的指令优化技术,包括指令流水线排序以及采用精简指令集等。
③在TD-SCDMA物理层链路中,分别采用现有技术速率匹配算法和本发明速率匹配算法对速率匹配模块进行完整模块的性能仿真。
仿真结果表1列出了不同业务配置两种算法的时间耗费比较。在“计算并写入打孔/重复比特标志”的子模块中,比较现有技术速率匹配算法与本发明速率匹配算法的代码实际执行时间(即耗费时间),其中耗时的单位是cycle。该子模块在上、下行链路的耗时是相同的。
表1子模块中两种算法的耗时比较表

表2给出以上各种测试例中的速率匹配前后的数据量以及传输业务组合类型和打孔率。
表2表1测试例中的传输业务类型以及相关参数


表3给出了上行和下行链路,在完整的速率匹配模块级中,两种算法的程序耗时统计。由此表可知本发明速率匹配算法子模块的优化对整个速率匹配模块效率提高的影响。
表3速率匹配模块中两种算法的耗时统计

由于下行重复在比特合并模块需要执行额外的数据传输,所以下行的优化性能比上行的略低一些。尽管如此,本发明速率匹配算法对现有技术速率匹配算法的优化率基本保持在12%左右,当处理的数据量较大时,本发明速率匹配算法减少的耗时更多。
为测试本发明速率匹配算法对不同打孔率的适用性,选取上行链路为64KCS+3.4K信令的传输组合时不同打孔系数(PL值)和扩频因子数测试不同打孔率对本发明速率匹配算法的影响。图3是不同打孔率条件下现有技术速率匹配算法和本发明速率匹配算法的性能比较示意图。图中,纵坐标表示时间周期,横坐标表示打孔率(此处由Q=emin us/eplus表示,Q值越小,表示被打孔比特数越少,反之,表示被打孔比特数越多)。由图可知,当被打孔比特数与匹配前比特数的比值(通常成为P值)较小时,本发明速率匹配算法的性能显得更为优异。这是因为P值越低,基本打孔距离Δx相较大,相对于现有技术速率匹配算法循环次数为固定值,本发明速率匹配算法需要循环的次数便会显得更少。同时,从上述步骤可以看出,本发明速率匹配算法不会增加程序寄存器(IR)的过多的代码空间。
本发明速率匹配算法以实际的硬件平台验证了本发明速率匹配算法的优异性,本行业技术人员可以在不背离发明精神和实质的情况下,根据实际硬件平台和指令系统对本发明速率匹配算法做出各种相应的改变或者变形。但这些相应的改变或变形均属于本发明速率匹配算法的权利要求保护范围。
权利要求
1.一种计算并标识打孔/重复比特位置的速率匹配算法,将待进行速率匹配计算的数据系列分为三个子系列,其特征在于在计算打孔比特位置时,先确定基本打孔间隔值Δx,再计算新误差序列的增量Δm、新误差序列减量Δp、打孔比特间距修正值Δem、初始打孔位置j和起始误差更新值e′0=j×eminus-eini,然后,根据Δx、Δm、Δp、Δem、j和e′0等参数计算打孔位置并循环计算(ΔNi,j/2+1)次,最终确定出整个数据系列的打孔比特位置;在计算重复比特位置时,其计算步骤与计算打孔比特位置的步骤基本相同,仅是将重复比特标志存放在重复标记数组内的步骤与计算打孔比特位置的相应步骤不同。
2.根据权利要求1所述速率匹配算法,其特征在于采用下列方法选择基本打孔间隔值Δx选择整数i,使得(i-1)×eminus-eplus<0且i×eminus-eplus>0;计算f=(2i-1)×emimus-2×eplus并判断是否f<0,是则基本打孔间隔值Δx=i,否则基本打孔间隔值Δx=i-1。
3.根据权利要求1所述速率匹配算法,其特征在于采用下列方法计算新误差序列的增量Δm、减量Δp和打孔比特间距修正值Δem计算temp=eplus-Δx×emimus并判断是否temp≤0,是则Δm=temp、Δp=eminus和Δem=-1,否则Δm=temp、Δp=-eminus和Δem=1。
4.根据权利要求1所述速率匹配算法,其特征在于采用下列方法计算初始打孔位置j及起始误差更新值e′0选择整数j,使得(j-1)×eminus-eini<0且j×eminus-eini>0,则j为第一个打孔位置距该序列首地址的偏移量;计算表达式e′0=j×eminus-eini,则e′0为打孔起始误差更新值。
5.根据权利要求1所述速率匹配算法,其特征在于计算并标识打孔比特位置的步骤包括1)计算初始化值e′=e′0,m=1;2)计算e′=e′-Δm;3)若e′≤-eminus并且Δem=-1,或者e′≥0并且Δem=1时,设置打孔距离为d=Δx+Δem,同时修正误差更新量e′=e′+Δp;如果不满足上述条件时,则不改变d和e′的值;4)将上一打孔比特位置偏移d位比特,将Oxdddd写入该比特位;5)将d设置为基本打孔间隔d=Δx;并且增加打孔比特计数值m=m+1;6)当m≤[ΔNi,j/2]时,重复执行步骤2-5,直到m=[ΔNi,j/2]。
全文摘要
为解决现有技术逐个比特计算并标识需打孔/重复比特位置的方法,在数据处理量较大时出现系统反应速度变慢等问题,本发明提出一种计算并标识打孔/重复比特位置的方法,该方法建立在DSP指令系统和指令流水线的执行特性的基础上,在DSP处理器中易于实现,并且能省去现有技术中由于计算非打孔/重复比特位置所产生的时间消耗。同时,该方法不占用指令寄存器(简称为IR)过多的指令代码,节约了系统资源。仿真试验检测证明,该方法对3GPP 34.108中规定的各种传输业务组合的不同打孔率都有明显的优化效果。
文档编号H04J3/07GK101079678SQ20071007866
公开日2007年11月28日 申请日期2007年6月29日 优先权日2007年6月29日
发明者黎杰文, 申敏 申请人:重庆重邮信科(集团)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1