[发明专利]伪随机二值序列的局部弱随机现象的快速检测方法有效
申请号: | 202011473301.8 | 申请日: | 2020-12-11 |
公开(公告)号: | CN112558924B | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 范春雷;丁群 | 申请(专利权)人: | 黑龙江大学 |
主分类号: | G06F7/58 | 分类号: | G06F7/58;G06F17/16 |
代理公司: | 哈尔滨市哈科专利事务所有限责任公司 23101 | 代理人: | 吴振刚 |
地址: | 150080 黑龙江省哈尔滨*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 随机 序列 局部 现象 快速 检测 方法 | ||
1.一种伪随机二值序列的局部弱随机现象的快速检测方法,采用CUDA计算平台,其特征在于,方法如下:根据待测伪随机二值序列构建初始化矩阵A,根据初始化矩阵A构建r-1行k列的弱随机检测矩阵B;基于r-1行k列的弱随机检测矩阵B,采用并行运算方式按顺序依次构建四个r-1行k列的方向矩阵Dleft,Dright,Dup和Ddown;采用并行方式定位方向矩阵Dleft中所有临界值的位置,并运用矩阵扫描算法定位每个临界值附近是否存在局部弱随机现象,如果存在则输出相应位置信息;其中,所述的采用并行方式定位方向矩阵Dleft中所有临界值的位置,并运用矩阵扫描算法定位每个临界值附近是否存在局部弱随机现象的方法,步骤具体如下:生成完四个方向矩阵之后,二值序列ε(t)的局部弱随机现象便是利用这四个方向矩阵Dleft,Dright,Dup和Ddown进行搜寻,首先定义核函数Search_loc<<<b1,b2>>>(),此函数用来并行实现Dleft中所有临界值的位置的搜索和弱随机现象定位功能,此核函数有b1×b2个CUDA线程,每个线程负责扫描方向矩阵Dleft中u行元素并找出其中的临界值及其位置,每个线程找到位置后执行矩阵扫描算法定位局部弱随机现象,最后一个线程仅需要扫描方向矩阵Dleft中的最后r-1-u(b1×b2-1)行中的临界值的位置以及确定此临界值附近的局部弱随机现象,每个线程按行依次判断Dleft中元素是否为临界值,方法为:
判断一个元素是否为临界值,其遵循的原则是:如果Dleft(i,j)>0且j=1,则元素Dleft(i,j)便是一个临界值,(i,j)为此临界值在方向矩阵Dleft中的位置,此外当Dleft(i,j)>0且Dleft(i,j-1)=0时,此元素Dleft(i,j)也是一个临界值,设Dleft(i,j)是一个已确定的临界值,则此临界值的位置为(i,j);
下一步,当确定一个临界值的位置(i,j)后,便执行矩阵扫描算法去搜索此临界值附近是否有局部弱随机现象,首先定义两个临时变量rStart和rEnd,并将Dup(i,j)和Ddown(i,j)的值分别赋值给变量rStart和rEnd,这里rStart-1和rEnd代表局部弱随机现象的起始行和结束行;
下一步,判断公式1*(rEnd-rStart+2)≥n*thres是否成立,这里变量n和thres分别表示二值序列ε(t)的序列长度和局部弱随机现象的决策阈值,thres为0.03,如此式成立则输出一组变量(rStart,j,rEnd,j),基于此组变量便能够定位出二值序列ε(t)中的局部弱随机的具体位置,其具体位置表示为:ε((rStart-1)*k+j)=ε(l*k+j),l∈[rStart,rEnd]
如式1*(rEnd-rStart+2)≥n*thres不成立,则无需输出变量组(rStart,j,rEnd,j),继续搜索并定义变量m,将j赋值给变量m,这里变量m代表局部弱随机现象的结束列,之后执行以下步骤:
步骤1:将m+1赋值给变量m,判断等式m>Dright(i,j)是否成立,如成立则结束,如不成立则转到步骤2;
步骤2:将max(rStart,Dup(i,m))和min(rEnd,Ddown(i,m))的结果分别赋值给变量rStart和rEnd,函数max()和min()分别表示求两个数的最大值和最小值;
步骤3:判断m<Dright(i,j)、Dup(i,m+1)≤rStart和Ddown(i,m+1)≥rEnd这三个等式是否全部满足,如果全部满足则跳转到步骤1;如不满足则转到步骤4;
步骤4:判断等式(m-j+1)*(rEnd-rStart+2)≥n*thres是否成立,如成立输出一组变量(rStart,j,rEnd,m),基于此组变量便能定位出二值序列ε(t)中的局部弱随机的具体位置,其具体位置由下式表述:
ε((rStart-1)*k+j)…ε((rStart-1)*k+m)=ε(l*k+j)…ε(l*k+m),l∈[rStart,rEnd] (10)
如不成立则跳转到步骤1。
2.根据权利要求1所述的一种伪随机二值序列的局部弱随机现象的快速检测方法,其特征在于,由待测伪随机二值序列生成四个方向矩阵的步骤具体如下:
设某一伪随机二值序列ε(t)的长度为n,t代表某元素在二值序列ε(t)中的对应位置,以k为周期对此二值序列ε(t)进行折叠形成不同尺寸的初始化矩阵A,初始化矩阵A被定义为
r为矩阵的行数,k为列数,其中当伪随机二值序列ε(t)的长度n为偶数时k∈{2,3,…,n/2},当n为奇数时k∈{2,3,…,(n-1)/2},此外变量r表示为
式中为向下取整运算符,基于上式得到当长度n为偶数时能够构建n/2-1个尺寸不同的初始化矩阵A,当长度n为奇数时能够构建(n-1)/2-1个尺寸不同的初始化矩阵A,之后每个初始化矩阵A依次执行以下过程,
根据初始化矩阵A构建r-1行k列的弱随机检测矩阵B,矩阵B被定义为
下一步,基于r-1行k列的弱随机检测矩阵B,按顺序依次构建四个r-1行k列的方向矩阵Dleft,Dright,Dup和Ddown,在生成四个方向矩阵的过程中,矩阵Dleft,Dright,Dup和Ddown的数学表达式分别如式(4)-(7)所示,定义4个核函数Gen_Left<<<b1,b2>>>()、Gen_Right<<<b1,b2>>>()、Gen_Up<<<b1,b2>>>()和Gen_Down<<<b1,b2>>>()分别并行生成矩阵Dleft,Dright,Dup和Ddown,
其中,b1为每个线程网格中线程块的个数,b2为每个线程块中线程的个数,
四个方向矩阵Dleft,Dright,Dup和Ddown皆是r-1行k列,让对应核函数下的每个CUDA线程负责生成u行元素,最后一个线程仅需要生成方向矩阵Dleft的最后r-1-u(b1×b2-1)行,这里设Dleft(i,j),Dright(i,j),Dup(i,j)和Ddown(i,j)分别表示四个方向矩阵第i行第j列的对应元素,四个方向矩阵各元素的值由弱随机检测矩阵B各元素的值来决定,如果Bi,j=0,则四个方向矩阵第i行第j列的对应元素也即Dleft(i,j),Dright(i,j),Dup(i,j)和Ddown(i,j)也等于0,如果Bi,j=1,则方向矩阵Dleft,Dright,Dup和Ddown对应位置的值被定义为下式
其中,Lleft,Lright,Lup和Ldown分别表示元素Bi,j左、右、上、下四个方向连续1的个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于黑龙江大学,未经黑龙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011473301.8/1.html,转载请声明来源钻瓜专利网。