1 Logistic映射
Logistic方程如下:
式中:Xn∈(0,1);μ∈(0,4),当μ取值[3.571 448,4]时,Logistic映射进入混沌态,并表现出复杂的动力学特性。在此取μ=4,令Xn的初值Xo=O.312 5,则xn的时间序列和吸引子相图如图1所示。
2 Logistic映射的电路设计及时间序列的量化
DSP Builder。将Matlab和Simlalink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和开发工具整合在一起,实现了这些工具的集成,将系统级设计的实现与DSP算法的开发相链接,涵盖了算法和存储功能等基本操作。可利用DSP Builder模块迅速生成算法硬件电路,并转成VHDL语言,大大缩短了FPGA的设计周期。图2为Logistic的DSP Builder电路实现模型。
图2中为消除毛刺,在各输出端加入了一个延时器。其中,xout为Xn+1的时间序列;yout为其延时一个时钟周期后的输出,即Xo。xout与yout都是以二进制数表示的一系列小数(xn∈(0,1)),可表示为:
因为时间序列Xn的数值是用二进制数表示的,随着迭代的不断进行,Xn将随之变化,此时其二进制表示中的某一位(O或1)也随之变化。因此可以提取Xn时间序列中某一位二进制位作为量化值,当Xn的时间序列值随时间变化时即生成一PN序列。图2中的XoutBit为PN序列的输出端,它取自Xn二进制数表示中的第9位。后面的分析表明,这种量化方法同样具有很好的混沌性能和随机性。
为了验证图2电路模块的正确性,对Logistic的模块电路进行仿真,其时间序列和吸引子如图3所示。比较图3和图1发现,利用DSP Builder设计的电路有效地实现了Logistic映射的功能。
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,这样可以最大限度地保持精度,减少有限字长效应带来的误差,有效实现混沌的非周期特性。
理论上混沌序列是非周期的,但因为在使用有限字长表示混沌状态的情况下,加上运算结果的近似化,混沌序列最终会演化为一个周期序列。但是可以通过加长有限字长来延长周期。从实用的角度看,只要设计得好,映射和分叉参数选择合适,所产生的序列周期将足够长,序列的相关特性将足够好,可用的序列数量将足够多,可认为位转换就已够用,因为通信的时间不可能无限长。研究还发现,混沌映射产生的有限字长周期序列具有正的最大Lyapllnov指数。
将图2所示的图形化模块通过“Signal Corepiler”直接转化为硬件描述语言,再利用QuartusⅡ进行编译,其仿真时序图见图4。其中,Output为抽取的混沌数字PN序列,即图2中的XoutBit;Outputl和Output2分别为Xn+1和Xn。
把工程文件在CycloneⅡ的EP2C35F484C8进行编译和引脚分配并下载到该芯片进行硬件实验,从数字示波器上观察到的PN序列如图5(a)所示。为了验证硬件实现的精度,通过THS5651芯片对得到的混沌数字信号进行D/A转化,再通过示波器观察其时间序列和吸引子,如图5(b),图5(c)所示。