2 系统分析与设计
首先根据需要选取产生混沌信号的混沌方程。然后确定方程的系数及初值。与采用分立元件设计信号源不同的是:分立元件设计混沌信号源的系数是需要通过电路结构分析计算各元件的参数值得到,而采用DSP设计信号源直接设定即可;分立元件设计混沌信号源时不必设定初值,而采用DSP设计混沌信号源时方程的初值设定是必不可少的。初值可以是不为零的任意数,但最好选取在混沌系统的吸引子中,这样能使系统迅速进入混沌。因为DSP产生的混沌信号极其有限,可根据实际需要在输出端采用其他电路设计增益放大电路。图1为系统设计流程。
3 程序设计和精度问题
3.1 程序设计
此设计中的DSP主要用于微分数值的迭代运算,其计算性能将决定信号产生速度,这里采用TI公司的TMS320C5402型低功率器件作为核心,其速度可达100 MI/s,以Lorenz方程为例,其方程如下:
式中,参数值分别为:α=5.5,β=-7.4,k1=0.25,k2=0.1。
图2为系统程序流程。
3.2 精度问题
混沌信号的产生主要借助于:DSP强大的运算能力,采用数值计算方法,可根据不同的精度要求选用不同的方法。精度越高,运算量越大,则混沌信号的频率越低,所以要根据实际需要选取合适的精度。混沌方程的微分数值计算方法主要有:欧拉方法、改进欧拉方法及四阶龙格一库塔法。这3种方法精度由低到高,计算量也由低到高。运算量的大小直接决定运算速度,即决定混沌信号的产生速度。选用何种计算方法取决于对精度和速率的要求以及对运算量的承受能力。上述核心程序采用四阶龙格一库塔法。
4 信号的验证与测试
4.1 信号验证
产生的信号是否为混沌信号必须经过验证。判断混沌信号的方法很多,但都存在需要复杂运算的问题。一般情况下通过示波器显示的单通道波形很难判断混沌与否。MATLAB和TI公司联合开发的MATLAB Link for CCS Development Tool(简称CCSlink)工具箱更适合于程序的调试,对混沌信号的验证不够灵活。这里采用一种简单有效的方法判断DSP产生的信号是否混沌。运用 JTAG测试技术和CCS的在线调试功能,直接访问DSP内存。以Lorenz混沌信号的检测为例,在CCS编译环境的程序部分通过设定,将数据X存在 DSP的地址0X0088,Y存在地址0X0099,Z存在地址0X00A0,使用探针功能采集内存中的数据,并将其存为DAT文件格式,然后利用 Matlab强大的图形能力对数据进行处理,通过分析相图判断信号是否为混沌信号。这里共采集98 047个点的数据。利用Matlab方法将采集到的DSP产生的数据制成波形图和相图,分别如图3、图4所示。由图3和图4易知产生的数据是混沌的,从而验证了设计的正确性。
4.2 可重用性测试
为验证系统的可通用性,对Lorenz混沌信号产生模块稍作修改,修改的内容包括:微分方程、参数值以及初始值。
Liu系统的方程为:
采用同样的方法,得到Liu系统产生的混沌信号。如图5和图6所示。
5 结论
针对模拟电路设计的混沌信号模块结构复杂、噪声高等缺点,采用DSP实现了可调精度的混沌信号产生模块,并实现了Lorenz方程和Liu系统的混沌信号。总结如下:以TI公司的TMS320C5402型DSP为例给出了混沌信号源详细的设计方法,并对信号进行了验证;运用JTAG测试技术和CCS的在线调试,直接访问DSP内存,进而判断信号是否发生混沌,此方法简单有效。该模块的设计可根据不同应用需求,如对混沌信号产生速率、功耗、精度等方面的要求,选择不同器件片。所以具有很大的通用性和灵活性。