基于混沌理論的微弱信號檢測的DSP實現(xiàn)
引言
在實際的數(shù)據(jù)采集和信號處理系統(tǒng)中,由于信號的幅值較小,測量時又受到信號端、傳輸器件及變換器件等本身存在的本底噪聲的影響,表現(xiàn)出的總體效果是有用信號被大量的噪聲和干擾所淹沒。如何檢測這種強噪聲干擾情況下的微弱信號,是信號處理中的重要研究內(nèi)容。許多科研工作者已提出了一些有效的處理方法,如基于高增益的寬帶波束形成的微弱信號檢測方法及微弱信號的相干檢測法等,但都存在靈敏度不高或適應性不強的問題。混沌系統(tǒng)對小信號的敏感性及對噪聲的強免疫力,使它在微弱信號檢測中的應用潛力很大。
DSP以其高度的集成度,極快的處理速度,較低的功耗,能滿足實時性的要求等在信號處理中占據(jù)了重要的地位。本文構(gòu)建了一優(yōu)化的DSP實驗系統(tǒng),把基于混沌理論的微弱信號檢測真正應用于實際的系統(tǒng)中。實驗表明,此系統(tǒng)能很好地實現(xiàn)微弱信號的檢測及其特性的測量,具有較高的精度和廣泛的應用前景。
1 基于混沌理論檢測微弱信號的原理
改進Duffing方程的具體形式為:
其中fcos(wτ)為周期策動力,k為阻尼比,-x+x3為非線性恢復力。
理論研究表明,當k取某一固定值,f從0逐漸增加到臨界值Fd時,系統(tǒng)狀態(tài)從周期1內(nèi)軌運動轉(zhuǎn)變?yōu)榛煦邕\動;進一步增加超過閾值Fc,系統(tǒng)以外加周期力的頻率進行大尺度的周期振蕩。取f=F0,F0稍大于Fc,當用小幅度的、與周期策動力頻率相近的周期信號以及白噪聲對改進的Duffing振子進行攝動時,系統(tǒng)將時而處于大尺度周期運動狀態(tài),時而處于混沌運動狀態(tài),從而出現(xiàn)陣發(fā)性混沌現(xiàn)象。通過觀測混沌系統(tǒng)相軌跡變化,可知待檢信號中是否含有周期信號,調(diào)節(jié)周期策動力的值改變系統(tǒng)的狀態(tài)可以求得信號的由于上述原因值。在陣發(fā)性混沌歷程中,當ωΔω(Δω為相對頻差)很小時系統(tǒng)對策動力的緩慢變化能夠很好地響應,因此周期和混沌的出現(xiàn)是涇渭分明的。在微小頻差的影響下,系統(tǒng)以周期T=2π/ωωΔ進行混沌運動。根據(jù)系統(tǒng)處于周期運動狀態(tài)時速度等間隔地通過零點,而系統(tǒng)處于混沌狀態(tài)時速度過零點的時間間隔不定,可通過比較速度過零點的時間間隔有無規(guī)律,判斷系統(tǒng)是處于大尺度周期運動狀態(tài)還是處于混沌狀態(tài)。若從某一時刻tx開始速度值在某一容差δ范圍內(nèi)過零點的時間間隔基本相同,可以認為系統(tǒng)從tx開始進入大尺度周期運動狀態(tài),從而得到每個周期內(nèi)系統(tǒng)進行大尺度周期運動狀態(tài)的起始時刻。相減取平均,得陣發(fā)混沌運動的周期T,這樣即可求得弱信號的頻率值。
2 系統(tǒng)設(shè)計
系統(tǒng)由A/D轉(zhuǎn)換器、數(shù)據(jù)緩存單元(FIFO)、DSP和USP2.0接口電路以及相應的電源轉(zhuǎn)換電路、Flash程序保存單元等組成,基本框圖如圖1所示。
基于實際信號采樣時間的要求,為滿足數(shù)據(jù)的處理時間、系統(tǒng)數(shù)據(jù)傳輸?shù)男枰?,并考慮到芯片的價格、供貨周期、應用情況等其它因素,系統(tǒng)中A/D、DSP、FIFO、USB分別選用TI公司的ADS5422、TMS320C6203B,IDT公司的IDT70V024以及Cypress公司的CY7C68013。
外界輸入信號經(jīng)A/D采樣后,采集到的數(shù)據(jù)先保存在FIFO中,數(shù)據(jù)采集結(jié)束后DSP從FIFO中讀取數(shù)據(jù)開始信號處理。信號處理的算法已編成程序保存在外部的Flash芯片上,供DSP上電讀程序到其內(nèi)部RAM單元,全速運行程序。信號處理后的數(shù)據(jù)通過USB2.0接口依次傳送到主機方,把數(shù)據(jù)數(shù)值存儲在PC機內(nèi),以便進行相應的數(shù)值分析,實時顯示檢測結(jié)果并繪制相應的圖形,如顯示有無信號。若有,進一步顯示所檢測到的微弱信號的幅值、頻率等。
3 信號處理算法程序流程
基于混沌理論檢測微弱信號的信號處理算法流程如圖2(a)所示。大致分為三個功能模塊,包括:判斷有無角頻率為ω的微弱信號,求微弱信號的幅值和信號的頻率。求微弱信號的具體流程如圖2(b)所示。
4 信號處理程序算法的優(yōu)化
按照CCS(Code composer Studio,代碼設(shè)計套件)環(huán)境下支持的優(yōu)化C的方法編程,實現(xiàn)任務的功能后,考慮到C編譯器產(chǎn)生的代碼不會使用到一些特殊、高效的DSP指令,而線性匯編則使用DSP的匯編指令。同時不必考慮指令的并進運行情況、指令的延時和寄存器的使用,對代碼進行多方面的優(yōu)化,包括:將能夠并行執(zhí)行的指令并行執(zhí)行;處理軟件流水線中的流水線等待問題;分配寄存器的使用;為指令分配功能單元等。因此,對于程序中耗時比較大的部分可以利用線性匯編語言進一步優(yōu)化。采用C語言和匯編語言的混合編程,既保證程序的結(jié)構(gòu)化和可讀性,又保證應用的實時性,以滿足系統(tǒng)對實時性和代碼長度的要求。例如,對于應用改進的Euler方法求系統(tǒng)輸出的前三點值的C代碼(h,k,f,a為已知系統(tǒng)參數(shù)):
void Euler(float *x,float *y){
int i;
float t1,t2,t11,t22;
for(i=0;i3;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;
}
}
相應的線性匯編程序見網(wǎng)站www.dpj.com.cn。
優(yōu)化前,在CCS上測得的C程序段消耗時鐘周期為39763個,而優(yōu)化后的線性匯編所消耗時鐘周期為3879個,效率顯著提高。
5 結(jié)果分析與結(jié)論
設(shè)定系統(tǒng)參數(shù)使PC顯示系統(tǒng)相軌跡是臨界狀態(tài),然后依次加入外界輸入信號。
①加入純噪聲信號。當只有白噪聲Zs并入系統(tǒng)時,不論怎么調(diào)節(jié)Duffing陣子的參數(shù)ω,從時間圖像上觀測發(fā)現(xiàn)系統(tǒng)始終處于混沌狀態(tài),如圖3所示??梢娫肼曤m然強烈,但是吸引子仍能將相點束縛在軌道內(nèi)。說明混沌系統(tǒng)對噪聲具有強免疫力。
②加入混有噪聲的待測周期信號。將信號y(t)=Asin(ω0t)+randn并入系統(tǒng),A、ω0分別為待測信號由于幅值及角頻率,取A=0.005, ω0=600.5rad/s,randn是均勻分布在(-1,1)之間的均值為0的白噪聲。由于混沌系統(tǒng)對周期信號非常敏感,當ω以公比0.03增大到ω0附近,即ω=ω1=597.03rad/s和ω=ω2=614.94rad/s時,從時間圖像上可以觀測到有規(guī)律的陣發(fā)混沌現(xiàn)象,如圖4所示。根據(jù)系統(tǒng)陣發(fā)混沌運動的周期T,可由ω(2π/T)求微弱信號的角頻率。求得微弱信號角頻率為601.737rad/s,與實際值600.5rad/s相比,誤差非常小,精度比較高。這證明了,運用此DSP系統(tǒng)可以較好地檢測出微弱信號及其相關(guān)特性,具有廣泛的應用前景。
評論