伪随机二进制序列码生成方法以及装置

文档序号:1184325 发布日期:2020-09-22 浏览:11次 >En<

阅读说明:本技术 伪随机二进制序列码生成方法以及装置 (Method and device for generating pseudo-random binary sequence code ) 是由 周鹏 周锋 曾峰 于 2020-06-12 设计创作,主要内容包括:本申请提供了一种伪随机二进制序列码生成方法以及装置,其中,该方法包括:将N组随机数分别按照设定规则进行处理,以得到N组处理随机数组,其中,N为正整数;从N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数;根据N组抽取随机数生成伪随机二进制序列码,能够提高生成伪随机二进制码的速度,以及伪随机二进制码的随机性。(The application provides a method and a device for generating a pseudo-random binary sequence code, wherein the method comprises the following steps: respectively processing the N groups of random numbers according to a set rule to obtain N groups of processing random numbers, wherein N is a positive integer; extracting a specified number of numerical values from each of the N groups of processing random arrays to obtain extracted random numbers of which the N groups of numerical values are the specified number; the pseudo-random binary sequence code is generated according to the N groups of extracted random numbers, so that the speed of generating the pseudo-random binary code and the randomness of the pseudo-random binary code can be improved.)

伪随机二进制序列码生成方法以及装置

技术领域

本发明涉及计算机技术领域,具体而言,涉及一种伪随机二进制序列码生成方法以及装置。

背景技术

在通信系统领域中,对高速信号链路进行眼图测试、误码率或抖动容限测试时,一般是利用伪随机二进制码流(Pseudo-Random Binary Sequence,简称:PRBS)来模拟真实的线网码流环境。因为在线网中,所有的数据都是随机出现的,没有任何规律可言,而PRBS码流在一定程度上具有这种“随机数据”特性,其二进制的“0”和“1”随机出现,其频谱特征与白噪声非常接近。但是,目前的PRBS码流的形成方式具有一定的局限性。

发明内容

本发明的目的在于提供一种伪随机二进制序列码生成方法以及装置,能够提高生成伪随机二进制码的速度,以及伪随机二进制码的随机性。

第一方面,本发明实施例提供一种伪随机二进制序列码生成方法,包括:

将N组随机数分别按照设定规则进行处理,以得到N组处理随机数组,其中,N为正整数;

从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数;

根据N组所述抽取随机数生成伪随机二进制序列码。

在可选的实施方式中,所述N组处理随机数组包括目标处理随机数组,所述目标处理随机数组包括M轮随机数组;所述从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数,包括:

从所述目标处理随机数组中的M轮随机数组中,指定轮次的随机数组中抽取指定位次的数值,以得到所述目标处理随机数组中的指定数量的数值,其中,所述指定轮次的轮次项数为第一数量,指定位次的位次项数为第二数量;所述第一数量与所述第二数量的乘积等于所述指定数量;所述目标处理随机数组为所述N组处理随机数组中的任意一组处理随机数组;M为大于一的正整数。

本申请实施例中的伪随机二进制序列码生成方法,通过增加在每组处理随机数组抽取数值的位置以及轮次的限定,从而可以使得到抽取随机数能够的速度快速。另外,在指定位置以及指定轮次抽取随机数,可以保留抽取的随机数的随机性。

在可选的实施方式中,所述将N组随机数分别按照设定规则进行处理,以得到N组处理随机数组,包括:

通过N条反馈寄存器链分别对N组随机数进行处理,以得到N组处理随机数组。

在可选的实施方式中,在所述通过N条反馈寄存器链分别对N组随机数进行处理,以得到N组处理随机数组之前,所述方法还包括:

通过N个种子寄存器分别向所述N条反馈寄存器链提供随机数。

本申请实施例中的伪随机二进制序列码生成方法,通过寄存器链以及种子寄存器实现随机数的生成以及产生,一寄存器存储一数据,从而可以更方便获得在产生随机数过程中的数值。

在可选的实施方式中,所述通过N条反馈寄存器链分别对N组随机数进行处理,以得到N组处理随机数组,包括:

通过目标反馈寄存器链对目标随机数,进行M轮迭代运算,以得到目标反馈寄存器链的M轮随机数组,其中,M为一设定的正整数,所述目标反馈寄存器链为N条反馈寄存器链中的任意一条反馈寄存器链,所述目标随机数为输入所述目标反馈寄存器链的一随机数,其中,每一轮迭代运算包括一步或多步迭代运算。

本申请实施例中的伪随机二进制序列码生成方法,通过多轮迭代运算从而可以增强数据的随机性,从而可以使从随机数组抽取的抽取随机数的随机特性更好。进一步地,每一轮迭代运算可以是一步或者多不迭代运算,可适应性地调整随机数组的随机次数。

在可选的实施方式中,每一步迭代运算为:

将所述目标反馈寄存器链中的第i位的寄存器中的数值移位至第i+1位的寄存器中,其中,i为小于I的正整数,I为所述目标反馈寄存器链中的寄存器数量;

将所述目标反馈寄存器链中的第I位寄存器中的第一数值,与指定位置的寄存器中的第二数值进行异或运算,得到一目标数值;

将所述目标数值存入所述目标反馈寄存器链中的第一位寄存器中。

本申请实施例中的伪随机二进制序列码生成方法,通过上述的移位运算,可以增加寄存器中的数值的随机性。

在可选的实施方式中,所述从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数,包括:

每当所述目标反馈寄存器链迭代至指定轮次时,从所述目标反馈寄存器链的指定位次的寄存器取出数值,直到所述目标反馈寄存器链进行M轮迭代后,从所述目标反馈寄存器链中取出指定数量的数值。

本申请实施例中的伪随机二进制序列码生成方法,通过在每迭代至指定轮次时,就从寄存器中取出数值,从而可以减少数据存储需求,也***提高寄存器的利用率。

在可选的实施方式中,所述根据N组所述抽取随机数生成伪随机二进制序列码,包括:

根据预设零一比值,将N组所述抽取随机数中的部分数值使用零或一替换,以得到伪随机二进制序列码。

本申请实施例中的伪随机二进制序列码生成方法,通过预先设置的零一比值,从而可以根据预设的零一比值,调整输出的伪随机二进制序列码中的零一比重,从而可以使得到伪随机二进制序列码满足对高速信号链路的测试需求。

在可选的实施方式中,所述根据预设零一比值,将N组所述抽取随机数中的部分数值使用零或一替换,以得到伪随机二进制序列码,包括:

当预设零一比值大于二分之一时,根据预设零一比值,将N组所述抽取随机数中的部分数值使用零替换,以得到伪随机二进制序列码;

当预设零一比值小于二分之一时,根据预设零一比值,将N组所述抽取随机数中的部分数值使用一替换,以得到伪随机二进制序列码。

本申请实施例中的伪随机二进制序列码生成方法,通过使用零一替换抽取随机数中的部分数值,以实现伪随机二进制序列码中的零一比重的设定。从而可以更方便快速地得到的需要的伪随机二进制序列码中的零一比重。

在可选的实施方式中,所述根据预设零一比值,将N组所述抽取随机数中的部分数值使用零或一替换,以得到伪随机二进制序列码,包括:

根据预设零一比值,将N组所述抽取随机数中的连续的部分数值使用零或一替换,以得到伪随机二进制序列码。

本申请实施例中的伪随机二进制序列码生成方法,将连续的部分数值使用零或一替换,从而可以降低打破抽取随机数中的零一随机的概率,从而使得到的伪随机二进制序列码的随机特性更好。

第二方面,本发明实施例提供一种伪随机二进制序列码生成装置,包括:

处理模块,用于将N组随机数分别按照设定规则进行处理,以得到N组处理随机数组,其中,N为正整数;

抽取模块,用于从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数;

生成模块,用于根据N组所述抽取随机数生成伪随机二进制序列码。

在可选的实施方式中,所述N组处理随机数组包括目标处理随机数组,所述目标处理随机数组包括M轮随机数组;抽取模块,用于:

从所述目标处理随机数组中的M轮随机数组中,指定轮次的随机数组中抽取指定位次的数值,以得到所述目标处理随机数组中的指定数量的数值,其中,指定轮次的轮次项数为第一数量,指定位次的位次项数为第二数量;所述第一数量与所述第二数量的乘积等于所述指定数量;所述目标处理随机数组为所述N组处理随机数组中的任意一组处理随机数组;M为大于一的正整数。

第三方面,本发明实施例提供一种伪随机二进制序列码生成系统,包括:

N条反馈寄存器链,用于对初始随机数进行处理,以得到N组处理随机数组,其中,N为正整数;

分别与所述N条反馈寄存器链连接的N个后处理模块,用于从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数;

与所述N个后处理模块连接的序列码生成模块,用于根据N组所述抽取随机数生成伪随机二进制序列码。

在可选的实施方式中,还包括:

与N条反馈寄存器链连接的反馈轮设置寄存器,用于设置所述N条反馈寄存器链的每一轮迭代运算的移动步数。

本申请实施例中的伪随机二进制序列码生成系统,通过设置反馈轮设置寄存器,以方便设置迭代运算轮数。

在可选的实施方式中,还包括:

与所述N个后处理模块连接的阈值设置寄存器,用于设置任一轮迭代运算中在其中一条反馈寄存器链中的取值数量。

本申请实施例中的伪随机二进制序列码生成系统,通过设置阈值设置寄存器,能够更方便地为输出的伪随机二进制序列码设置零一比重。

在可选的实施方式中,还包括:

与所述序列码生成模块连接的零一比值设置寄存器,用于设置输出的伪随机二进制序列码的零一比值。

本申请实施例中的伪随机二进制序列码生成系统,通过设置阈值设置寄存器、零一比值设置寄存器,能够更方便地实现取值过程中的阈值的设定。也能够更方便地为输出的伪随机二进制序列码设置零一比重。

在可选的实施方式中,还包括:

分别与所述N条反馈寄存器链连接的N个种子寄存器,用于向N个种子寄存器分别输入随机数。

第四方面,本发明实施例提供一种电子设备,前述实施方式任一所述的伪随机二进制序列码生成系统。

第五方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如前述实施方式任一所述的方法的步骤。

本申请实施例提供的伪随机二进制序列码生成方法、装置及伪随机二进制序列码生成系统、电子设备及计算机可读存储介质,有益效果包括是:通过从多组随机数组中抽取随机数,再由抽取的随机数生成伪随机二进制序列码,从而可以组合形成更多不同长度的二进制序列码,以适应不同的应用需求。进一步地,由多组抽取随机数生成伪随机二进制序列码,可以使生成的二进制序列码的随机性更好。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的伪随机二进制序列码生成系统的方框示意图。

图2为本申请实施例提供的伪随机二进制序列码生成系统中的反馈寄存器链的方框示意图。

图3为本申请实施例提供的伪随机二进制序列码生成方法的流程图。

图4为本申请实施例提供的伪随机二进制序列码生成装置的功能模块示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

实施例一

为便于对本实施例进行理解,首先对执行本申请实施例所公开的一种伪随机二进制序列码生成方法的伪随机二进制序列码生成系统100进行详细介绍。

如图1所示,本实施例提供的伪随机二进制序列码生成系统100可以包括:反馈寄存器链110、后处理模块120以及序列码生成模块130。

本实施例中,伪随机二进制序列码生成系统100可以包括多条反馈寄存器链110。示例性地,伪随机二进制序列码生成系统100可以包括N条反馈寄存器链110。各条反馈寄存器链110可以用于对初始随机数进行并行处理,以得到N组处理随机数组。

可选地,N为正整数。例如,N的取值可以是一、二、四、八、十二、十六、三十二等值。

其中,后处理模块120的数量可以与反馈寄存器链110的数量相同。每一个后处理模块120可以与一条反馈寄存器链110连接。每一个后处理模块120用于从所述N组处理随机数组中的一组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数。

可选地,在反馈寄存器链110进行了迭代运算后,后处理模块120则可以从对应的反馈寄存器链110中抽取数值。

本实施例中,序列码生成模块130用于与各个后处理模块120连接。示例性地,序列码生成模块130可以用于根据N组所述抽取随机数生成伪随机二进制序列码。

本实施例中,序列码生成模块130可以是用于处理从后处理模块120中的数据的寄存器。

本实施例中,可以根据需求设定反馈寄存器链110的长度。示例性地,针对不同阶数的PRBS码,反馈寄存器链110的长度也不同。示例性地,常用的PRBS码可以包括PRBS7、PRBS9、PRBS11、PRBS15、PRBS20、PRBS23、PRBS31。其中,针对PRBS7,反馈寄存器链110的长度可以是七。针对PRBS9,反馈寄存器链110的长度可以是九。针对PRBS11,反馈寄存器链110的长度可以是十一。针对PRBS15,反馈寄存器链110的长度可以是十五。针对PRBS20,反馈寄存器链110的长度可以是二十。针对PRBS23,反馈寄存器链110的长度可以是二十三。针对PRBS31,反馈寄存器链110的长度可以是三十一。

本实施例中,反馈寄存器链110的长度为二十三时,则反馈寄存器链110的长度中可以包括二十三个移位寄存器。如图2所示,二十三个移位寄存器分别是:D1、D2、D3、…、D17、D18、D19、D20、D21、D22、D23。其中,二十三个移位寄存器依次连接。

请再次参阅图1,本实施例中的伪随机二进制序列码生成系统100还可以包括:反馈轮设置寄存器140。其中,反馈轮设置寄存器140与N条反馈寄存器链110连接。反馈轮设置寄存器140用于设置所述N条反馈寄存器链110的每一轮迭代运算的移动步数。

示例性地,反馈轮设置寄存器140控制反馈寄存器链110每一个轮向前移位几步。可选地,反馈轮设置寄存器140可以设置为一轮一步,则每次迭代整体向前移位一个寄存器。可选地,反馈轮设置寄存器140可以设置为一轮两步,则每次迭代整体向前移位两个寄存器。可选地,反馈轮设置寄存器140可以设置为一轮八步,则每次叠代整体向前移位八个寄存器。

请再次参阅图1,本实施例中的伪随机二进制序列码生成系统100还可以包括:阈值设置寄存器150。

示例性地,阈值设置寄存器150,用于设置任一轮迭代运算中在其中一条反馈寄存器链110中的取值数量。

示例性地,后处理模块120根据阈值设置寄存器150设置的数据从每条反馈寄存器链110中取数值。例如,阈值设置寄存器150可以设置为一、二、四、八等。

示例性地,阈值设置寄存器150设置的阈值为一,则可以表示从一条反馈寄存器链110中取一个Sbit数据。其中,S表示需要在一条反馈寄存器链110取数的次数。示例性地,阈值设置寄存器150设置的阈值为二,则可以表示从二条反馈寄存器链110中取二个Sbit数据。其中,S表示需要在一条反馈寄存器链110取数的次数。

示例性地,若上述的阈值用k表示。则每一后处理模块120可以从一条反馈寄存器链110中取一个k*Sbit数据。

请再次参阅图1,本实施例中的伪随机二进制序列码生成系统100还可以包括:零一比值设置寄存器160。

该零一比值设置寄存器160设置输出的伪随机二进制序列码的零一比值。

示例性地,上述的零一比值可以是1/2、1/4、1/8、3/4和7/8等值。

请再次参阅图1,本实施例中的伪随机二进制序列码生成系统100还可以包括:种子寄存器170。

每个种子寄存器170与一条反馈寄存器链110连接,用于向反馈寄存器链110输入以随机数。该随机数作为反馈寄存器链110的初值。

本实施例中,种子寄存器170的位宽取决于PRBS码型,每一条反馈寄存器链110对应一个种子寄存器170。N个种子寄存器170中的值可以取自于N个随机数。其中,N个随机数是独立且不相关的。通过使输入反馈寄存器链110的初值相互独立,从而可以提高各条反馈寄存器链110的独立性,从而可以提高得到的伪随机二进制序列码的随机性。

下面通过几个实例,详细描述本实施例中的伪随机二进制序列码生成系统100的各个单元模块的工作原理。

示例性地,反馈寄存器链110迭代M轮为例。可选地,M可以为64、128、32等值。

下面以PRBS码型为PRBS23为例描述反馈寄存器链110的工作原理。其中,PRBS23的码长为223-1=8388607bits,其本原多项式如下:

PRBS23=X^23+X^18+1。

其中,反馈寄存器链110中包括的D1、D2、…D23为二十三个移位寄存器,其初值可以分别来源于各个种子寄存器170。

在一个实例中,反馈轮设置寄存器140设置的值为一,即一轮向右移一步。

以二十三个移位寄存器为例进行说明,二十三个移位寄存器若初值为:{d1,d2,d3,.....d22,d23};

第一轮移位反馈过后二十三个移位寄存器中存储的值为:

{d18^d23,d1,d2,d3,…,d21,d22};

第二轮移位反馈过后二十三个移位寄存器中存储的值为:

{d17^d22,d18^d23,d1,d2,d3,…,d20,d21};

第三轮移位反馈过后二十三个移位寄存器中存储的值为:

{d16^d21,d17^d22,d18^d23,d1,d2,d3,…,d19,d20};

第四轮移位反馈过后二十三个移位寄存器中存储的值为:

{d15^d20,d16^d21,d17^d22,d18^d23,d1,d2,d3,…,d18,d19}

第五轮移位反馈过后二十三个移位寄存器中存储的值为:

{d14^d19,d15^d20,d16^d21,17^d22,d18^d23,d1,d2,d3,…,d17,d18};

第六轮移位反馈过后二十三个移位寄存器中存储的值为:

{d13^d18,d14^d19,d15^d20,d16^d21,17^d22,d18^d23,d1,d2,d3,…,

d16,d17};

第七轮移位反馈过后二十三个移位寄存器中存储的值为:

{d12^d17,d13^d18,d14^d19,d15^d20,d16^d21,17^d22,d18^d23,d1

,d2,d3,…,d15,d16};

……

第十八轮移位反馈过后二十三个移位寄存器中存储的值为:

{d5^d18^d23,d1^d6,d2^d7,d3^d8,.....d18^d23,d1,d2,d3,d4,d5};

…………

由上述迭代运算可以看出,从第十八轮开始各个移位寄存器中存储的数值有三个初值异或得到的值,其中分别为移位寄存器D5、移位寄存器D18、移位寄存器D23的初值进行异或运算:d5^d18^d23。

以此类推,从第二十三轮开始各个移位寄存器中存储的初值有四个初值异或得到的值,从第三十六轮开始各个移位寄存器中存储的初值有五个初值异或得到的值;从第四十一轮开始各个移位寄存器中存储的初值有六个初值异或得到的值。同时进行异或运算的初值越多,则可能导致反馈寄存器链110输出的数据的随机性与扩散性在一定程度上也将越来越强。

在一个实例中,反馈轮设置寄存器140设置的值为二,即一轮向右移两步。

以二十三个移位寄存器为例进行说明,二十三个移位寄存器若初值为:{d1,d2,d3,.....d22,d23};

第一轮移位反馈过后二十三个移位寄存器中存储的值为:

{d17^d22,d18^d23,d1,d2,d3,…,d20,d21};

第二轮移位反馈过后二十三个移位寄存器中存储的值为:

{d15^d20,d16^d21,d17^d22,d18^d23,d1,d2,d3,…,d18,d19};

第三轮移位反馈过后二十三个移位寄存器中存储的值为:

{d13^d18,d14^d19,d15^d20,d16^d21,17^d22,d18^d23,d1,d2,d3,…,

d16,d17};

第四轮移位反馈过后二十三个移位寄存器中存储的值为:

{d11^d16,d12^d17,d13^d18,d14^d19,d15^d20,d16^d21,17^d22,d18^d23,d1,d2,d3,…,d15};

……

第九轮移位反馈过后二十三个移位寄存器中存储的值为:

{d5^d18^d23,d1^d6,d2^d7,d3^d8,.....d18^d23,d1,d2,d3,d4,d5};

…………

由上述迭代运算可以看出,从第九轮开始各个移位寄存器中存储的数值有三个初值异或得到的值,其中分别为移位寄存器D5、移位寄存器D18、移位寄存器D23的初值进行异或运算:d5^d18^d23。

以此类推,从第十二轮开始各个移位寄存器中存储的初值有四个初值异或得到的值,从第十八轮开始各个移位寄存器中存储的初值有五个初值异或得到的值;从第二十一轮开始各个移位寄存器中存储的初值有六个初值异或得到的值。随着迭代运算的轮次增加,反馈寄存器链110输出的数据的随机性与扩散性在一定程度上也将越来越强。

示例性地,反馈轮设置寄存器140设置的值为四,即一轮向右移四步。以此类推,从第五轮开始各个移位寄存器中存储的初值有三个初值异或得到的值,从第六轮开始各个移位寄存器中存储的初值有四个初值异或得到的值,从第九轮开始各个移位寄存器中存储的初值有五个初值异或得到的值;从第十一轮开始各个移位寄存器中存储的初值有六个初值异或得到的值。同样随着迭代运算的轮次增加,反馈寄存器链110输出的数据的随机性与扩散性在一定程度上也将越来越强。

本实施例中,每个后处理模块120从其对应的反馈寄存器链110获取数值。下面以PRBS23码为例描述后处理模块120的工作原理。

在一个实例中,阈值设置寄存器150中的阈值为一时,则在反馈寄存器链110进行迭代运算过程中,在指定几轮取数时,每轮取数只需要从每一条反馈寄存器链110中的其中一个寄存器取一个数值。例如,从每条反馈寄存器链110中D1移位寄存器取第1、9、17、25、33、41、49、57轮的值分别作为8bit数据输出。示例性地,若伪随机二进制序列码生成系统100一共有八条反馈寄存器链110,则每次PRBS码可得8*8=64bit数据。示例性地,每轮取数只需要从每一条反馈寄存器链110中的其中一个寄存器取一个数值时,也可以取其它位置的数据,例如,从D7、D11、D17、D22中的任意一个移位寄存器中取数。

在一个实例中,阈值设置寄存器150中的阈值为二时,则在反馈寄存器链110进行迭代运算过程中,在指定几轮取数时,每轮取数只需要从每一条反馈寄存器链110中的其中两个寄存器分别取一个数值。例如,从每条反馈寄存器链110中D1和D4两个移位寄存器取第1、9、17、25、33、41、49、57轮的值分别作为2*8bit数据输出。示例性地,若伪随机二进制序列码生成系统100一共有八条反馈寄存器链110,则每次PRBS码可得8*16=128bit数据。

在一个实例中,阈值设置寄存器150中的阈值为四时,则在反馈寄存器链110进行迭代运算过程中,在指定几轮取数时,每轮取数只需要从每一条反馈寄存器链110中的其中四个寄存器分别取一个数值。例如,从每条反馈寄存器链110中D1、D4、D7、D10四个移位寄存器取第1、9、17、25、33、41、49、57轮的值分别作为4*8bit数据输出。示例性地,若伪随机二进制序列码生成系统100一共有八条反馈寄存器链110,则每次PRBS码可得8*32=256bit数据。

在一个实例中,阈值设置寄存器150中的阈值为八时,则在反馈寄存器链110进行迭代运算过程中,在指定几轮取数时,每轮取数只需要从每一条反馈寄存器链110中的其中八个寄存器分别取一个数值。例如,从每条反馈寄存器链110中D1、D4、D7、D10、D13、D16、D19、D22八个移位寄存器取第1、9、17、25、33、41、49、57轮的值分别作为8*8bit数据输出。示例性地,若伪随机二进制序列码生成系统100一共有八条反馈寄存器链110,则每次PRBS码可得8*64=512bit数据。

其中,阈值设置寄存器150中的阈值设置越大,PRBS码派生成速度会越快。由于同一条反馈寄存器链110上的数据存在一定的相关性,因此每条链取的数值越多,派生出的PRBS码的数据存在一定相关性,随机性有所降低。因此,可以根据实际需求设置阈值设置寄存器150中的阈值。

虽然上述的实例是以PRBS23为例进行描述,但是本申请实施例并不以每一条反馈寄存器链110输出的PRBS码的长度为限。

示例性地,序列码生成模块130输出的值受零一比值设置寄存器160中设置的值限制。例如,零一比值设置寄存器160中设置的零一比值为1/2时,则可以直接将从反馈寄存器链110抽取的随机数组合成伪随机二进制序列码。

再例如,零一比值设置寄存器160中设置的零一比值为1/8时,则可以将从反馈寄存器链110抽取的随机数中的3/4的数值使用零替换。可选地,可以将从反馈寄存器链110抽取的随机数,顺序排列后的左边连续3/4的数值使用零替换。可选地,可以将从反馈寄存器链110抽取的随机数,顺序排列后的右边连续3/4的数值使用零替换。例如,从反馈寄存器链110抽取的随机数为64bit数据,则可以将64bit数据中的前48位使用零替换。再例如,从反馈寄存器链110抽取的随机数为128bit数据,则可以将128bit数据中的后96位使用零替换。

再例如,零一比值设置寄存器160中设置的零一比值为7/8时,则可以将从反馈寄存器链110抽取的随机数中的3/4的数值使用一替换。

本实施例中的伪随机二进制序列码生成系统100可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述伪随机二进制序列码生成方法的实现过程。

实施例二

请参阅图3,是本申请实施例提供的伪随机二进制序列码生成方法的流程图。下面将对图3所示的具体流程进行详细阐述。

步骤201,将N组随机数分别按照设定规则进行处理,以得到N组处理随机数组。

其中,N为正整数。

可选地,上述的N的取值可以根据具体使用场景、伪随机二进制序列码的长度需求等需求任意设置。示例性地,N的取值可以是一、二、四、八、十六等值。

可选地,上述的步骤201可以包括:通过N条反馈寄存器链分别对N组随机数进行处理,以得到N组处理随机数组。

可选地,在执行步骤201之前,可以通过N个种子寄存器分别向所述N条反馈寄存器链提供随机数。

在一种实施方式中,可以通过反馈寄存器链对随机数进行处理。示例性地,可以通过目标反馈寄存器链对目标随机数,进行M轮迭代运算,以得到目标反馈寄存器链的M轮随机数组。

其中,M为一设定的正整数。目标反馈寄存器链为N条反馈寄存器链中的任意一条反馈寄存器链。目标随机数为输入目标反馈寄存器链的一随机数,其中,每一轮迭代运算包括一步或多步迭代运算。

每一轮迭代运算,每一条反馈寄存器链可以得到一组长度为I的处理随机数。经过M轮迭代运算后,每一条反馈寄存器链一共可以得到M组长度为I的处理随机数。

可选地,每一步迭代运算可以被实施为以下几个步骤。

步骤a,将所述目标反馈寄存器链中的第i位的寄存器中的数值移位至第i+1位的寄存器中。

其中,i为小于I的正整数,I为目标反馈寄存器链中的寄存器数量。

步骤b,将所述目标反馈寄存器链中的第I位寄存器中的第一数值,与指定位置的寄存器中的第二数值进行异或运算,得到一目标数值。

本实施例中,根据I的取值不同,上述的指定位置也就不同。示例性地,I为二十三时,上述的指定位置则可以是第十八位。示例性地,I为三时,上述的指定位置则可以是第二位。示例性地,I为七时,上述的指定位置则可以是第六位。示例性地,I为十时,上述的指定位置则可以是第九位。示例性地,I为十五时,上述的指定位置则可以是第十四位。示例性地,I为三十一时,上述的指定位置则可以是第二十八位。

步骤c,将所述目标数值存入所述目标反馈寄存器链中的第一位寄存器中。

本实施例中,随着迭代运算的进行,各条反馈寄存器链中的各个移位寄存器中存的数值也就不同。

在另一种实施方式中,可以直接按照设定的计算规则对当前随机数进行处理。

其中,当前随机数可以是进行了一轮或多轮计算之后得到的随机数。

可选地,上述的计算规则中的其中一步计算可以是:将左数第一为数值至第I-1位数值向右移动一位,然后将最后一位数值与指定位数值异或运算得到第一位数值,从而可以得到当前随机数。

例如,当前随机数可以是a1,a2,a3,a4,a5,a6,a7,指定位可以是第六位,则进行一步计算后可以得到a6^a7,a1,a2,a3,a4,a5,a6。

上述的计算规则可以包括多轮计算,每一轮计算可以包括一步或多步计算。每一轮计算可以得到一组处理随机数。一组随机数经过多轮计算则可以得到一组处理随机数组。

步骤202,从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数。

就N组处理随机数组其中一组目标处理随机数组而言,目标处理随机数组包括M轮随机数组。步骤202可以被实施为:从所述目标处理随机数组中的M轮随机数组中,指定轮次的随机数组中抽取指定位次的数值,以得到所述目标处理随机数组中的指定数量的数值。

其中,指定轮次的轮次项数为第一数量,指定位次的位次项数为第二数量。可选地,第一数量和第二数量的取值可以按照需求设定。示例性地,第一数量的取值可以是八,则可以从M轮随机数组中的其中八轮随机数组中抽取数值。示例性地,第一数量可以是十六,则可以从M轮随机数组中的其中十六轮随机数组中抽取数值。

示例性地,第二数量的取值可以是一,则可以在需要取数的各轮随机数组中的每一轮随机数组抽取一个数值。示例性地,第二数量的取值可以是四,则可以在需要取数的各轮随机数组中的每一轮随机数组抽取四个数值。

第一数量与所述第二数量的乘积等于所述指定数量。本实施例中,该指定数量为一组处理随机数组需要抽取的数值数量。

目标处理随机数组为所述N组处理随机数组中的任意一组处理随机数组。

本实施例中,对N组处理随机数组中的数值进行抽取的时机可以是迭代运算得到需要抽取的数据时;也可以是所有数据都进行了完整的迭代运算之后,得到N组处理随机数组后。

在一种实施方式中,从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数,可以包括:每当所述目标反馈寄存器链迭代至指定轮次时,从所述目标反馈寄存器链的指定位次的寄存器取出数值,直到所述目标反馈寄存器链进行M轮迭代后,从所述目标反馈寄存器链中取出指定数量的数值。

示例性地,如果需要抽取的数值是第一个移位寄存器的数值,且需要抽取的数值包括第八轮迭代运算后的值,则可以在目标反馈寄存器链第八轮迭代运算结束后,从所述目标反馈寄存器链的第一个移位寄存器取出当前的数值。

示例性地,如果需要抽取的数值是第一个移位寄存器的数值,且需要抽取的数值包括第二十五轮迭代运算后的值,则可以在目标反馈寄存器链第二十五轮迭代运算结束后,从所述目标反馈寄存器链的第一个移位寄存器取出当前的数值。

示例性地,如果需要抽取的数值是第一个移位寄存器和第四个移位寄存器的数值,且需要抽取的数值包括第二十五轮迭代运算后的值,则可以在目标反馈寄存器链第二十五轮迭代运算结束后,从所述目标反馈寄存器链的第一个移位寄存器和第四个移位寄存器取出当前的数值。

在另一种实施方式中,从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数,可以包括:从每组处理随机数组抽取指定位置的数值,以得到N组数值数量为指定数量的抽取随机数。

示例性地,每组处理随机数组可以包括M组数据组。在一个实例中,需要抽取的数值可以是第1、9、17、25、33、41、49、57组数据中的第一个数值,则可以从每组处理随机数组中按照上述限定位置抽取八个数值。

示例性地,每组处理随机数组可以包括M组数据组。在一个实例中,需要抽取的数值可以是第1、9、17、25、33、41、49、57组数据中的第一个数值和第四个数值,则可以从每组处理随机数组中抽取十六个数值。

步骤203,根据N组所述抽取随机数生成伪随机二进制序列码。

本实施例中,可以根据需求对伪随机二进制序列码中的零一比进行调整,也可以不对伪随机二进制序列码中的零一比进行调整。

在一种实施方式中,步骤203可以包括将N组所述抽取随机数拼接成伪随机二进制序列码。

在另一种实施方式中,步骤203可以包括:根据预设零一比值,将N组所述抽取随机数中的部分数值使用零或一替换,以得到伪随机二进制序列码。

本实施例中,预设零一比值可以表示零在伪随机二进制序列码中的所有数值中占的比例。

可选地,当预设零一比值大于二分之一时,根据预设零一比值,将N组所述抽取随机数中的部分数值使用零替换,以得到伪随机二进制序列码。

示例性地,以p表示预设零一比值,则需要替换为零的数值数量在所有N组抽取随机数中的数值总数的比例为:1-2*(1-p)。例如,预设零一比值为7/8时,则需要替换为零的比例为1-2(1-7/8)=3/4。例如,所有N组抽取随机数为一64bit数据,则需要将64bit数据中的48bit数据替换为零。

可选地,当预设零一比值小于二分之一时,根据预设零一比值,将N组所述抽取随机数中的部分数值使用一替换,以得到伪随机二进制序列码。

示例性地,以p表示预设零一比值,则需要替换为一的数值数量在所有N组抽取随机数中的数值总数的比例为:1-2*p。例如,预设零一比值为1/8时,则需要替换为一的比例为1-2*1/8=3/4。例如,所有N组抽取随机数为一128bit数据,则需要将128bit数据中的96bit数据替换为一。

本实施例中,可以将N组抽取随机数中的连续的部分数值进行替换处理,也可以从N组所述抽取随机数中的筛选出部分数值进行替换处理。

在一可选的实施方式中,根据预设零一比值,将N组所述抽取随机数中的部分数值使用零或一替换,以得到伪随机二进制序列码可以包括:根据预设零一比值,将N组所述抽取随机数中的连续的部分数值使用零或一替换,以得到伪随机二进制序列码。

下面以N组抽取随机数为128bit数据为例进行说明。

在一个实例中,需要使伪随机二进制序列码的零一比值为1/8时,需要将128bit数据中的3/4的数值替换为一,则可以将128bit数据中的左边连续的3/4的数值替换为一;或者,也可以将128bit数据中的右边连续的3/4的数值替换为一。

在一个实例中,需要使伪随机二进制序列码的零一比值为1/4时,需要将128bit数据中的1/2的数值替换为一,则可以将128bit数据中的左边连续的1/2的数值替换为一。或者,也可以将128bit数据中的右边连续的1/2的数值替换为一。

在本实施例中的方法中,通过从多组随机数组中抽取随机数,再由抽取的随机数生成伪随机二进制序列码,从而可以组合形成更多不同长度的二进制序列码,以适应不同的应用需求。进一步地,由多组抽取随机数生成伪随机二进制序列码,可以使生成的二进制序列码的随机性更好。

实施例三

基于同一申请构思,本申请实施例中还提供了与伪随机二进制序列码生成方法对应的伪随机二进制序列码生成装置,由于本申请实施例中的装置解决问题的原理与前述的伪随机二进制序列码生成方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。

请参阅图4,是本申请实施例提供的伪随机二进制序列码生成装置的功能模块示意图。本实施例中的伪随机二进制序列码生成装置中的各个模块用于执行上述方法实施例中的各个步骤。伪随机二进制序列码生成装置包括:处理模块301、抽取模块302以及生成模块303;其中,

处理模块301,用于将N组随机数分别按照设定规则进行处理,以得到N组处理随机数组,其中,N为正整数;

抽取模块302,用于从所述N组处理随机数组中的每组处理随机数组抽取指定数量的数值,以得到N组数值数量为指定数量的抽取随机数;

生成模块303,用于根据N组所述抽取随机数生成伪随机二进制序列码。

一种可能的实施方式中,所述N组处理随机数组包括目标处理随机数组,所述目标处理随机数组包括M轮随机数组;抽取模块302,用于:

从所述目标处理随机数组中的M轮随机数组中,指定轮次的随机数组中抽取指定位次的数值,以得到所述目标处理随机数组中的指定数量的数值,其中,指定轮次的轮次项数为第一数量,指定位次的位次项数为第二数量;所述第一数量与所述第二数量的乘积等于所述指定数量;所述目标处理随机数组为所述N组处理随机数组中的任意一组处理随机数组;M为大于一的正整数。

一种可能的实施方式中,生成模块303,用于根据预设零一比值,将N组所述抽取随机数中的部分数值使用零或一替换,以得到伪随机二进制序列码。

一种可能的实施方式中,生成模块303,用于:

当预设零一比值大于二分之一时,根据预设零一比值,将N组所述抽取随机数中的部分数值使用零替换,以得到伪随机二进制序列码;

当预设零一比值小于二分之一时,根据预设零一比值,将N组所述抽取随机数中的部分数值使用一替换,以得到伪随机二进制序列码。

一种可能的实施方式中,生成模块303,用于根据预设零一比值,将N组所述抽取随机数中的连续的部分数值使用零或一替换,以得到伪随机二进制序列码。

此外,本申请实施例还提供一种电子设备,该电子设备可以包括上述实施例一种描述的伪随机二进制序列码生成系统。可选地,电子设备可以包括存储器、存储控制器、处理器、外设接口、输入输出单元、显示单元等元件。上述的存储器、存储控制器、处理器、外设接口、输入输出单元及显示单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器用于执行存储器中存储的可执行模块。可以知道的是,电子设备还可包括比上述列出的更多或者更少的组件,或者具有与上述列出的元件不同的配置。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的伪随机二进制序列码生成方法的步骤。

本申请实施例所提供的伪随机二进制序列码生成方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的伪随机二进制序列码生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于数据状态变化的自动编码数据处理应用设计工具

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类