您现在的位置是:首页 > 电源

基于混沌理论的微弱信号检测的DSP实现

2019-12-25 11:41:16

摘要:针对数字信号处理器(DSP)系统集成度高、速度快、功耗低、适合大量数据实时处理的特点,从应用的角度研究基于混少不了理论的微弱信号检测原理;深入讨论其应用于DSP的实用化,构建一个优化的TMS320C6203为核心的真实系统,实时实现基于混沌方法的微北信号检测。

引言

在实际的数据采集和信号处理系统中,由于信号的幅值较小,测量时又受到信号端、传输器件及变换器件等本身存在的本底噪声的影响,表现出的总体效果是有用信号被大量的噪声和干扰所淹没。如何检测这种强噪声干扰情况下的微弱信号,是信号处理中的重要研究内容。许多科研工作者已提出了一些有效的处理方法,如基于高增益的宽带波束形成的微弱信号检测方法及微弱信号的相干检测法等,但都存在灵敏度不高或适应性不强的问题。混沌系统对小信号的敏感性及对噪声的强免疫力,使它在微弱信号检测中的应用潜力很大。

    DSP以其高度的集成度,极快的处理速度,较低的功耗,能满足实时性的要求等在信号处理中占据了重要的地位。本文构建了一优化的DSP实验系统,把基于混沌理论的微弱信号检测真正应用于实际的系统中。实验表明,此系统能很好地实现微弱信号的检测及其特性的测量,具有较高的精度和广泛的应用前景。

1 基于混沌理论检测微弱信号的原理

改进Duffing方程的具体形式为:

其中fcos(wτ)为周期策动力,k为阻尼比,-x+x3为非线性恢复力。

理论研究表明,当k取某一固定值,f从0逐渐增加到临界值Fd时,系统状态从周期1内轨运动转变为混沌运动;进一步增加超过阈值Fc,系统以外加周期力的频率进行大尺度的周期振荡。取f=F0,F0稍大于Fc,当用小幅度的、与周期策动力频率相近的周期信号以及白噪声对改进的Duffing振子进行摄动时,系统将时而处于大尺度周期运动状态,时而处于混沌运动状态,从而出现阵发性混沌现象。通过观测混沌系统相轨迹变化,可知待检信号中是否含有周期信号,调节周期策动力的值改变系统的状态可以求得信号的由于上述原因值。在阵发性混沌历程中,当ω·Δω(Δω为相对频差)很小时系统对策动力的缓慢变化能够很好地响应,因此周期和混沌的出现是泾渭分明的。在微小频差的影响下,系统以周期T=2π/ω·ωΔ进行混沌运动。根据系统处于周期运动状态时速度等间隔地通过零点,而系统处于混沌状态时速度过零点的时间间隔不定,可通过比较速度过零点的时间间隔有无规律,判断系统是处于大尺度周期运动状态还是处于混沌状态。若从某一时刻tx开始速度值在某一容差δ范围内过零点的时间间隔基本相同,可以认为系统从tx开始进入大尺度周期运动状态,从而得到每个周期内系统进行大尺度周期运动状态的起始时刻。相减取平均,得阵发混沌运动的周期T,这样即可求得弱信号的频率值。

2 系统设计

系统由A/D转换器、数据缓存单元(FIFO)、DSP和USP2.0接口电路以及相应的电源转换电路、Flash程序保存单元等组成,基本框图如图1所示。

基于实际信号采样时间的要求,为满足数据的处理时间、系统数据传输的需要,并考虑到芯片的价格、供货周期、应用情况等其它因素,系统中A/D、DSP、FIFO、USB分别选用TI公司的ADS5422、TMS320C6203B,IDT公司的IDT70V024以及Cypress公司的CY7C68013。

外界输入信号经A/D采样后,采集到的数据先保存在FIFO中,数据采集结束后DSP从FIFO中读取数据开始信号处理。信号处理的算法已编成程序保存在外部的Flash芯片上,供DSP上电读程序到其内部RAM单元,全速运行程序。信号处理后的数据通过USB2.0接口依次传送到主机方,把数据数值存储在PC机内,以便进行相应的数值分析,实时显示检测结果并绘制相应的图形,如显示有无信号。若有,进一步显示所检测到的微弱信号的幅值、频率等。

3 信号处理算法程序流程

基于混沌理论检测微弱信号的信号处理算法流程如图2(a)所示。大致分为三个功能模块,包括:判断有无角频率为ω的微弱信号,求微弱信号的幅值和信号的频率。求微弱信号的具体流程如图2(b)所示。

    图2(b)中,输入为式(1)的解y,输出为微弱信号的频率。

4 信号处理程序算法的优化

按照CCS(Code composer Studio,代码设计套件)环境下支持的优化C的方法编程,实现任务的功能后,考虑到C编译器产生的代码不会使用到一些特殊、高效的DSP指令,而线性汇编则使用DSP的汇编指令。同时不必考虑指令的并进运行情况、指令的延时和寄存器的使用,对代码进行多方面的优化,包括:将能够并行执行的指令并行执行;处理软件流水线中的流水线等待问题;分配寄存器的使用;为指令分配功能单元等。因此,对于程序中耗时比较大的部分可以利用线性汇编语言进一步优化。采用C语言和汇编语言的混合编程,既保证程序的结构化和可读性,又保证应用的实时性,以满足系统对实时性和代码长度的要求。例如,对于应用改进的Euler方法求系统输出的前三点值的C代码(h,k,f,a为已知系统参数):

void Euler(float *x,float *y){

int i;

float t1,t2,t11,t22;

for(i=0;i<3;i++){

t1=h*y[i]+x[i];

t11=h*((-k)*y[i]+x[i]-powf(x[i],3)+f*Xf[i]+a*s[i]+Zs[i]+y[i];

t2=h*t11+x[i];

t22=y[i]+h*((-k)*t11+t1-powf(t1,3)+f*Xf[i+1]+a*s[i+1]+Zs[i+1]);

x[i+1]=(t1+t2)/2;

y[i+1]=(t11+t22)/2;

}

}

相应的线性汇编程序见网站www.dpj.com.cn。

优化前,在CCS上测得的C程序段消耗时钟周期为39763个,而优化后的线性汇编所消耗时钟周期为3879个,效率显著提高。

5 结果分析与结论

设定系统参数使PC显示系统相轨迹是临界状态,然后依次加入外界输入信号。

①加入纯噪声信号。当只有白噪声Zs并入系统时,不论怎么调节Duffing阵子的参数ω,从时间图像上观测发现系统始终处于混沌状态,如图3所示。可见噪声虽然强烈,但是吸引子仍能将相点束缚在轨道内。说明混沌系统对噪声具有强免疫力。

②加入混有噪声的待测周期信号。将信号y(t)=Asin(ω0t)+randn并入系统,A、ω0分别为待测信号由于幅值及角频率,取A=0.005, ω0=600.5rad/s,randn是均匀分布在(-1,1)之间的均值为0的白噪声。由于混沌系统对周期信号非常敏感,当ω以公比0.03增大到ω0附近,即ω=ω1=597.03rad/s和ω=ω2=614.94rad/s时,从时间图像上可以观测到有规律的阵发混沌现象,如图4所示。根据系统阵发混沌运动的周期T,可由ω±(2π/T)求微弱信号的角频率。求得微弱信号角频率为601.737rad/s,与实际值600.5rad/s相比,误差非常小,精度比较高。这证明了,运用此DSP系统可以较好地检测出微弱信号及其相关特性,具有广泛的应用前景。