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易知产生的数据是混沌的,从而验证了设计的正确性。