一种生成GOLD序列的方法及装置
技术领域
本发明涉及到一种移动通信***技术,特别涉及到一种第三代移动通信***中生成GOLD加扰序列的方法及装置。
背景技术
在移动通信***中,通常会使用伪随机序列(简称,PN序列)来将信源产生的二进制数字消息先加扰,再进行传输,这样处理的目的主要是:
1、随机性实现通信信道的加密;
将信源产生的二进制数字消息和一个周期很长的伪随机序列模2相加,这样就可以将原消息变成不可理解的另一序列。在接收端只有使用同一伪随机序列才能恢复原发送内容。
2、扩展频谱并根据正交性实现码分多址通信;
根据香农信道容量公式,我们可以利用码扩展通信信道的带宽,已达到理想化的信道容量。如果所使用的码资源之间互相关系数很小(近似正交),则可实现使用不同正交码的用户之间不互相干扰,这样在同一频段上就可能实现同时发送许多个信号,实现码分多址通信。
3、数据序列扰乱与解扰
数字通信***中,如原信息中连续出现1或者0的游程(连续出现0或者1)过大,则将影响位同步的建立与保持,同时该种情况下的抗干扰性较差。易形成串扰。这时我们可以打乱原信息序列而形成类似白噪声统计特性的序列进行传输。
其中,所述伪随机序列具有类似于随机序列的基本特性,是一种貌似随机但实际上是有规律的周期性二进制序列。在移动通信***中,最常用的PN序列是最大长度线性码序列(简称,m序列),是由线性反馈移位器产生的,其特点是具有周期性和伪随机性。
GOLD序列是一种基于m序列的码序列,常用于移动通信***的加扰过程,GOLD序列具有较优良的自相关和互相关特性,产生的序列数多。Gold序列的自相关性不如m序列,互相关性比m序列要好。
移动通信***中的加扰方法为,对于每一个码字,比特流
(其中
是在每一个子帧上的物理信道传输的码字q的比特数量)与二进制伪随机序列c
q(n)进行加扰,按下式生成加扰后的比特
其中,
在LTE***中,用于加扰过程的长度为MPN伪随机序列GOLD序列c(n)计算方式如下:
c(n)=(x1(n+NC)+x2(n+NC))mod2
x1(n+31)=(x1(n+3)+x1(n))mod2
x2(n+31)=(x2(n+3)+x2(n+2)+x2(n+1)+x2(n))mod2
其中,NC为一个根据需求设定的起始值,x1和x2为两种m序列,x1(n)为x1序列的第n位,x2(n)为x2序列的第n位,n=0,1,2,……,MPN-1。
x
1序列的初值为x
1(0)=1,x
1(n)=0,n=1,2,…,30,x
2序列的初值可通过
计算获得,n-0,1,2……,30,其中,c
init为计算x
2序列初值的参数,该参数的取值取决于该伪随机序列的应用。
现有技术生成GOLD序列的方法如图1所示:
1、首先将x1序列及x2序列的31位初始值,分别顺序保存到两个31级反馈移位寄存器Register1[30∶0]和Register2[30∶0]中,Register1[n]=x1(n),Register2[n]=x2(n),n=0,1,2……,30;
2、判断移位次数i是否大于等于NC,如果是,将Register1[0]和Register2[0]中的值进行异或得到c(n)序列的第i-NC位;
3、将Register1[0]中的值与Register1[3]中的值进行异或处理;
4、将Register1中的各比特右移一位,将步骤3的处理结果保存到Register1[30];
5、将Register2[0]与Register2[1]、Register2[2]、Register2[3]中的值进行异或处理;
6、将Register2中的各比特右移一位,将步骤5的处理结果保存到Register2[30];
8、重复执行步骤2至7,直到移位次数i=MPN-1+NC。
现有技术生成GOLD序列的方法每次移位仅仅计算一个c(n)序列的比特位,这样,一个时钟周期最多只能生成一个c(n)序列的比特位,而要生成整个c(n)序列至少需要至少MPN-1+NC个时钟周期,生成整个序列所需时间开销过大。
发明内容
有鉴于此,本发明提供了一种生成GOLD序列的方法及装置,以解决现有技术存在的序列生成时间开销过大的问题。
本发明的技术方案是:
一种生成GOLD序列的方法,包括,
步骤1、使用两个31级反馈移位寄存器分别保存x1序列和x2序列的31个初始比特值;
步骤2、当已获得的x1序列和x2序列长度大于或等于NC时,将移位寄存器中保存的位数不低于NC的x1序列与相同位的x2序列比特并行异或生成相应的c(n);
步骤3、利用反馈移位寄存器中的31个x1序列比特并行计算得到x1序列的后续28个比特,利用反馈移位寄存器中的31个x2序列比特并行计算得到x2序列的后续28个比特;
步骤4、将已获得的x1序列及x2序列的高31位分别顺序存放到相应反馈移位寄存器中;
重复执行步骤2~4,直到生成MPN个c(n)序列比特位。
其中,所述c(n)序列为所需计算的GOLD序列,x1序列和x2序列为计算GOLD序列所需的两个最大长度线性码序列,NC为一个根据需求设定的起始值,MPN为所需计算的c(n)序列的长度。
所述步骤2进一步包括:
如果反馈移位寄存器中保存的x1序列和x2序列中位数高于NC的比特个数小于28,将反馈移位寄存器中保存的x1序列和x2序列中位数高于NC的比特分别进行缓存;
如果反馈移位寄存器中保存的x1序列和x2序列中位数高于NC的比特个数大于或等于28,将反馈移位寄存器高28位所保存的x1序列和x2序列分别与缓存的x1序列和x2序列进行拼接,将拼接得到的x1序列的低28位与x2序列的低28位进行并行异或计算获得c(n)序列相应位,拼接后的x1序列和x2序列剩余比特分别进行缓存。
所述步骤2进一步包括:
如果反馈移位寄存器中保存的x1序列和x2序列中位数高于NC的比特个数小于28,将反馈移位寄存器中保存的x1序列和x2序列中位数高于NC的比特进行并行异或计算获得c(n)序列相应位;
否则将反馈移位寄存器高28位所保存的x1序列和x2序列进行并行异或计算获得c(n)序列相应位。
本发明同时还提供了一种生成GOLD序列的装置,包括:
两个31级反馈移位寄存器Register1和Register2;x1序列计算模块,x2序列计算模块,c(n)序列计算模块;缓存器1和缓存器2;
其中,所述x1序列计算模块,x2序列计算模块,c(n)序列计算模块分别包括28个异或计算单元;
所述Register1用于保存x1序列,分别与所述x1序列计算模块和所述缓存器1相连接,发送Register1中保存的x1序列给所述x1序列计算模块和所述缓存器1;
所述Register2用于保存x2序列,分别与所述x2序列计算模块和所述缓存器2相连接,发送Register2中保存的x2序列给所述x2序列计算模块和所述缓存器2;
所述x1序列计算模块对Register1发送的数据进行28路并行异或计算并将计算结果反馈到所述Register1;
所述x2序列计算模块对Register2发送的数据进行28路并行异或计算并将计算结果反馈到所述Register2;
所述缓存器1和所述缓存器2分别与所述c(n)序列计算模块连接,发送x1序列和x2序列到所述c(n)序列计算模块;
所述c(n)序列计算模块将x1序列与x2序列的对应比特位进行并行异或得到相应的c(n)序列比特位。
本发明的GOLD序列计算方法及装置采用了28路并行计算x1序列、x2序列及c(n)序列,一次计算可生成28位GOLD序列比特,减小了计算GOLD序列的时间开销,提高了GOLD序列的计算速度。
附图说明
附图1是现有技术生成GOLD序列方法示意图
附图2是本发明生成x1序列方法示意图
附图3是本发明生成x2序列方法示意图
附图4是本发明生成c(n)序列方法示意图
附图5是本发明具体实施例1生成GOLD序列的方法流程图
附图6是本发明具体实施例2生成GOLD序列的方法流程图
附图7是本发明生成GOLD序列的装置结构图
图中,201、301、401为异或计算单元。
具体实施方式
为清楚说明本发明的技术方案,下面给出优选的实施例并结合附图详细说明。
具体实施例1
本实施例生成GOLD序列的方法如图5所示:
1、将x1序列的31位初始值x1(0)~x1(30)顺序保存到31级反馈移位寄存器Register1的Register1[0∶30]中,将x2序列的31比特初始值x2(0)~x2(30)顺序保存到31级反馈移位寄存器Register2的Register2[0∶30]中;
2、比较k与
的大小,如果
执行步骤3,如果
执行步骤4,如果
执行步骤5,其中k为步骤6执行次数,
为向下取整操作;
3、并行将Register1[n]与Register2[n]进行异或,获得c(n)序列的低30-(NC-28×k)比特数据,执行步骤5,其中,n=NC-28×k,……,30;
4、并行将Register1[n]与Register2[n]进行异或,获得c(n)序列的后续28比特数据;其中,n=3,4,5,……,30;
生成c(n)序列的方法如图4所示;
5、判断已获得的c(n)序列的比特数是否大于等于MPN,如果是执行步骤8,否则执行步骤6;
6、并行将Register1[i]与Register1[i+3]寄存器中的值进行异或获得x1序列后续28比特数据;并行将Register2[i]与Register2[i+1]、Register2[i+2]、Register2[i+3]中的值进行异或,获得x2序列的后续28比特数据;其中,i=0,1,2……,27;
7、将Register1中的数据顺序右移28位,将本次异或获得的28比特x1序列顺序存放到Register1[3∶30]中;将Register2中的数据顺序右移28位,将本次异或获得的28比特x2序列顺序存放到Register2[3∶30]中;执行步骤2;
步骤6~7中生成x1序列的方法如图2所示,生成x2序列的方法如图3所示,本实施例中,对x1序列和x2序列各使用了28个异或计算单元来实现一次并行生成28个x1序列后续比特和28个x2序列后续比特;
8、输出获得的c(n)序列的0~MPN-1位,完成本次生成GOLD序列过程。
具体实施例2
本实施例的生成GOLD序列的方法流程如图6所示:
步骤1与具体实施例1相同;
2、比较k与
的大小,如果
执行步骤3,如果
执行步骤4,如果
执行步骤7,其中k为步骤8执行次数,
为向下取整操作;
3、将Register1[n]中的数据保存到缓存器1中,将Register2[n]保存到缓存器2中,执行步骤7,其中,n=NC-28×k,……,30;
4、将Register1[n]中的数据与缓存器1中的数据进行拼接,输出拼接后的数据的低28比特,其中,n=3,……,30;
其中,所述拼接方法为将缓存器中保存的数据作为拼接数据的低位,将Register1[n]中的数据作为拼接数据的高位。
5、将Register2[n]中的数据与缓存器2中的数据进行拼接,输出拼接后的数据的低28比特,其中,n=3,……,30;
其中,所述拼接方法为将缓存器中保存的数据作为拼接数据的低位,将Register1[n]中的数据作为拼接数据的高位。
6、并行将步骤4输出的各比特数据与步骤5输出的相同比特位数据进行异或,计算出相应的28比特c(n)序列;
生成c(n)序列的方法如图4所示;
7、判断已获得的c(n)序列的比特数是否大于等于MPN,如果是执行步骤10,否则执行步骤8;
8、与具体实施例1步骤6相同;
9、与具体实施例1步骤7相同;
步骤8~9中生成x1序列的方法如图2所示,生成x2序列的方法如图3所示,本实施例中,对x1序列和x2序列各使用了28个异或计算单元来实现一次并行生成28个x1序列后续比特和28个x2序列后续比特;
10、输出获得的c(n)序列的0~MPN-1位,完成本次生成GOLD序列过程。
具体实施例3
本实施例是本发明生成GOLD序列装置的一种优选实施方式,其装置结构如图7所示,包括:
两个31级反馈移位寄存器Register1和Register2;x1序列计算模块,x2序列计算模块,c(n)序列计算模块;缓存器1和缓存器2;
其中,所述x1序列计算模块,x2序列计算模块,c(n)序列计算模块分别包括28个异或计算单元;
所述Register1用于保存x1序列,分别与所述x1序列计算模块和所述缓存器1相连接,发送Register1中保存的x1序列给所述x1序列计算模块和所述缓存器1;
所述Register2用于保存x2序列,分别与所述x2序列计算模块和所述缓存器2相连接,发送Register2中保存的x2序列给所述x2序列计算模块和所述缓存器2;
所述x1序列计算模块对Register1发送的数据进行28路并行异或计算并将计算结果反馈到所述Register1;
所述x2序列计算模块对Register2发送的数据进行28路并行异或计算并将计算结果反馈到所述Register2;
所述缓存器1和所述缓存器2分别与所述c(n)序列计算模块连接,发送x1序列和x2序列到所述c(n)序列计算模块;
所述c(n)序列计算模块将所述缓存器1和所述缓存器2发送过来的x1序列各比特与x2序列的相同比特位进行并行异或得到相应的c(n)序列比特位。
以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。