基于Logistic映射PN序列的FPGA实现

来源:本站
导读:目前正在解读《基于Logistic映射PN序列的FPGA实现》的相关信息,《基于Logistic映射PN序列的FPGA实现》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于Logistic映射PN序列的FPGA实现》的详细说明。
简介:本文介绍了基于Logistic映射PN序列的FPGA实现的实现方法,希望对大家有所帮助。

0引言

伪噪声序列(PN序列)可应用于扩频通信、信息加密、计算机仿真等领域。PN序列发生器需要一个随机信号源和一系列的离散、量化算法及其硬件实现技术。确定性的混沌可以复制,具有长期不可预测性,且很难区分一个信号是来自于非确定性系统还是混沌系统。因此,混沌满足密码系统设计的基本原则,利用混沌系统作为PN序列的信号源已引起了国内外学者的广泛关注与研究。

基于Logistic映射产生PN序列已有不少研究。文献[7]利用模拟电路研究了其实现技术,由于混沌对初值和参数的敏感性,两个模拟电路实现的PN序列,其电路参数不可能完全匹配,且受环境条件的变化而出现失配现象,很难保证保密通信或信息加密中两个PN序列的完全同步。因此,近年来开展了基于数字电路(如FPGA)的PN序列的实现研究,但现有的研究中大多进行仿真实验,无法保证硬件实际输出PN序列的产生及其性能的测试。为此,基于FPGA技术,利用Logistic混沌映射作为随机信号源对实现PN序列的硬件进行了深入研究,提取Logistic数值序列中二进制数的某一位bi(bi∈{0,1})为PN数字序列,实验中获得了硬件输出序列,并通过一个串口通信电路对硬件输出序列进行取样,对其进行序列统计性能分析。分析结果表明,基于Logistic的PN序列性能良好,满足PN序列测试的标准。

1 Logistic映射

Logistic方程如下:

基于Logistic映射PN序列的FPGA实现

式中:Xn∈(0,1);μ∈(0,4),当μ取值[3.571 448,4]时,Logistic映射进入混沌态,并表现出复杂的动力学特性。在此取μ=4,令Xn的初值X0=0.312 5,则Xn的时问序列和吸引子相图如图1所示。

2 Logistic映射的电路设计及时间序列的量化

DSP Builder将Matlab和Simulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和开发工具整合在一起,实现了这些工具的集成,将系统级设计的实现与DSP算法的开发相链接,涵盖了算法和存储功能等基本操作。可利用DSP Builder模块迅速生成算法硬件电路,并转成VHDL语言,大大缩短了FPGA的设计周期。图2为Logistic的DSP Builder电路实现模型。

基于Logistic映射PN序列的FPGA实现

图2中为消除毛刺,在各输出端加入了一个延时器。其中,xout为Xn+1的时间序列;yout为其延时一个时钟周期后的输出,即Xn。xout与yout都是以二进制数表示的一系列小数(Xn∈(0,1)),可表示为:

基于Logistic映射PN序列的FPGA实现

因为时间序列Xn的数值是用二进制数表示的,随着迭代的不断进行,Xn将随之变化,此时其二进制表示中的某一位(0或1)也随之变化。因此可以提取Xn时间序列中某一位二进制位作为量化值,当Xn的时间序列值随时间变化时即生成一PN序列。图2中的XoutBit为PN序列的输出端,它取自Xn二进制数表示中的第9位。后面的分析表明,这种量化方法同样具有很好的混沌性能和随机性。

为了验证图2电路模块的正确性,对Logistic的模块电路进行仿真,其时间序列和吸引子如图3所示。比较图3和图1发现,利用DSP Builder设计的电路有效地实现了Logistic映射的功能。

基于Logistic映射PN序列的FPGA实现

3基于FPGA的PN序列实现

图2中,xout与yout具有相同的k及l值,k=1,l=9,即k+l=10。因为所使用的FPGA开发板自带THS5651DA转换器接受的是10引脚数据,k+l=10可实现匹配。尽管xout在最后输出前转成了10位长度,但在整个内部运算环节,是50位长度的,有限字长明显大于10,这样可以最大限度地保持精度,减少有限字长效应带来的误差,有效实现混沌的非周期特性。

理论上混沌序列是非周期的,但因为在使用有限字长表示混沌状态的情况下,加上运算结果的近似化,混沌序列最终会演化为一个周期序列。但是可以通过加长有限字长来延长周期。从实用的角度看,只要设计得好,映射和分叉参数选择合适,所产生的序列周期将足够长,序列的相关特性将足够好,可用的序列数量将足够多,可认为位转换就已够用,因为通信的时间不可能无限长。研究还发现,混沌映射产生的有限字长周期序列具有正的最大Lyapunov指数。

将图2所示的图形化模块通过“Signal Compiler”直接转化为硬件描述语言,再利用QuartusⅡ进行编译,其仿真时序图见图4。其中,Output为抽取的混沌数字PN序列,即图2中的XoutBit;Output1和Output2分别为Xn+1和Xn。

基于Logistic映射PN序列的FPGA实现

把工程文件在CycloneⅡ的EP2C35F484C8进行编译和引脚分配并下载到该芯片进行硬件实验,从数字示波器上观察到的PN序列如图5(a)所示。为了验证硬件实现的精度,通过THS5651芯片对得到的混沌数字信号进行D/A转化,再通过示波器观察其时间序列和吸引子,如图5(b),图5(c)所示。

4 PN序列随机性分析

为了对硬件输出的PN序列进行性能测试,首先通过一个串口通信模块电路对FPGA输出的数字PN序列进行采样,然后利用计算机对其进行随机性能分析。

这里采用的FPGA开发板其内核为CycloneⅡ的EP2C35F484C8,外围电路提供了USB口、并行I/O以及串口等一系列可供用户选择的端口。抽取Xn二进制表示的小数部分的第9位作为比特序列,并通过串口来实时获得该位在一定时间段t内的所有值,其串口通信

模块电路如图6所示。

基于Logistic映射PN序列的FPGA实现

为了确保计算机在接收该序列时不出现比特丢失现象,可预先向计算机发送一组周期序列来保证数据的可靠性。假设串口传输波特率为9 600,系统晶振为20 MHz,为了得到整数倍的分频,可根据公式:

n=(20×106×k)/9 600

令k=3,则可得出n为6.250。其中,比例因子k可通过锁相环来获得。上述两步骤可通过在QuartusⅡ中添加锁相环代码与分频器代码实现。此时,让系统时钟T=1/9 600再经过二分频后通过串口输出,如果在接收端收到“01010”的周期序列,则表明FPGA与计算机之间的通信无问题。

5 PN序列随机性能分析

5.1频率测试(Frequency Test)

该测试可用来判断序列当中0和1的个数是否近似相等,若近似相等,则符合随机序列的必要条件。令n0,n1分别代表0与1的个数;n代表序列s的长度。该统计方程为:

基于Logistic映射PN序列的FPGA实现

若n≥10,则T1近似符合1维自由度的x2分布。

对采集到的PN序列进行自由度为1的x2检验,取显著性水平α=0.05,可以从标准表中查到显著性水平α=0.05的x2值为3.84。如果T1值小于3.84,则该序列通过测试。n0,n1和T1的测试值如表1所示,由此可知,该序列的T1值远小于3.84,通过测试。

基于Logistic映射PN序列的FPGA实现

串列测试(Serial Test)

该测试可用来判断序列中00,01,10,11子序列的个数是否近似相等。若近似相等,则符合随机序列的必要条件。令n0,n1分别代表0与1的个数,而n00,n01,n10,n11分别代表s序列中00,01,10,11的个数。由于n00+n01+n0+n11=n-1,该统计方程为:

基于Logistic映射PN序列的FPGA实现

若n≥21,则T2近似符合2维自由度的x2分布。对序列进行自由度为2的x2检验。显著性水平α置为0.05,查标准表得此时的x2值为5.99。测试结果如表2所示,T2=0.352 5<<5.99,通过测试。

基于Logistic映射PN序列的FPGA实现

Poker测试(Poker Test)

令m为符合(n/m)≥5×2m的正整数,并令k=n/m。将序列s分成k个不重复的部分,每部分的长度为m,令ni为第i个长度为m的序列标号,1≤i≤2m。Poker测试可用来确定ni在序列s中,长度为m的各个不同子序列出现的概率是否近似相等。该统计方程为:

基于Logistic映射PN序列的FPGA实现

式中:T3近似符合2m-1维自由度的x2分布。值得注意的是,频率测试其实是Poker测试的一个特例,令m=1,Poker测试即成为了频率测试。分别取m=1,2,3,4,5,6,对待测序列进行自由度为2m-1的x2检验,结果列于表3。由表3可见,对于不同m值的T3值均小于对应的x2值,通过测试。

5.4游程测试(Runs Test)

该测试的目的是为了判断s序列中不同长度的游程是否具有随机序列的游程特性。理论上,在一个长度为n随机序列中,长度为i的连续0或连续1的期望值为ei=(n-i+3)/2i+2。令k为当ei≥5时的最大的i;Bi,Gi分别为各个block和gap的个数。游程测试的统计方程为:

基于Logistic映射PN序列的FPGA实现

分别取i为1,2,3,4,5,6,7,8,9。对本序列,k值为9,所以可对T4进行自由度为16的x2检验。查标准表知自由度为16的x2值为26.3。将上述数值代入统计方程,运算得T4=19.883 1<26.3,通过测试。其测试结果如表4所示。

自相关测试(Autocorrelation Test)

基于Logistic映射PN序列的FPGA实现

基于Logistic映射PN序列的FPGA实现

6结语

利用Logistic混沌映射作为随机信号源,基于FPGA技术研究了PN序列的硬件产生。通过对产生的PN序列进行性能分析发现,其具有很好的随机性,可被应用于扩频通信和数字信息加密等领域。由于直接以离散混沌作为随机信号源,相对于将连续混沌离散化后再量化产生PN序列,其精确度更高。由于数字序列是通过抽取二进制数值中某一位产生的,只要迭代值的位数足够多,序列的可变性就更大,从而增大了密钥空间和通信的保密性。

提醒:《基于Logistic映射PN序列的FPGA实现》最后刷新时间 2024-03-14 00:59:09,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于Logistic映射PN序列的FPGA实现》该内容的真实性请自行鉴别。