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