施永豪+劉聰
【摘 要】小波分析可以對(duì)非平穩(wěn)信號(hào)進(jìn)行多種類型的分辨率采樣分析。為能夠進(jìn)行實(shí)時(shí)處理,本文以SEED-DEC6713V2.1開發(fā)板為硬件平臺(tái),用C語言編程實(shí)現(xiàn)長序列小波分析的快速分解與重構(gòu)算法,在CCS3.3仿真環(huán)境下實(shí)現(xiàn)了某一非平穩(wěn)信號(hào)的小波分析。仿真結(jié)果表明C6713芯片配合本文的軟件能夠很好的完成信號(hào)實(shí)時(shí)處理任務(wù)。
【關(guān)鍵詞】DSP;小波分析快速算法;C語言
傅立葉變換在頻域表現(xiàn)出良好的特性,而在時(shí)域無任何定位信息,主要應(yīng)用是針對(duì)平穩(wěn)信號(hào)。而在實(shí)際應(yīng)用中存在大量非平穩(wěn)信號(hào)需要我們分析處理,需要考察時(shí)域和頻域的對(duì)應(yīng)關(guān)系,對(duì)此,傅立葉分析就無能為力。小波變換以其良好的時(shí)域和頻域分析性能,可以實(shí)現(xiàn)對(duì)分析對(duì)象的任意細(xì)節(jié)分析,被譽(yù)為“數(shù)學(xué)顯微鏡”。由于小波變換算法的復(fù)雜度較大,如果直接計(jì)算小波變換,現(xiàn)階段微處理器芯片運(yùn)算速度實(shí)現(xiàn)實(shí)時(shí)處理有一定難度。為優(yōu)化計(jì)算流程,出現(xiàn)多種小波變換的快速算法,提高了其應(yīng)用的可行性,本文是基于某種長序列小波變換快速算法[2]的實(shí)現(xiàn)與仿真。
一、小波分析基本原理
小波分析是一種自適應(yīng)時(shí)頻分析法,小波分析能同時(shí)實(shí)現(xiàn)時(shí)頻兩域的信號(hào)分析,在計(jì)算機(jī)上采用多分辨率分析的小波快速算法,使得小波分析有效性得以提高。小波快速算法包括分解和重構(gòu)兩個(gè)過程。分解算法實(shí)現(xiàn)原始信號(hào)的低頻和高頻分離,之后將得到的低頻成分進(jìn)一步分解為低頻信號(hào)和高頻信號(hào),以此逐步進(jìn)行,實(shí)現(xiàn)原始信號(hào)的多層次分解[1],分解公式表述如下:
c是低頻成分,d是高頻成分,h和g分別為低通濾波器系數(shù)和高通濾波器系數(shù)。
小波重構(gòu)是將分解得到的各級(jí)低頻和高頻成分加權(quán)疊加重構(gòu)為上級(jí)的低頻信號(hào)成分,進(jìn)而可以提高非平穩(wěn)信號(hào)的精度,從而減少重構(gòu)信號(hào)與原始信號(hào)誤差??焖僦貥?gòu)依據(jù)下述公式進(jìn)行:
(2)
小波快速算法為我們采用計(jì)算機(jī)軟件編程提供了理論依據(jù)。本文以合眾達(dá)SEED-DEC6713 V2.1開發(fā)板為硬件平臺(tái),用C語言編程來實(shí)現(xiàn)長序列的小波變換的快速分解與重構(gòu)。
二、非平穩(wěn)信號(hào)小波分析的DSP仿真
SEED-DEC6713V2.1開發(fā)板以TI公司的TMS320C6713芯片為核心,DSP處理器的特殊硬件結(jié)構(gòu)及特有的運(yùn)算周期適合實(shí)現(xiàn)小波分析的快速算法。為使分析與重構(gòu)算法的有效性和可靠性得以保證,本文在CCS3.3環(huán)境下對(duì)算法進(jìn)行仿真,仿真過程中主要建立了以下數(shù)據(jù)處理單元:仿真文件建立單元、DSP初始化單元、映射存儲(chǔ)器配置單元[3][4]和快速分解和重構(gòu)單元。其總的軟件流程圖如圖1所示。
快速分解和重構(gòu)數(shù)據(jù)處理單元肩負(fù)著實(shí)現(xiàn)小波快速分解和重構(gòu)的重任,是軟件核心。在此特給出快速分解數(shù)據(jù)單元的C語言程序偽代碼:
For(L_ID=1; L_ID<=L_Nuber; L_ID++)
{采樣數(shù)據(jù)邊界延拓單元; p_Tp=pSr-B+1;
//*應(yīng)用重疊保留法得到展寬數(shù)據(jù)和濾波器單元的卷積
for(j=1;j<=S_N;j++)
{ 數(shù)據(jù)送到計(jì)算區(qū)處理程序;
卷積計(jì)算程序;
計(jì)算結(jié)果存儲(chǔ)到目的區(qū)程序;
p_Tp= P_Tp -B+1;
//指針指向下一分段數(shù)據(jù)的始點(diǎn)}
ScL=(ScL+B-1)/2;
//下層待分解數(shù)據(jù)源長度
圖2 原始信號(hào) 圖3小波分解的低頻分量
圖4 第二層高頻分量 圖5 第一層高頻分量
/*為下級(jí)分解做準(zhǔn)備
p_Tp2=p_Sc; p_Sc=p_D;
p_D=p_Tp2; //更換指針
p_Sc_E=p_Sc+SrcL+B-1;
}
快速重構(gòu)處理程序的實(shí)現(xiàn)。首先要對(duì)進(jìn)行重構(gòu)的低頻和高頻信息進(jìn)行上采樣,將得到的數(shù)據(jù)存到新的數(shù)據(jù)緩沖區(qū),其偽代碼表述為:
p_Tp2=p_D;
//指針指向數(shù)據(jù)處理去,作為起點(diǎn)
for(i=0; i { *( p_Tp2++)=0; //奇數(shù)補(bǔ)0值 *( p_Tp2++)=*(p_Sc+i);} * p_Tp2)=0; //最后一位多補(bǔ)一個(gè)0 交換數(shù)據(jù)指針,將計(jì)算結(jié)果存放新的數(shù)據(jù)區(qū),將上采樣得到的數(shù)據(jù)邊界展寬,采用重疊保留法計(jì)算展寬之后數(shù)據(jù)與重構(gòu)濾波器單元的卷積,實(shí)現(xiàn)過程與分解過程進(jìn)本一致。區(qū)別在于,存儲(chǔ)數(shù)據(jù)時(shí),每層重構(gòu)的第一個(gè)單元前面去掉的個(gè)數(shù)多一個(gè)數(shù)據(jù)點(diǎn),該過程的C語言偽代碼如下: if(k==1) //i為分段標(biāo)記 S_aB_e=(B-1+T_r)*2; /首個(gè)單元需多去掉一些數(shù)據(jù) else S_aB_e =(B-1)*2; //其他數(shù)據(jù)單元去掉的數(shù)據(jù)數(shù) for(n= S_aB_e;n { …… } 將采集的非穩(wěn)態(tài)數(shù)據(jù)信號(hào)導(dǎo)入到CCS3.3中,調(diào)入到仿真程序中,采用十六進(jìn)制Q15定點(diǎn)格式顯示仿真結(jié)果,如圖2-圖5所示。本文對(duì)采集的非穩(wěn)態(tài)信號(hào)進(jìn)行二重分解,圖2是采集的原始信號(hào),圖3-圖5依次為分解得到的低頻分量,第二層高頻分量和第一層高頻分量。分解后的低頻分量包含原信號(hào)的基本特征,高頻分量包含原信號(hào)在傳播過程中所受干擾引起的突變。因此,依據(jù)高頻信號(hào)分量的特點(diǎn),能判斷出干擾信號(hào)出現(xiàn)的時(shí)刻、頻率及原始信號(hào)發(fā)生畸變的時(shí)刻和頻率。 三、結(jié)論 本文以合眾達(dá)SEED-DEC6713V2.1開發(fā)板為硬件平臺(tái),編程實(shí)現(xiàn)了長序列信號(hào)的小波快速分解和重構(gòu),并對(duì)算法進(jìn)行了驗(yàn)證。通過對(duì)采集非穩(wěn)態(tài)信號(hào)的實(shí)測(cè),驗(yàn)證了小波快速算法在DSP上實(shí)現(xiàn)的有效性和可靠性。結(jié)果表明,小波快速分解和重構(gòu)算法在DSP器件中的實(shí)現(xiàn)具有較高的實(shí)際應(yīng)用價(jià)值。 參考文獻(xiàn): [1]程正興.小波分析算法及應(yīng)用[M].西安:西安交通大學(xué)出版社,1998. [2]呂新華.一種長序列小波變換的快速實(shí)現(xiàn)方法[J].數(shù)據(jù)采集與處理,2006,21(1):86-89. [3] TMS320C6713, TMS320C6713B FLOATING-POINT DIGITAL SIGNAL PROCESSORS SPRS186I DECEMBER 2001 REVISED MAY 2004 [4]何正友.小波分析講稿.成都:西南交通大學(xué),2010. [5]于德介,成瓊,程軍圣.基于復(fù)解析小波變換的瞬時(shí)頻率分析方法[J]. 振動(dòng)與沖擊, 2004, 23(1): 108-110.