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