[關(guān)鍵詞]EEG;FIR;FFT;STM32
腦電波(EEG)是一種使用電生理指標記錄大腦活動的方法。大腦活動時會產(chǎn)生微弱腦電信號,這些生理電信號一般在0.5~30Hz,如β波信號頻段在13.0~30Hz,振幅為5~20μV[1]。當受試者大腦皮層興奮時,腦電信號中β波出現(xiàn)明顯波動特征。此時腦機終端設(shè)備可通過研判β波信號特征(如振幅、相位、頻率),判讀受試者意識狀態(tài),以為應(yīng)用場景提供判斷依據(jù)[2]。
1 腦機終端設(shè)備應(yīng)用系統(tǒng)設(shè)計
腦機終端設(shè)備使用電極采集EEG信號,隨后對EEG信號進行放大、濾波和快速傅里葉變換,得到信號幅頻特性,在頻域?qū)EG信號進行分析和感知,將分析結(jié)果關(guān)聯(lián)到應(yīng)用端。
1.1 腦機終端設(shè)備應(yīng)用系統(tǒng)組成
腦機終端設(shè)備應(yīng)用系統(tǒng)主要由腦機終端設(shè)備和物聯(lián)網(wǎng)云平臺組成,應(yīng)用系統(tǒng)組成架構(gòu)如圖1所示。
1.2 單元模塊作用
(1)腦電極。通過腦電極拾取受試者EEG原始信號[3]。
(2)EEG信號調(diào)理電路。拾取到的信號經(jīng)過過壓保護、阻抗匹配和前置濾波等信號調(diào)理后送至模擬前端單元。
(3)模擬前端。使用ADS1299集成芯片對EEG信號進行濾波、放大、模數(shù)轉(zhuǎn)換后使用SPI協(xié)議將采樣到的數(shù)據(jù)傳給微控器單元分析處理。
(4)微控器。主要完成對ADS1299的控制,讀取ADS1299中EEG信號采樣數(shù)據(jù),通過算法實現(xiàn)腦波信號特征提取。
(5)執(zhí)行單元。常用的一些執(zhí)行機構(gòu),依據(jù)腦波信號特征提取結(jié)果,實現(xiàn)控制功能。
(6)物聯(lián)網(wǎng)云平臺。在APP上可進行EEG信號采樣數(shù)據(jù)分析和處理結(jié)果瀏覽。
1.3 信號采集系統(tǒng)工作過程
受試者正確佩戴好腦電極后,腦電信號通過電極帽經(jīng)預處理電路進入模擬前端,ADS1299對EEG信號進行放大和數(shù)字化后得到EEG數(shù)據(jù),單片機讀取EEG數(shù)據(jù),通過算法對數(shù)據(jù)中腦波狀態(tài)進行感知,判斷受試者當前所處的狀態(tài),如清醒放松、警覺思考、深度睡眠等。分析結(jié)果通過顯示模塊進行顯示,并關(guān)聯(lián)到執(zhí)行單元,實現(xiàn)控制功能。
2 FIR濾波器設(shè)計
EEG信號極其微弱,在采集過程中易受到來自設(shè)備與頭發(fā)摩擦產(chǎn)生的噪聲、接觸噪聲、設(shè)備本底噪聲等的干擾。在復雜背景噪聲中提取微弱的腦電信號,高性能濾波器尤為重要。考慮濾波系統(tǒng)的穩(wěn)定性,采用(FiniteimpulseResponse,F(xiàn)IR)數(shù)字濾波器。
2.1 FIR濾波器的基本結(jié)構(gòu)
數(shù)字濾波器的本質(zhì)就是將輸入序列(采樣值)通過一定的運算后輸出,達到濾波目的。對式(1)進行Z變換后經(jīng)過整理可得FIR濾波器的傳遞函數(shù)H(z)為:
式中,ω為角頻率,ω1和為ω2為帶通濾波器上下限角頻率,τ為固定單位沖激響應(yīng)長度的一半。
由傅里葉變換的逆變換可知此濾波器的單位沖激響應(yīng)hd(n)為:
2.2 線性相位FIR帶通濾波器設(shè)計
(1)FIR帶通濾波器設(shè)計指標。腦機終端設(shè)備主要用于識別腦電波中的β波,其信號頻段在13.0~30Hz。設(shè)定FIR帶通濾波器性能指標如下:采樣頻率512Hz,角頻率Ωs=2π×512(rad/sec);通頻帶范圍為13~30Hz,下限角頻率Ωp=2π×30(rad/sec);下限阻帶起始頻率59Hz,角頻率Ωst=2π×59(rad/sec),要求阻帶內(nèi)衰減不小于-50dB。
(2)數(shù)字頻率。通帶下限截止頻率ωp=2πΩp/Ωs=0.117π;下阻帶起始頻率ωst=2πΩst/Ωs=0.230π;過渡帶寬Δω=2π(Ωst-Ωp)/Ωs=0.113π。選用海明窗后其過渡帶最小衰減為﹣53dB,滿足設(shè)計阻帶衰減要求。海明窗過渡帶寬滿足Δω=6.6π/N,濾波器長度值應(yīng)為N=6.6π/Δω=59。
3 單片機移植
FIR濾波器系數(shù)可使用MATLAB設(shè)計濾波器進行設(shè)計后獲得。單片機從DS1299獲取EEG數(shù)據(jù)x(n)后,依據(jù)式(1),經(jīng)過計算可得到濾波后的數(shù)據(jù)y(n)。這里通過編程實現(xiàn)式(1)所示的FIR濾波器算法,并將算法移植到STM32F103C8單片機。
使用Keil5搭建STM32單片機程序的編譯環(huán)境,編譯環(huán)境中需要添加DSP組件。文章使用的工程是在Keil5自帶FIR例程文件arm_fir_example的基礎(chǔ)上進行移植。
移植過程如下:添加頭文件,初始換環(huán)境參數(shù),添加濾波器系數(shù),在main.c中重新編寫FIR濾波器算法主程序。
上述代碼中inputF32(濾波器輸入序列x(n))數(shù)組中存放模擬EEG信號的256個采樣點數(shù)據(jù),模擬采樣數(shù)據(jù)由振幅相等,頻率分別為10Hz、20Hz、40Hz的3個單頻正弦信號混合而得,運算結(jié)果保存在testOutput[]數(shù)組中。
4 測試
腦波信號的采樣率為512b/s,F(xiàn)IR濾波器設(shè)計為帶通(13~30Hz)濾波器,濾波器一次計算的采樣點數(shù)為256個。腦波信號經(jīng)過ADS1299模擬前端單元處理后得到的腦波采樣數(shù)據(jù)波形如圖2所示。
圖2中顯示的是單片機以512b/s的采樣率,對腦波信號連續(xù)采集256個點的數(shù)據(jù)波形。采樣數(shù)據(jù)使用FIR算法后的時域輸出波形如圖3所示。與圖2波形相比較高頻成分被濾除掉。為了進一步分析FIR濾波后輸出信號中頻率特征,可以對信號進行FFT變換。濾波后數(shù)據(jù)做256點的FFT運算,得到信號的幅頻特性曲線如圖4所示。
腦機終端設(shè)備中使用單片機,軟件編程實現(xiàn)了256點高階FIR濾波器功能。圖4中可以清晰看到采樣到的信號中,β波被解析出不同頻率成份分量的幅度值,幅頻特性曲線中頻率分辨率達到2Hz。通過分析圖4中13~30Hz信號不同頻率幅度特征,與受試者當前腦思維意識進行分析和關(guān)聯(lián),分析結(jié)果可以關(guān)聯(lián)到應(yīng)用端。
5 結(jié)束語
文章設(shè)計并實現(xiàn)了腦機終端設(shè)備應(yīng)用系統(tǒng)。系統(tǒng)中的模擬前端通過ADS1299對腦波信號采集、放大與模數(shù)轉(zhuǎn)換;采用STM32F1x單片機作為主控芯片,使用FIR濾波器和FFT快速傅里葉變換的算法,實現(xiàn)了對腦波信號中13~30Hz的β波信號進行濾波提取和分解,頻率分辨率達到2Hz。該腦機終端設(shè)備在腦思維意識分析領(lǐng)域,有較強的應(yīng)用價值。