基于FPGA的Lorenz混沌信号发生器设计

2016-01-04 04:01许春生初明
科技创新导报 2015年28期

许春生 初明

摘 要:由于混沌在保密通信和扩频通信中的应用较为广泛,因此研究性能较好的混沌信号发生器对混沌理论的实用化推进相当重要。随着FPGA等现代数字电路技术的飞速发展,利用数字电路的快速运算和自由设计的特点,可以便捷地实现混沌信号的产生。设计中采用Euler算法对Lorenz系统进行离散,并使用Verilog HDL语言编写相应模块。该文设计了单精度浮点加法器、浮点乘法器、数据选择器、数据分配器、寄存器、时序产生器、模数转换器等模块,提高了通用性。

关键词:FPGA 混沌信号发生器 Lorenz混沌

中图分类号:TN431 文献标识码:A 文章编号:1674-098X(2015)10(a)-0055-02

在实际混沌研究中对于一些混沌系统,需要将其产生,这里我们用FPGA来设计一个混沌信号发生器。混沌系统的分析主要是通过建模探索系统的生成方法,证明混沌的存在性。数学上有一套严格的的理论和方法;连续混沌系统建模的难度相对较大。离散混沌系统主要有一维Logistic和二维Henon映射[1]。连续混沌系统的典型代表有:Lorenz族、Chua系统、Chen系统等。对一个连续混沌系统我们对其分析主要有:相图显示、时域波形显示、最大李氏指数计算、平衡点和稳定性分析。

1 Lorenz混沌系统设计

(1)该文设计的是Lorenz混沌系统的信号发生器,在此前先对系统进行数学分析。Lorenz混沌系统的数学模型如下。

(1)

其中A为10,B为30,C为8/3。

首先我们来分析它的时域,用Matlab软件画出它的x时域图形和x-z相图。如图1、2可以看出Lorenz系统呈现双涡卷形态,时域虽然不稳定,但不会超过一定的值,体现它的有界性。

(2)Lorenz系统的平衡点。

对于式1,令导数为0,可以得到:

(2)

解2式可以得到3个平衡点:

(3)

用Matlab软件画出b参数变化对x的作用可以得出平衡点的分岔变化,从图3中可以看出对于b的变化在x=1的时候出现分岔。

当x=y时,b变化x值变化,在Matlab中将b变化进行变化仿真可以得到分岔图如图4。

(3)混沌系统离散化。

由于FPGA只能对离散数字进行处理,所以需要先对系统进行离散,离散的方法主要有Runge—Kutta法和Euler算法[2]。

Euler算法

对于系统的状态方程,直接将导数等效变换

代入式中即可以得到式

(4)

最后将其余项右移即可。

(5)

Runge—Kutta法

将系统直接转化代入6式,计算出各K值即可得到离散化系统。

(6)

其中K为

(7)

对于FPGA来说,这两种方法都满足设计的精度要求,考虑到FPGA的运算能力相对来说不是很强,所以这里采用Euler算法对式1 进行离散化处理。得到式8

(8)

取△T=0.001S能满足精度要求,这里将△T=0.001,A=10,B=30,C=8/3代入式8得到

(9)

式9就是得到的离散化的Lorenz混沌的数学表达式。

2 设计原理

本设计是将式9分为A到I部分。

得到

(10)

第一遍相乘的时候,直接连接数据选择器分别把PA到PI计算出来。利用一个数据分配器把PA到PI存起来,再用数据选择器将x(n+1)的PA,PB加起来,y(n+1)的PC和PE加起来,z(n+1)的PI和PG加起来,最后将y(n+1)减去PH就得到了全部的下一个值。也就是说设计只是将离散化的数学模型中的几个运算分散相乘,然后将相乘过后的几个数再相加或者相减,得到的数就是下个要迭代的数,不断的重复这个运算就可以得到x,y,z的值。

设计中用Verilog HDL硬件语言对主要硬件模块设计,主要有:单精度浮点加法器、浮点乘法器、数据选择器、数据分配器、寄存器、时序产生、模数转换等相应模块。

3 结语

基于Lorenz混沌设计的电路系统比较具有代表性,在此我们设计了一个全部由程序代码构成的Lorenz混沌信号发生器。仿真结果表明混沌信号发生器稳定性较高,能够应用到混沌理论研究中,有助于混沌理论的推进与发展。

参考文献

[1] 禹思敏.混沌系统与混沌电路[M].西安:西安电子科技大学出版社,2009:1-300.

[2] Aseeri M.A.,Sobhy M.Lorenz chaotic model using Filed Programmable Gate Array (FPGA)[M].45th Midwest Symposium on Circuits and Systems,2012.

[3] 张钰,禹思敏,刘明华.用FPGA技术产生多涡卷超混沌吸引子的研究[J].电路与系统学报,2007,12(1):39-43.

[4] HodjatA.,Verbauwhede I.Interfacing a high speed crypto accelerator to an embedded[M].CPU,2014:488-492.

[5] Good T.,Benaissa M.Very Small FPGA Application-SpecificInstruction Processor for AES[S].IEEE Transactions on Circuits and Systems I:1477-1486.