基于DSP的伪随机序列的生成方法和装置、存储介质与流程

文档序号:22626165发布日期:2020-10-23 19:34阅读:252来源:国知局
基于DSP的伪随机序列的生成方法和装置、存储介质与流程

本发明涉及通信领域,具体而言,涉及一种基于dsp的伪随机序列的生成方法和装置、存储介质。



背景技术:

伪随机序列被广泛应用在通信系统中,第三代合作伙伴计划(the3rdgenerationpartnershipproject,简称3gpp)标准协议中新空口(newradio,简称nr)和长期演进(longtermevolution,简称lte)都采用gold序列作为伪随机序列。通信系统中伪随机序列在信道估计、信号加扰、参考信号生成、信号解扰、抗干扰等方面有着重要的作用。

在3gpp标准中,伪随机序列生成公式中存在较大状态偏移量,传统的比特型生成方法占用存储空间和执行时间会随着序列长度的增加而显著增加,最终会导致伪随机序列生成存在耗时长的缺点。

因此,针对相关技术中,伪随机序列生成存在耗时长的问题,尚未提出有效的技术方案。



技术实现要素:

本发明实施例提供了一种基于dsp的伪随机序列的生成方法和装置、存储介质,以至少解决相关技术中,伪随机序列生成存在耗时长的技术问题。

根据本发明实施例的一个方面,提供了基于dsp的伪随机序列的生成方法,包括:获取dsp的第一寄存器中存储的第一移位值,其中,上述第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;获取第二m序列x2(n)的初始值,以及获取上述dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值为32比特,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

根据本发明实施例的另一方面,还提供了基于dsp的伪随机序列的生成装置,包括:第一获取单元,用于获取dsp的第一寄存器中存储的第一移位值,其中,上述第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(n1+2),…,x1(nc+31),上述x1(n)的初始值为31比特;第二获取单元,用于获取第二m序列x2(n)的初始值,以及获取上述dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);确定单元,用于在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值为32比特,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);生成单元,用于在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于dsp的伪随机序列的生成方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的基于dsp的伪随机序列的生成方法。

在本发明实施例中,获取在dsp的第一寄存器中预先存储的第一移位值,其中,该第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;获取第二m序列x2(n)的初始值,以及获取在上述dsp的n个寄存器中预先分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);然后,在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值为32比特,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);最后,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。采用上述技术方案,通过直接获取预先存储的第一m序列x1(n)的第一移位值、以及第二m序列x2(n)的n个多项式系数,在生成目标伪随机序列时,避免了对第一m序列x1(n)的初始值进行移位nc次的计算,减少了计算量,以及通过第二m序列x2(n)的n个多项式系数和获取到的x2(n)的初始值确定第二移位值,也能够减少计算量,达到了减少计算量的技术效果,并且进而解决了相关技术中,伪随机序列生成存在耗时长的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的基于dsp的伪随机序列的生成方法的应用环境的示意图;

图2是根据本发明实施例的一种可选的基于dsp的伪随机序列的生成方法的流程示意图;

图3是根据本发明实施例的一种可选的基于dsp的伪随机序列的生成装置的结构示意图;

图4是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

可选地,在本实施例中,上述终端设备可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobileinternetdevices,移动互联网设备)、pad、台式电脑等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。上述只是一种示例,本实施例对此不做任何限定。

可选地,作为一种可选的实施方式,如图2所示,上述基于dsp的伪随机序列的生成方法的流程可以包括步骤:

步骤s202,获取dsp的第一寄存器中存储的第一移位值,其中,上述第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;

可选地,3gpp标准nr中用到的伪随机序列是由31位比特长度的gold序列来定义的,且上述x1(n)的初始值为31比特,因此,可以使用32位的第一寄存器存储上述第一m序列x1(n)的第一移位值。

其中,上述第一移位值是由x1(n)的初始值移位nc次得到的,并且,第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),x1(n)的初始值为31比特。

步骤s204,获取第二m序列x2(n)的初始值,以及获取上述dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

可选地,获取第二m序列x2(n)的初始值,该x2(n)的初始值需要根据不同的应用场景进行初始化,以及获取在dsp的n个寄存器中预先分别存储的x2(n)的n个多项式系数。其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31)。

步骤s206,在上述数字信号处理(digitalsignalproces-sor,简称dsp)中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值为32比特,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

可选地,可以根据x2(n)的初始值和上述x2(n)的n个多项式系数,来确定出第二移位值,其中,上述第二移位值为32比特,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31)。

步骤s208,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

可选地,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

可选地,将上述得到的第一移位值和第二移位值输入至以下公式,来确定上述目标伪随机序列:

c(n)=(x1(n+nc)+x2(n+nc))mod2(1)

x1(n+31)=(x1(n+3)+x1(n))mod2(2)

x2(n+31)=(x2(n+3)+x2(n+2)+x2(n+1)+x2(n))mod2(3)

其中,上述c(n)为上述目标伪随机序列,上述nc为上述第一m序列和上述第二m序列之间的状态偏移量,上述nc=1600,上述n为变量,上述n的取值的最大值用于表示上述目标伪随机序列的序列长度,上述n的取值为正整数。

可选地,上述基于dsp的伪随机序列的生成方法可以但不限于应用于通信系统中的信道估计、信号加扰、参考信号生成、信号解扰、抗干扰等场景中。

通过本实施例,获取在dsp的第一寄存器中预先存储的第一移位值,其中,该第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;获取第二m序列x2(n)的初始值,以及获取在上述dsp的n个寄存器中预先分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);然后,在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值为32比特,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);最后,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。采用上述技术方案,通过直接获取预先存储的第一m序列x1(n)的第一移位值、以及第二m序列x2(n)的n个多项式系数,在生成目标伪随机序列时,避免了对第一m序列x1(n)的初始值进行移位nc次的计算,减少了计算量,以及通过第二m序列x2(n)的n个多项式系数和获取到的x2(n)的初始值确定第二移位值,也能够减少计算量,达到了减少计算量的技术效果,并且进而解决了相关技术中,伪随机序列生成存在耗时长的技术问题。

在一种可选的实施例中,在上述获取dsp的第一寄存器中存储的第一移位值之前,上述方法还包括:在上述第一寄存器中存储上述第一移位值,其中,上述第一寄存器为32位寄存器,上述第一寄存器中的最低位用于存储上述x1(nc),或者,上述第一寄存器中的最低位用于存储上述x1(nc+31)。

可选地,需要说明的是,根据协议标准,基于dsp生成伪随机序列c(n)时,由于序列的每一位都是二进制比特0或者1,在实现过程中可以将每一位比特数据存储为8位无符号整型数据,也就是将每一个比特序列值存储成dsp最小数据类型(1个字节)里面,然后根据协议中的公式设计出比特型算法。这种算法虽然实现简单,但当需要生成伪随机序列码时,会占用大量的存储空间,每个字节用来存储1bit的序列信息,导致7bit进行了浪费。

可选地,本实施例中,上述第一寄存器可以为32bit的寄存器,将第一移位值的每32个比特放到一个32位无符号整形数据中(dsp寄存器类型32bit)。还可以设置上述第一寄存器中的最低位用于存储上述x1(nc),或者,设置上述第一寄存器中的最低位用于存储上述x1(nc+31)。

通过本实施例,通过32位寄存器存储第一移位值,大大降低了数据存储空间。

在一种可选的实施例中,在上述第一寄存器中存储上述第一移位值之前,上述方法还包括:将上述第一m序列x1(n)的初始值移位nc次得到上述第一移位值。

可选地,可以预先根据上述公式(1)和公式(2),将上述第一m序列x1(n)的初始值移位nc次来得到上述第一移位值。

在一种可选的实施例中,在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,包括:根据上述x2(n)的初始值和上述x2(n)的n个多项式系数之间的逻辑关系,确定上述第二移位值。

可选地,首先获取x2(n)的初始值,然后通过查表的方式查询得到dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,最后,根据x2(n)的初始值和和上述x2(n)的n个多项式系数之间复杂的逻辑关系来确定出第二移位值。

需要说明的是,x2(n)的初始值和和上述x2(n)的n个多项式系数之间的逻辑关系,需要通过多次的逻辑运算才能确定,当确定好该逻辑关系之后,能够通过该逻辑关系,以及x2(n)的初始值和上述x2(n)的n个多项式系数直接得到第二移位值,并且,在计算第二移位值时,不需要移位循环nc=1600次。

在一种可选的实施例中,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列,包括:在上述dsp中对上述第一移位值和上述第二移位值进行异或操作,得到上述目标伪随机序列。

可选地,可以根据上述公式(1)、公式(2)、公式(3)在上述dsp中对上述第一移位值和上述第二移位值进行异或操作,得到上述目标伪随机序列。

在一种可选的实施例中,上述获取第二m序列x2(n)的初始值,包括:根据上述目标伪随机序列的使用场景确定上述第二m序列x2(n)的初始值。

可选地,在不同的使用场景下,第二m序列x2(n)的初始值的取值不同,可以根据具体的使用场景来确定第二m序列x2(n)的初始值。

在一种可选的实施例中,上述根据上述目标伪随机序列的使用场景确定上述第二m序列x2(n)的初始值,包括:在上述使用场景为下行物理广播信道pbch的情况下,通过以下公式确定上述第二m序列x2(n)的初始值:其中,上述cinit为上述第二m序列x2(n)的初始值,上述为小区id;或者在上述使用场景为下行物理控制信道pdcch的情况下,通过以下公式确定上述第二m序列x2(n)的初始值:cinit=(nrnti·216+nid)mod231

可选地,第二m序列x2(n)则需要根据不同的应用场景进行初始化,例如在nr协议中下行物理广播信道(physicalbroadcastchannelchannel,简称pbch)中使用(小区id)来初始化,而下行物理控制信道(physicaldownlinkcontrolchannel,简称pdcch)中则用cinit=(nrnti·216+nid)mod231初始化。

需要说明的是,伪随机序列使用场景非常多,几乎每个信道都有使用到,上述两种确定x2(n)的初始值的方式,仅为一种示例,本实施在此不作任何限定。

下面结合一可选示例对基于dsp的伪随机序列的生成方法的流程进行说明,该方法可以包括以下步骤:

需要说明的是,3gpp标准nr中用到的伪随机序列是由31位比特长度的gold序列来定义的,该gold序列是通过两个m序列移位后再做模二相加得到,具体公式如下:

c(n)=(x1(n+nc)+x2(n+nc))mod2公式(1)

x1(n+31)=(x1(n+3)+x1(n))mod2公式(2)

x2(n+31)=(x2(n+3)+x2(n+2)+x2(n+1)+x2(n))mod2公式(3)

其中,nc=1600,是为保证不同序列之间的非相关性而特意增加的状态偏移量。c(n)序列的长度为mpn,标准中,序列x1(n)的初始值为:x1(0)=1,x1(n)=0,n=1,2,……,30,而第二个序列x2(n)则需要根据不同的应用场景进行初始化,例如在nr协议中下行物理广播信道pbch中使用(小区id)来初始化,而下行物理控制信道pdcch中则用cinit=(nrnti·216+nid)mod231初始化。

需要说明的是,传统的实现方法:

根据协议标准,基于dsp生成伪随机序列c(n)时,由于序列的每一位都是二进制比特0或者1,在实现过程中可以将每一位比特数据存储为8位无符号整型数据,也就是将每一个比特序列值存储成dsp最小数据类型(1个字节)里面,然后根据协议中的公式设计出比特型算法。这种算法虽然实现简单,但当需要生成伪随机序列码时,会占用大量的存储空间,每个字节用来存储1bit的序列信息,导致7bit进行了浪费。

由上面的公式(1)、(2)、(3)可以看出,伪随机序列c(n)由于nc=1600的存在使得两个m序列x1(n)和序列x2(n)在传统算法中各自都要首先迭代nc=1600次。在nr通信系统中,gold序列作为伪随机序列运用在多种场合,并且有些应用场合系统所需要生成的伪随机序列非常短。例如,在nr系统的某些场景下需要生成伪随机序列的长度为mpn=32bit时,利用常规方法生成伪随机序列,系统首先需要移位迭代nc=1600次,然后才能生成的序列长度的32bit信息。即利用常规方法为了生成32bit的伪随机序列时则需要循环移位1632次,导致序列生成时间较长并且浪费了大量系统资源,不利于数据实时性处理。

上述传统实现方法存在以下两个问题:

1、通过dsp最小存储单元(字节)存储bit,会造成存储空间浪费,增大了数据存储空间。

2、生成伪随机序列时需要移位迭代nc=1600次之后才会生成实际的gold序列,会导致系统运算量增加,浪费数据处理消耗时间。

针对nr用到的伪随机序列的特点,提出了一种基于dsp平台的伪随机序列生成方法,为了解决上述的问题,提出了该专利方法将gold序列的每32个比特放到一个32位无符号整形数据中(dsp寄存器类型32bit)。通过提高每次运算处理的数据量,可以大大降低数据存储空间。同时该专利可以直接得到nc=1600之后的m序列,节省了循环迭代,可以有效改善数据处理速率。

具体实现过程如下:

步骤一,确定序列x1(n)的初始值。

标准中,序列x1(n)的初始值为:x1(0)=1,x1(n)=0,n=1,2,……,30,在dsp处理器中按照32位寄存器来存储每个bit信息。定义无符号整形变量x1_init作为寄存器用来存储x1(n)的初始值,共31个比特信息。

如果定义dsp的32bit寄存器中最低bit位为x1(0),以此类推可以得到x1(n)的初始值为:x1_init=0x00000001。

步骤二,确定序列x1(n)迭代nc=1600次后的值。

标准中,序列x1(n)的计算方法为:

x1(n+31)=(x1(n+3)+x1(n))mod2

由于序列x1(n)的初始值是已知的,那么通过迭代循环的方式可以计算出x1(nc),x1(nc+1),x1(n1+2),…,x1(nc+31)的比特信息值,其中nc=1600。

同样定义无符号整形变量x1作为寄存器用来存储x1(1600)~x1(1600+31)的值,共32个比特信息。通过观察可以知道x1的值与x1_init和nc=1600有关,由于这两个值在标准中都是固定值,因此x1值也就固定不变,所以我们可以在dsp实现过程中将该值提前计算好,存储成表格的形式,每次计算伪随机序列时,直接查表调取使用即可,节省了序列x1(n)的移位循环nc=1600次,减少了耗时。而且该值只需要一个32位的寄存器即可存储,并不会造成内存的浪费。

步骤三,确定序列x2(n)的初始值。

标准中,序列x2(n)的初始值根据不同场景会不一样,与cinit值有关。但是初始值总共31bit,同样在dsp处理器中定义无符号整形变量x2_init作为寄存器用来存储x2(n)的初始值。

如果定义dsp的32bit寄存器中最低bit位为x2(0),以此类推可以得到x2(n)的初始值为:x2_init=cinit。

步骤四,确定序列x2(n)迭代nc=1600次后的值。

标准中,序列x2(n)的计算方法为:

x2(n+31)=(x2(n+3)+x2(n+2)+x2(n+1)+x2(n))mod2

其中,序列x2(n)的初始值在不同场景下是不同的,定义为x2(0),x2(1),……,x2(30)。

异或关系,a,b相同时结果为0,a,b不同时结果为1。所以序列x2(n)可以表示为:

以x2(31)为例:

其中,系数kn可以表示为k0=k1=k2=k3=1,k4=k5=…k29=k30=0。将序列x2(n)的初始值看作是多项式,则系数kn就是多项式的系数。

定义dsp处理器中无符号整形寄存器kcoef用来存储系数kn,因此kcoef=0x0000000f,所以就可以通过序列x2(n)的初始值cinit和多项式系数kcoef直接计算出序列值。

temp=(kcoef&cinit)&0x7fffffff,然后将寄存器temp的所有bit进行异或,或者是找出寄存器temp的32bit二进制数中1的个数,如果为偶数结果为0,如果为奇数结果为1,这样就得到了x2(31)的值。

以此类推,可以得到:

x2(32)的值,对应的系数寄存器kcoef=0x0000001e,

x2(33)的值,对应的系数寄存器kcoef=0x0000003c,

x2(1600)的值,对应的系数寄存器kcoef=0x0099110e,

x2(1601)的值,对应的系数寄存器kcoef=0x0132221c,

x2(1631)的值,对应的系数寄存器kcoef=0x0707ff5a。

定义无符号整形变量x2作为寄存器用来存储x2(1600)~x2(1600+31)的值,共32个比特信息。为了得到x2的值,可以将计算x2(1600)~x2(1600+31)值的系数存储成表格形式,只需要查表简单计算即可得到对应值。

伪代码如下:

在实现过程中省略了迭代循环nc=1600次,减小了耗时。

步骤五,确定伪随机序列c(n)的值。

标准中,序列c(n)的计算方法为:

c(n)=(x1(n+nc)+x2(n+nc))mod2

在前几步骤中已经知道了两个m序列x1(n)和x2(n)的nc=1600偏移后的值,计算c(n)序列时直接可以根据长度进行计算。这里同样采用32bit寄存器的紧凑排列方式存储bit信息值,每次可以直接计算得到32bit信息。

直接将查表方式得到的序列x1(n)和x2(n)的偏移值进行异或,就可以得到伪随机序列c(n)的前32bit序列值。

后续的bit信息就需要根据公式先计算序列x1(n),再计算序列x2(n),最后两者异或的方式得到。我们发现序列x1(n)和序列x2(n)每次移位异或的方式只能得到28bit信息,剩余4bit信息需要用到当前的计算值,这里采用每次计算16bit然后再拼接的方式得到32bit的完整信息。

伪代码如下:

fori=0:length

//计算x1

seq=x1;

temp0=seq^(seq<<3);

seq=(seq<<16)|(temp>>16);

temp1=seq^(seq<<3);

x1=(temp0&0xffff0000)|((temp1>>16)&0x0000ffff);

//计算x2

seq=x2;

temp0=seq^(seq<<1)^(seq<<2)^(seq<<3);

seq=(seq<<16)|(temp>>16);

temp1=seq^(seq<<1)^(seq<<2)^(seq<<3);

x2=(temp0&0xffff0000)|((temp1>>16)&0x0000ffff);

//计算c

c=x1^x2;

end

需要说明的是,上述x1的nc=1600对应表和x2的nc=1600对应表具体如下:

通过本实施例,通过采用直接查询得到x1序列的nc=1600对应值,根据初始值cinit和查询表的多项式系数,计算得到x2序列的nc=1600对应值,以及使用紧凑拼接的方法计算伪随机序列,能够提高每次运算处理的数据量,可以大大降低数据存储空间。同时,采用上述技术方案可以直接得到nc=1600之后的m序列,节省了循环迭代,可以有效改善数据处理速率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的又一方面,还提供了基于dsp的伪随机序列的生成装置,如图3所示,该装置包括:

第一获取单元302,用于获取dsp的第一寄存器中存储的第一移位值,其中,上述第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;

第二获取单元304,用于获取第二m序列x2(n)的初始值,以及获取上述dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

确定单元306,用于在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值为32比特,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31;

生成单元308,用于在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

可选地,第一获取单元602可以用于执行步骤s202,确定单元604可以用于执行步骤s204,第二确定单元606可以用于执行步骤s206,第一处理单元606可以用于执行步骤s206。

通过本实施例,获取在dsp的第一寄存器中预先存储的第一移位值,其中,该第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;获取第二m序列x2(n)的初始值,以及获取在上述dsp的n个寄存器中预先分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);然后,在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值为32比特,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);最后,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。采用上述技术方案,通过直接获取预先存储的第一m序列x1(n)的第一移位值、以及第二m序列x2(n)的n个多项式系数,在生成目标伪随机序列时,避免了对第一m序列x1(n)的初始值进行移位nc次的计算,减少了计算量,以及通过第二m序列x2(n)的n个多项式系数和获取到的x2(n)的初始值确定第二移位值,也能够减少计算量,达到了减少计算量的技术效果,并且进而解决了相关技术中,伪随机序列生成存在耗时长的技术问题。

作为一种可选的技术方案,上述装置还包括:第三获取单元,用于在上述第一寄存器中存储上述第一移位值,其中,上述第一寄存器为32位寄存器,上述第一寄存器中的最低位用于存储上述x1(nc),或者,上述第一寄存器中的最低位用于存储上述x1(nc+31)。

作为一种可选的技术方案,上述装置还包括:第一处理单元,用于将上述第一m序列x1(n)的初始值移位nc次得到上述第一移位值。

作为一种可选的技术方案,上述装置还包括:存储单元,用于在上述n个寄存器中分别存储上述n个多项式系数。

作为一种可选的技术方案,上述确定单元,还用于根据上述x2(n)的初始值上述x2(n)的n个多项式系数之间的逻辑关系,确定上述第二移位值。

作为一种可选的技术方案,上述生成单元,还用于在上述dsp中对上述第一移位值和上述第二移位值进行异或操作,得到上述目标伪随机序列。

作为一种可选的技术方案,上述第二获取单元,还用于根据上述目标伪随机序列的使用场景确定上述第二m序列x2(n)的初始值。

作为一种可选的技术方案,上述第二获取单元,还用于在上述使用场景为下行物理广播信道pbch的情况下,通过以下公式确定上述第二m序列x2(n)的初始值:其中,上述cinit为上述第二m序列x2(n)的初始值,上述为小区id;或者在上述使用场景为下行物理控制信道pdcch的情况下,通过以下公式确定上述第二m序列x2(n)的初始值:cinit=(nrnti·216+nid)mod231

根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取dsp的第一寄存器中存储的第一移位值,其中,上述第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;

s2,获取第二m序列x2(n)的初始值,以及获取上述dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

s3,在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值为32比特,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

s4,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取器)、磁盘或光盘等。

根据本发明实施例的又一个方面,还提供了一种用于实施上述基于dsp的伪随机序列的生成方法的电子装置,如图4所示,该电子装置包括存储器402和处理器404,该存储器402中存储有计算机程序,该处理器404被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取dsp的第一寄存器中存储的第一移位值,其中,上述第一移位值是由第一m序列x1(n)的初始值移位nc次得到的移位值,上述第一移位值为32比特,上述第一移位值用于表示x1(nc),x1(nc+1),x1(nc+2),…,x1(nc+31),上述x1(n)的初始值为31比特;

s2,获取第二m序列x2(n)的初始值,以及获取上述dsp的n个寄存器中分别存储的上述x2(n)的n个多项式系数,其中,上述n为32,上述x2(n)的初始值为31比特,每个上述多项式系数为32比特,上述n个多项式系数分别用于确定x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

s3,在上述dsp中根据上述x2(n)的初始值和上述x2(n)的n个多项式系数,确定第二移位值,其中,上述第二移位值是由上述x2(n)的初始值移位nc次得到的移位值,上述第二移位值为32比特,上述第二移位值用于表示x2(nc),x2(nc+1),x2(nc+2),…,x2(nc+31);

s4,在上述dsp中根据上述第一移位值和上述第二移位值,生成目标伪随机序列。

可选地,本领域普通技术人员可以理解,图4所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图4其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图4中所示更多或者更少的组件(如网络接口等),或者具有与图4所示不同的配置。

其中,存储器402可用于存储软件程序以及模块,如本发明实施例中的基于dsp的伪随机序列的生成方法和装置对应的程序指令/模块,处理器404通过运行存储在存储器402内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于dsp的伪随机序列的生成方法。存储器402可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器402可进一步包括相对于处理器404远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器402具体可以但不限于用于存储目标对象的目标高度等信息。作为一种示例,如图4所示,上述存储器402中可以但不限于包括上述基于dsp的伪随机序列的生成装置中的第一获取单元302、第二获取单元304、确定单元306、生成单元306。此外,还可以包括但不限于上述基于dsp的伪随机序列的生成装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置406包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置406为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:显示器408和连接总线410,用于连接上述电子装置中的各个模块部件。

在其他实施例中,上述终端或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peertopeer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1