基于DSP Builder的腦電信號(hào)小波處理
1 引言
腦電信號(hào)EEG(Electroencephalograph)是人體一種基本生理信號(hào),具有重要的臨床診斷和醫(yī)療價(jià)值。南于腦電信號(hào)自身具有非平穩(wěn)性隨機(jī)的特點(diǎn),因此,對(duì)其實(shí)時(shí)濾波具有相當(dāng)難度。自從Berger 1929年發(fā)現(xiàn)腦電信號(hào)以來,人們采用多種數(shù)字信號(hào)處理技術(shù)處理分析腦電信號(hào),由于傳統(tǒng)的濾波去噪方法所用濾波器一般具有低通特性,因此采用經(jīng)典濾波法對(duì)非平穩(wěn)信號(hào)去噪,降低噪聲,展寬波形,平滑信號(hào)中突變尖峰的成分,但可能損失這些突變點(diǎn)攜帶的重要信息,而傅里葉頻譜分析僅是一種純頻率分析方法,該方法對(duì)時(shí)變的非平穩(wěn)腦電信號(hào)無效。
與傳統(tǒng)的傅里葉變換相比較,小波變換是一種多尺度信號(hào)分析方法,具有良好的時(shí)頻局部化特性,非常適合分析非平穩(wěn)信號(hào)的瞬態(tài)特性和時(shí)變特性,這正是分析 EEG所需要的,EEG中許多病變都是以瞬態(tài)形式表現(xiàn)的。只有結(jié)合時(shí)間和頻率進(jìn)行處理,才能取得更好效果。但小波分解每次只分解上次分解的低頻部分,而不分解高頻部分,所以高頻段分辨率較差。而小波包分解是一種從小波分解延伸出的更細(xì)致的分解和重構(gòu)信號(hào)的方法,它不但分解低頻部分,而且還能二次分解高頻部分,能夠很好地將頻率分辨率調(diào)整到與腦電節(jié)律特性相一致,因此小波包分解具有更好的濾波特性。若將小波包方法引入腦電信號(hào)分析.不僅可以克服傳統(tǒng)腦電分析的不足.還可以改進(jìn)Mallat算法分析實(shí)際腦電中的不足。
腦電信號(hào)的數(shù)字處理以往采用通用PC機(jī)或單片機(jī)實(shí)現(xiàn),存在實(shí)時(shí)性差等缺點(diǎn)。隨之,基于FPGA的小波變換在腦電信號(hào)數(shù)字處理中應(yīng)運(yùn)而生,其實(shí)時(shí)性好。 DSP Builder將Matlab/Simulink設(shè)計(jì)仿真工具的算法開發(fā)、模擬和驗(yàn)證功能和Quartus II軟件的HDL綜合、模擬和驗(yàn)證功能相結(jié)合,為小波變換的FPGA提供良好的平臺(tái)。
2 一維離散小波(1D-DWT)Mallat改進(jìn)算法
多分辨率分析是小波分析的核心理論,其Mallat算法是信號(hào)小波分解和重構(gòu)的常用算法。正交小波的分解和重構(gòu)公式由尺度函數(shù)的尺度方程系數(shù)確定。假設(shè)構(gòu)造正交小波的尺度函數(shù)φ(t)的兩尺度方程為:
式中,g(n)=(-1)n-1h(2N-n-1),N為自然數(shù)常數(shù)。[!--empirenews.page--]
設(shè)信號(hào)為:
由于φ(-t)和φ(t-s)為構(gòu)造正交小波的多分辨率分析尺度函數(shù),因此上述分解和重構(gòu)公式中取h(n)為h(-n)或h(n-s)均可。為了討論方便,且不失一般性,可將上述分解公式和重構(gòu)公式重寫為:
帶入式(9)得:
則c0(k)=c0(k-2N-1),式(13)得到的信號(hào)是式(12)得到信號(hào)的延遲。由于序列h(n)和g(n)為因果序列,所以式(13)對(duì)應(yīng)的濾波器為因果濾波器。采用式(7)和式(8)繼續(xù)分解信號(hào)低頻分量或低頻分量與高頻分量.可得多級(jí)分解或小波包分解。
3 基于DSP Builder的小波變換設(shè)計(jì)實(shí)現(xiàn)
考慮到瞬態(tài)脈沖信號(hào)的短時(shí)性,選擇具有緊支集的Daubenchies小波作為分析小波,這樣有利于突出瞬態(tài)信號(hào)特征,DB小波函數(shù)具有良好的正交性和緊支撐性,可較好地表現(xiàn)頻域信號(hào)的連續(xù)性和突變性,在實(shí)際工程應(yīng)用中效果較好。故這里采用DB小波對(duì)腦電信號(hào)進(jìn)行4級(jí)分解重構(gòu)。濾除腦電信號(hào)中存在的直流成分或緩慢基線漂移。選取DB2小波,此時(shí)M=3,且低通濾波系數(shù)(尺度函數(shù)系數(shù))如下:
由于浮點(diǎn)數(shù)在FPGA中實(shí)現(xiàn)比較復(fù)雜,為了減少FPGA的運(yùn)算量和資源,可將濾波計(jì)算轉(zhuǎn)換為整數(shù)運(yùn)算和移位運(yùn)算,為此首先需將以上濾波器系數(shù)轉(zhuǎn)化為整數(shù),對(duì)每個(gè)濾波器系數(shù)采用16位字長進(jìn)行量化,即乘以215后取整數(shù),而對(duì)濾波器的輸出信號(hào)有移15位即得到實(shí)際輸出。
以DSP Builder為平臺(tái),對(duì)式(7)、式(8)和式(13)算法進(jìn)行系統(tǒng)級(jí)建模、仿真,再利用Signal Compiler生成HDL文件,然后利用Quartus II進(jìn)行時(shí)序仿真驗(yàn)證。
3.1 DSP Builder實(shí)現(xiàn)lD-DWT分解
分解模塊的結(jié)構(gòu)如圖1所示。信號(hào)并行從4級(jí)延遲線輸出,與FIR濾波器系數(shù)進(jìn)行卷積,然后再偶抽取便可得到近似部分和細(xì)節(jié)部分的結(jié)果。二次抽取模塊采用DSP Builder的下采樣模塊,利用Signal Compiler生成HDL文件。
為了減少系統(tǒng)耗用的硬件資源,舍去輸出結(jié)果的低8位,保證分解前后信號(hào)保持同樣能量級(jí)。從圖1中可知,各個(gè)子模塊并行工作,子模塊之間無需任何交叉信號(hào),數(shù)據(jù)從輸入端以流水線的方式向后傳遞,實(shí)現(xiàn)實(shí)時(shí)流水線工作。二級(jí)分解模塊的設(shè)計(jì)原理同一級(jí)分解模塊。[!--empirenews.page--]
3.2 DSP Builder實(shí)現(xiàn)1D-DWT重構(gòu)
由Mallat算法可知重構(gòu)模塊的結(jié)構(gòu)如圖2所示。首先對(duì)信號(hào)二次插值,然后信號(hào)并行從四級(jí)延遲線輸出,分別與FIR濾波器系數(shù)進(jìn)行卷積,與分解不同的是重構(gòu)有兩路信號(hào)輸入,經(jīng)過四級(jí)延遲后并行分別與FIR濾波器卷積,得到的結(jié)果再疊加便可得到重構(gòu)信號(hào),接著利用Signal Compiler生成HDL文件,重構(gòu)模塊也是以流水線方式工作的。二次捕值模塊由DSP Builder的上采樣模塊實(shí)現(xiàn)。
4 仿真與設(shè)計(jì)
選定一組原始數(shù)據(jù)[1,2,3,4,5,6,7,8,9,10,11…],同時(shí)作為輸入信號(hào),利用圖1生成的HDL文件,在Quartus II環(huán)境下時(shí)序仿真,圖3為一級(jí)小波分解時(shí)序仿真波形。利用圖2生成的HDL文件,同時(shí)把圖3低頻高頻的輸出結(jié)果作為重構(gòu)輸入數(shù)據(jù),進(jìn)行一級(jí)小波重構(gòu)仿真,仿真波形如圖4所示。由圖3、圖4可以看出,重建后波形除有延遲外,其重建波形無失真,并能完美重構(gòu)原信號(hào),即輸入、輸出滿足q(n)=xin(n- k)。
利用小波變換的多尺度分解和重構(gòu)方法濾除信號(hào)的某些成分(高頻或低頻),采用DB2小波對(duì)腦電信號(hào)進(jìn)行四級(jí)小波包分解,按照小波包分解原理,級(jí)聯(lián)一級(jí)分解模塊,每經(jīng)一次分解輸入的一串?dāng)?shù)據(jù)降為原來的一半.采用分頻模塊控制各級(jí)時(shí)鐘信號(hào),分頻模塊由VHDL語言編寫生成.同步輸出3個(gè)時(shí)鐘信號(hào),以此作為后三級(jí)分解的時(shí)鐘輸入信號(hào)。然后對(duì)分解后的輸出信號(hào)進(jìn)行四級(jí)小波包重構(gòu),按同樣方式處理,級(jí)聯(lián)一級(jí)重構(gòu)模塊,每重構(gòu)一次輸出數(shù)據(jù)都增為原來的2倍。嘗試采用鎖相環(huán)控制各級(jí)時(shí)鐘信號(hào),鎖相環(huán)由Quartus II自帶的功能模塊實(shí)現(xiàn),同時(shí)輸出3個(gè)倍頻時(shí)鐘信號(hào),作為后i級(jí)重構(gòu)部分的輸入時(shí)鐘信號(hào)。
5 結(jié)論
利用信號(hào)的小波包分解高分辨率的時(shí)頻關(guān)系.在濾波部分選取因果濾波器對(duì)腦電信號(hào)進(jìn)行實(shí)時(shí)濾波。在DSP Builder平臺(tái)上,結(jié)合Mallat算法和模塊化設(shè)計(jì)原則,設(shè)計(jì)出基于FPGA的流水線結(jié)構(gòu)小波變換系統(tǒng),這種自上而下的高度模塊化設(shè)計(jì)方法使得系統(tǒng)的升級(jí)改動(dòng)相當(dāng)方便,將這種基于FPGA的小波變換系統(tǒng)設(shè)計(jì)應(yīng)用于腦電信號(hào)的實(shí)時(shí)濾波,是今后的研究方向。