衡 瑋 徐自強 陳璐瑤 楊金龍 喬天池 黃 闖
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 江蘇 無錫 214122)
良好的睡眠是人們一天高效率工作的基礎(chǔ)和保障,但失眠卻一直是困擾人們的一大難題。調(diào)查顯示,我國有將近 3 億人在夜間會出現(xiàn)失眠、打鼾的情況,約有 2 億人患有不同程度的睡眠呼吸暫停綜合征[1]。對于大多數(shù)的失眠患者來說,失眠多是因為一些外界原因?qū)е戮駢毫^大、神經(jīng)緊張、憂慮過重、或者是過度興奮、難以平靜等,而由心理因素引起的失眠占失眠總數(shù)的 85%以上[1]。
國外基于腦電波睡眠已經(jīng)有了一些研究,并取得了一定成果。SleepPhone睡眠降噪耳機可以隔絕外界噪音輔助睡眠,但單純通過音樂播放實現(xiàn)物理降噪不能適用于大部分失眠人群。國內(nèi)的腦電波研究起步較晚,部分睡眠質(zhì)量監(jiān)測App可以監(jiān)測睡眠質(zhì)量并進(jìn)行評分,但難以主動干預(yù)和幫助用戶提升睡眠質(zhì)量。
針對上述問題,本文研究并設(shè)計了基于腦電波監(jiān)測智能助睡眠耳機,以樹莓派(Raspberry Pi)為后臺服務(wù)器搭建硬件平臺,通過腦機接口技術(shù),對人們在睡眠時的腦電波進(jìn)行監(jiān)測。依據(jù)神經(jīng)科學(xué)的信號分析原理,采用K最近鄰(KNN)算法進(jìn)行睡眠階段分析,為用戶呈現(xiàn)最直觀的睡眠分析,并將分析的睡眠結(jié)果反饋控制輕音樂的播放音量及播放曲目,使得用戶更快地進(jìn)入深度睡眠階段,從根本上有效地調(diào)節(jié)用戶睡眠狀態(tài)。
腦機接口(BCI)技術(shù)是一種由外周神經(jīng)和肌肉組成的輸出通路系統(tǒng)[2],腦機接口系統(tǒng)的輸入信號從腦皮層表面神經(jīng)元活動開始,通過電極放大,濾波后,進(jìn)行特征提取,并通過轉(zhuǎn)譯環(huán)節(jié)將特征信息轉(zhuǎn)換為設(shè)備指令,最后由輸出設(shè)備對指令進(jìn)行輸出[3]。
本文基于Rechtschaffen & Kales 睡眠分期標(biāo)準(zhǔn)[4],針對人們睡眠時的三個不同階段,即覺醒期、非快速眼動睡眠階段(NREM)和快速眼動睡眠階段(REM),通過對腦電信號分析的結(jié)果切換不同的輕音樂曲目,并適當(dāng)調(diào)整音量,同時屏蔽外界干擾,可以使人在睡眠時盡早進(jìn)入非快速眼動睡眠階段,減少在覺醒期因失眠而引發(fā)的疲憊和煩躁等。早上在合適的時間,通過該設(shè)備控制的智能喚醒模塊,采用溫柔的方式叫醒使用者,可去除被鬧鐘強制吵醒的煩惱。此外,根據(jù)睡眠期間對使用者睡眠情況的記錄,可自動生成一份睡眠監(jiān)測報告,幫助使用者及時了解自己的睡眠情況。
本文設(shè)計的智能助睡眠耳機系統(tǒng)以樹莓派3B+(Raspberry Pi 3B+)作為后臺服務(wù)器,安卓手機作為客戶端,并構(gòu)建藍(lán)牙一主多從模式,即樹莓派作為主設(shè)備,安卓手機、藍(lán)牙耳機、腦電傳感模塊作為從屬設(shè)備,實現(xiàn)設(shè)備間的信息互通,搭建小型藍(lán)牙服務(wù)器系統(tǒng)。
系統(tǒng)結(jié)構(gòu)示意圖如圖1所示,樹莓派通過CSR 4.0藍(lán)牙適配器和安卓手機進(jìn)行全雙工通信,腦電傳感模塊通過藍(lán)牙串口透傳方式將數(shù)據(jù)傳輸?shù)綐漭桑瑯漭赏ㄟ^藍(lán)牙音頻發(fā)射器將音頻信號傳輸給藍(lán)牙耳機。

圖1 系統(tǒng)結(jié)構(gòu)示意圖
系統(tǒng)開始工作時,首先啟動后臺服務(wù)器,服務(wù)器將自動運行腳本以實現(xiàn)基本功能配置,并進(jìn)入客戶端等待連接阻塞狀態(tài),通過本系統(tǒng)開發(fā)的安卓App發(fā)送連接請求,即可獲取服務(wù)器資源。腦電傳感模塊上電,并將三個電極置于腦前額,通過藍(lán)牙串口將腦電信號上傳到服務(wù)器上,并進(jìn)行相應(yīng)的信號處理分析。通過藍(lán)牙音頻發(fā)射器可自動連接藍(lán)牙耳機,使用者戴上藍(lán)牙耳機便可感受設(shè)定模式下的音樂,并可通過安卓客戶端App調(diào)整模式,滿足用戶的個性化需求。
系統(tǒng)配置包括后臺服務(wù)器搭建、安卓客戶端實現(xiàn)、腦電傳感模塊的數(shù)據(jù)采集、藍(lán)牙音頻信號發(fā)送與接收、智能喚醒機制的實現(xiàn)五個方面的要求。
核心主控板為樹莓派3代B+版,如圖2所示。板載4個USB 2.0端口,1個RCA AV音頻端口,有Linux內(nèi)核版本的支持,相比其他ARM系列的嵌入式微控制器,具有更廣闊的應(yīng)用空間,便于搭建小型藍(lán)牙服務(wù)器系統(tǒng)。

圖2 Raspberry Pi 3 MODEL B+
樹莓派采用OMXPlayer硬解碼GPU命令行播放器,實現(xiàn)對mp3文件的解碼,在Linux系統(tǒng)中輸入omxplayer [OPTIONS] [FILE]命令,即可實現(xiàn)指定音頻文件的播放參數(shù)控制。
為OMXPlayer添加外圍Python 包裝,通過DBUS調(diào)用OMXPlayer進(jìn)程,將其封裝成庫后,添加進(jìn)程序可實現(xiàn)對樹莓派端音樂資源的控制需求。
利用Python 2.7環(huán)境編寫樹莓派開機自啟動腳本,將其放入后臺運行。在樹莓派上電后進(jìn)行服務(wù)器功能初始化,執(zhí)行以下操作:
(1) 遍歷系統(tǒng)目錄,獲取所有mp3音樂文件路徑,按文件修改時間排序生成音樂路徑列表;
(2) 讀取系統(tǒng)目錄下保存用戶信息的JSON文件,初始化控制變量(用戶上一次使用保存下的音量、播放模式、列表狀態(tài)等信息);
(3) 開啟服務(wù)器的會話描述協(xié)議功能,配置流媒體服務(wù)器和服務(wù)器端的藍(lán)牙套接字,根據(jù)安卓設(shè)備藍(lán)牙串口服務(wù)的通用唯一識別碼開啟服務(wù)器的信號廣播與信道監(jiān)聽。
在后臺服務(wù)器完成初始化后,有客戶端連接請求時給予響應(yīng),創(chuàng)建藍(lán)牙Socket后結(jié)合Python程序和封裝好的OMXPlayer調(diào)用類,完成諸如音樂切換、播放過程控制、進(jìn)度和音量控制、播放模式切換、音量模式切換、列表操作、睡眠監(jiān)測、報告獲取、智能鬧鐘設(shè)定、服務(wù)器啟停等復(fù)雜的控制指令。
軟件開發(fā)的安卓客戶端App,主要實現(xiàn)四個功能:喚醒鬧鐘設(shè)定、睡眠質(zhì)量監(jiān)測、睡眠質(zhì)量分析、音樂播放遠(yuǎn)程控制。點擊App連接按鈕后,會嘗試搜尋對應(yīng)的藍(lán)牙MAC地址,即樹莓派的藍(lán)牙適配器地址,App建立藍(lán)牙通信的流程如圖3所示。

圖3 App通信建立流程
建立通信后,可通過App發(fā)出對樹莓派端的控制指令,實現(xiàn)一款關(guān)聯(lián)腦波信號的遠(yuǎn)程控制智能音樂播放器。App的功能模塊如下:
(1) 智能喚醒鬧鈴模塊。用戶根據(jù)個人早上起床時間設(shè)置鬧鈴時間段,睡眠耳機在設(shè)置的時間段內(nèi),當(dāng)判斷用戶處在淺睡眠階段,即通過喚醒音樂喚醒用戶。
(2) 睡眠質(zhì)量監(jiān)測模塊。記錄用戶每晚睡眠數(shù)據(jù),并實時更新存儲到樹莓派后臺。在App中以時間點為橫軸,以不同睡眠階段為縱軸,通過柱狀圖呈現(xiàn)用戶不同時間段所處不同睡眠階段的類型,通過餅狀圖清楚反映用戶每晚覺醒期、淺睡眠期、中度睡眠期、深度睡眠期和快速眼動睡眠階段的時間占比,讓用戶清晰地看到不同階段的睡眠時長,并根據(jù)下式計算用戶每晚的睡眠得分S[5],范圍為0~100,供用戶參考。
(1)
式中:T表示睡眠總時長,tR表示快速眼動期(REM)的時長,t1表示非快速眼動期1(N1)的時長,t2表示非快速眼動期2(N2)的時長,t3表示非快速眼動期(N3)的時長。
可以看出,深度睡眠期和快速眼動睡眠階段所占整個睡眠時間的比例越大,睡眠質(zhì)量越好,如果該比例低于25%,則需提醒用戶要提高睡眠質(zhì)量。此外,通過統(tǒng)計夜間進(jìn)入覺醒期的次數(shù),得到用戶夜間的清醒次數(shù),如果用戶清醒次數(shù)大于0,也需要提醒用戶提高睡眠質(zhì)量。
(3) 睡眠質(zhì)量分析模塊。對用戶近七天的睡眠情況進(jìn)行評分,在App中以日期為橫軸,以睡眠得分為縱軸,通過折線圖反映用戶近七天的睡眠得分變化趨勢。如果用戶近七天睡眠得分持續(xù)低于80分,需提醒用戶改善睡眠狀況。
(4) 控制功能模塊。App對服務(wù)器端音樂播放的遠(yuǎn)程控制界面如圖4所示。在App界面上點擊列表中歌曲名,可播放指定曲目;點擊或拖動播放進(jìn)度條,改變音頻播放位置;點擊或拖動音量進(jìn)度條,可調(diào)節(jié)音頻音量;長按列表中的曲目可對其進(jìn)行屏蔽或恢復(fù)操作;在下拉菜單欄里可遠(yuǎn)程控制服務(wù)器的連接狀態(tài)與關(guān)機重啟。

圖4 App音樂播放控制界面
所播放的音樂文件服務(wù)器目錄下的Music文件夾,在建立藍(lán)牙套接字的同時,安卓客戶端發(fā)送獲取音樂列表及歌曲信息請求,服務(wù)器響應(yīng)請求后,將曲目的基本信息(歌名,作者,時長,大小)通過JSON字符串的方式傳輸?shù)娇蛻舳薃pp,客戶端解析后將相應(yīng)歌曲信息呈現(xiàn)到列表元素中,實現(xiàn)客戶端的遠(yuǎn)程資源獲取。
圖4中,音量進(jìn)度條上方的五個按鈕實現(xiàn)的功能分別為:
(1) 改變列表播放模式。播放模式包括順序、循環(huán)、隨機和智能模式,前三種和普通音樂播放器無異,最后一種智能模式能結(jié)合監(jiān)測者的睡眠程度和習(xí)慣偏好,智能推薦播放曲目。
(2) 切換到上一首,除隨機模式選擇任意一首播放外,其他模式均為列表中所示位置的前一首。
(3) 播放暫停按鈕,點擊一下會暫停音樂,再點擊一下能夠繼續(xù)播放。
(4) 切換到下一首,除隨機模式選擇任意一首播放外,其他模式均為列表中所示位置的后一首。
(5) 改變音量播放模式。
該App設(shè)置了手動和自動模式。手動模式下用戶能夠自由改變音量,自動模式下音量將由服務(wù)器根據(jù)用戶腦波數(shù)據(jù)計算得出。音量進(jìn)度條左右的兩個按鈕實現(xiàn)音量的降低和增加功能,在手動模式下,音量增長或降低5%,在自動模式下,將改變音量計算的偏移量,使音量輸出獲得一個整體的增幅或減弱效果。
項目中需要維持服務(wù)器和安卓客戶端的通信,以進(jìn)行實時性的數(shù)據(jù)傳輸與控制功能。利用灰色保活機制,在程序中作Android SDK版本號判斷。當(dāng)API版本號小于18時,啟動前臺Service時直接傳入Notification實例;當(dāng)API版本號大于等于18時,同時啟動兩個ID相同的前臺Service,然后再停止后啟動的Service服務(wù),以此來提高App應(yīng)用進(jìn)程的優(yōu)先級。
TGAM模塊是一款腦電傳感模塊,如圖5所示。它通過三個電極采集原始腦波數(shù)據(jù),使用12位ADC,差模輸入電壓范圍小于等于1mV,可對腦電信號進(jìn)行1 000倍放大。信息傳輸采用藍(lán)牙串口透傳方式,實現(xiàn)TGAM芯片中數(shù)據(jù)的傳送。

圖5 腦電波傳感器
TGAM芯片連接藍(lán)牙模塊,采用兩節(jié)干電池對其供電,可避免電源紋波和噪聲對模塊的影響;樹莓派通過USB轉(zhuǎn)TTL模塊轉(zhuǎn)換邏輯電平,連接配對好的另一個藍(lán)牙模塊,構(gòu)成圖6所示的模塊結(jié)構(gòu)框圖。

圖6 腦波采集部分結(jié)構(gòu)框圖
在樹莓派上通過Linux命令查看USB擴展出的串口號,可得到ttyUSB0,利用Python的serial庫從該串口讀取小包數(shù)據(jù),解析得出原始腦波數(shù)據(jù)。在大包數(shù)據(jù)里三個字節(jié)為一組,通過移位運算處理可解析得出不同頻率的基本腦波數(shù)值。當(dāng)采集到的數(shù)據(jù)有效時,在樹莓派上開啟一個數(shù)據(jù)接收線程,以便進(jìn)一步分析處理。
OMXPlayer的音頻推廣方式可以選擇為HDMI、Local、ALSA(高級Linux聲音架構(gòu)),為了將音頻信號發(fā)送到藍(lán)牙耳機,嘗試了以下兩種方式。
(1) 音頻推廣到ALSA:樹莓派與藍(lán)牙耳機配對連接后,激活PulseAudio進(jìn)程,PulseAudio是一個跨平臺的聲音服務(wù)器,ALSA會將音頻重定向輸出到Pulse-Audio,將其設(shè)置為A2DP模式后即可傳輸?shù)剿{(lán)牙耳機。
(2) 音頻推廣到Local,即本地3.5 mm音頻接口,將藍(lán)牙音頻發(fā)射器接入到樹莓派3.5 mm音頻口,發(fā)射器會自動配對連接藍(lán)牙耳機,實現(xiàn)音頻的過渡傳輸。
經(jīng)過測試,第1種方式利用樹莓派自身音頻配置,可實現(xiàn)點對點連接,但配置過程較為繁瑣,在樹莓派系統(tǒng)自帶的ALSA驅(qū)動下音質(zhì)效果也不夠理想;第2種方式通過外接設(shè)備,把音頻從樹莓派本地音頻接口經(jīng)藍(lán)牙發(fā)射器傳輸?shù)剿{(lán)牙耳機,配置簡單且音頻保真性較好。因此本系統(tǒng)采取第2種方式。
樹莓派內(nèi)部并不存在CMOS電池,沒有實時時鐘RTC(Real-time Clock)功能,在斷電之后,時間就停留在當(dāng)前時間點。為實現(xiàn)智能喚醒機制,保證睡眠分析報告的可靠性,要考慮時間的準(zhǔn)確性。
時間同步可以通過NTP網(wǎng)絡(luò)時間協(xié)議,但如果樹莓派未連接網(wǎng)絡(luò),則無法實現(xiàn)時間同步。除此之外,還可為樹莓派添加一個DS1302時鐘芯片,實現(xiàn)硬件實時時鐘功能,使得樹莓派在離線的情況下從DS1302中同步時間,但時間精度依賴晶振質(zhì)量。
考慮到已配置好安卓客戶端和樹莓派的藍(lán)牙套接字通信協(xié)議,因此,可以直接獲取安卓客戶端的時間,在創(chuàng)建藍(lán)牙Socket通信的同時,將時間信息發(fā)送到樹莓派上進(jìn)行時間更新操作,實現(xiàn)后臺服務(wù)器時間與安卓客戶端時間的同步。
安卓客戶端獲取系統(tǒng)時間有多種方式,本文選擇Java中的Date類,用SimpleDateFormat規(guī)定顯示的信息格式,定義字符串timeStr,寫入timeStr = new SimpleDateFormat(″yyyy-MM-dd HH:mm:ss″). format(new Date())語句可獲取指定格式的時間字符串,再通過藍(lán)牙套接字發(fā)送到后臺服務(wù)器。
后臺服務(wù)器接收到時間字符串timeStr后,通過Python語句os.system(‘sudo date --s=″’+timeStr+’″’)調(diào)用Linux系統(tǒng)命令,強制修改系統(tǒng)時間使其和安卓客戶端一致。服務(wù)器可結(jié)合時間對使用者睡眠狀況進(jìn)行具體分析,若在設(shè)定的時間段內(nèi)檢測到睡眠程度達(dá)到一定閾值,便智能選擇曲目并自動調(diào)整音量實現(xiàn)相對溫和的喚醒過程。
本文采用的數(shù)據(jù)來自PhysioNet的CAP睡眠腦電數(shù)據(jù)庫[6-7],PhysioNet是一個向科研人員免費提供的權(quán)威科學(xué)的生理信號庫及處理工具箱, 即PhysioBank和PhysioToolkit,官網(wǎng)為https://physionet.org/。
實驗選用的睡眠監(jiān)測數(shù)據(jù)包含108例多導(dǎo)睡眠記錄,采樣頻率512 Hz,每例至少記錄了三導(dǎo)連的腦電信號(根據(jù)10-20 國際通用系統(tǒng),電極為:F3 或F4、C3或C4、O1或O2,以A1或A2作為參考電極),其中,16例由健康的成年受試者完成,這些受試者包括23歲至42歲的男性和女性。此外,在睡眠中心接受過訓(xùn)練的神經(jīng)病學(xué)家,根據(jù)Rechtschaffen&Kales[8]規(guī)則對每一例記錄進(jìn)行以30 s為間隔的睡眠分期判定并作標(biāo)記,本文以此分期結(jié)果測試算法的分期準(zhǔn)確性。
首先,采用低通濾波對原始 EEG 信號進(jìn)行預(yù)處理,去掉高頻噪聲部分,再對去噪后 EEG 進(jìn)行傅里葉變換,求得功率譜,依據(jù)功率譜提取 α、β、δ、θ 四種特征波的功率比例[8],然后將四種特征參數(shù)輸入KNN中進(jìn)行訓(xùn)練,最后測試其預(yù)測分期結(jié)果的準(zhǔn)確性。算法流程如圖7所示。

圖7 睡眠分期算法流程
由于腦電波在時域上屬于非平穩(wěn)隨機信號,加上采集的腦電波為三導(dǎo)連,信號不穩(wěn)定,噪聲嚴(yán)重。腦電信號有效頻率為0~30 Hz,因此,本文采用低通數(shù)字濾波器進(jìn)行預(yù)處理,以抑制高頻噪聲來提高測量準(zhǔn)確度。
數(shù)字濾波器包含F(xiàn)IR濾波器和無限沖激響應(yīng)(IIR)濾波器。FIR濾波器的輸出信號可以保持嚴(yán)格線性,同時又可以具有任意的幅度特性,因此本文選用FIR濾波器[9]。
設(shè)FIR濾波器的單位沖激響應(yīng)為h(n),是一個長度為N的序列,計算公式為:

(2)
設(shè)阻帶頻率為fc,由離散傅里葉變換公式可求出理想濾波器的脈沖響應(yīng),即:
hidea(n)=2fcsinc(2fcn)
(3)
由于理想濾波器在邊界頻率處不連續(xù),故其脈沖響應(yīng)hidea(n) 是無限長的非因果序列。本文研究的系統(tǒng)需要做實時處理,因此,采用有限長序列來逼近無限長序列hidea(n),即采用有限長度窗函數(shù)w(n)來截取hidea(n)。
h(n)=hidea(n)w(n)
(4)
本文選用曲線較平滑的漢明窗來做截取,漢明窗函數(shù)表達(dá)式為:
(5)
采用300點,取30 Hz作為頻率衰減帶上限,以 512 Hz作為采樣頻率,構(gòu)造低通濾波器系數(shù)。低通濾波器的頻率響應(yīng)曲線如圖8所示,脈沖響應(yīng)曲線如圖9所示。兩圖分別從時頻域論證了加漢明窗的濾波器系數(shù)非常逼近理想濾波器系數(shù),因此可以使用其進(jìn)行濾波。

圖8 頻率響應(yīng)曲線

圖9 脈沖響應(yīng)曲線
截取測試對象n16的一段30 s的腦電信號進(jìn)行低通濾波,濾波前后時域?qū)Ρ热鐖D10所示,濾波前后頻譜對比如圖11所示,可以明顯看出腦電信號去噪前后的波形變化。就時域波形來說,濾波后的波形更加平滑,特征更加突出;對頻譜來說,高頻部分可被濾掉,剩下腦電波的有效頻率部分,便于特征提取。

圖10 濾波前后腦電信號波形對比

圖11 濾波前后的腦電信號頻譜對比
依據(jù)美國睡眠醫(yī)學(xué)學(xué)會(AASM)的標(biāo)準(zhǔn)[10],腦電波按頻率從高到低可劃分為以下頻段:β波(14~30 Hz),α波(8~14 Hz) ,θ波(4~8 Hz),δ波(0.5~4 Hz)。根據(jù)美國睡眠醫(yī)學(xué)會2007年的標(biāo)準(zhǔn),睡眠分期的腦電標(biāo)準(zhǔn)如表1所示[1]。

表1 睡眠分期腦電標(biāo)準(zhǔn)
由表1可知,美國睡眠醫(yī)學(xué)會基于Rechtschaffen & Kales規(guī)則進(jìn)行了改進(jìn),將NREM睡眠階段中的S3 和S4合并為N3。本文采用該改進(jìn)后的劃分標(biāo)準(zhǔn)。
人的腦電信號會隨著睡眠階段的不同而發(fā)生相應(yīng)的變化,通過分析不同睡眠狀態(tài)下的腦電信號的變化趨勢,可以對睡眠狀態(tài)進(jìn)行分段。本文基于通用的Rechtschaffen & Kales睡眠分期標(biāo)準(zhǔn),從實用性和兼容性方面考慮,選擇δ頻段的相對功率、θ頻段的相對功率、α頻段的相對功率、β頻段的相對功率作為睡眠分期的特征。由于需要求多個頻段的功率占比,因此需要先將信號從時域轉(zhuǎn)換到頻域,采用傅里葉變換求功率譜。需要注意的是,由于 EEG 信號并不是周期的,為防止傅里葉變換結(jié)果中出現(xiàn)頻譜泄漏,采用漢明窗使數(shù)據(jù)能平滑過渡[11]。由于腦電的頻譜特性不隨時間變化,本文分段進(jìn)行傅里葉變換,再對每個頻率分量的功率求其平均值,作為測量信號的功率譜。
以被測試對象n16為例,每組數(shù)據(jù)長度15 360點(30 s),分別對每數(shù)據(jù)進(jìn)行特征提取,計算δ、θ、α、β波的功率比例,各特征波的全部時序功率比例如圖12所示,可以看出腦電存在一定的變化趨勢或規(guī)律。因此,可以采用上述 4 個特征參數(shù)作為分類器的輸入,實現(xiàn)睡眠分期。

圖12 四種特征波的時序功率比例
本文采用KNN算法[12-13]進(jìn)行睡眠分期的判定,算法如下:
已知訓(xùn)練樣本集合K={K1,K2,…,Km},其中,m表示訓(xùn)練集中樣本的數(shù)目,假設(shè)類別數(shù)為n。
(1) 設(shè)定待測樣本的最近鄰數(shù)目值為k。
(2) 樣本間的相似程度采用閔氏距離進(jìn)行統(tǒng)計,測度值用M表示,閔氏距離計算公式為:
(6)
(3) 每個待測樣本用Z表示。
① 計算m個測度值,并使用排序算法對其進(jìn)行排序,排序后為:M1,M2,…,Mk,Mk+1,…,Mm。
② 取出其相似度最高的k個樣本,然后遵守投票 規(guī)則進(jìn)行待測樣本Z的類別值判定,Z類別值為得票數(shù)最多的類別。
提取n1樣本整夜睡眠數(shù)據(jù)(共1 147組,每組30 s)的4個特征屬性 δ、θ、α、β波的功率比例。其中,隨機選取70%作為訓(xùn)練樣本,用來建立KNN的睡眠分類模型,剩余30%作為測試集。為驗證該方法,將每一睡眠分期的準(zhǔn)確率都計算出來,并呈現(xiàn)錯誤識別的所有情況。表2表示分期結(jié)果,其縱列代表分類器的輸出,橫行代表實際睡眠階段。對應(yīng)每個實際睡眠階段,得到分類器分類后的輸出睡眠階段,并統(tǒng)計相應(yīng)數(shù)目記錄在表2中。隨機選取訓(xùn)練、測試樣本,計算100次,得到各睡眠階段的平均準(zhǔn)確率如圖13所示。

表2 各階段準(zhǔn)確率表

圖13 各睡眠階段的平均準(zhǔn)確率
由表2和圖13可以看出本文設(shè)計的分期方法在 N2、N3、REM識別較好,REM準(zhǔn)確率最高,N2次之。W、N1的分期準(zhǔn)確率最低。結(jié)合表1對分期結(jié)果進(jìn)一步分析發(fā)現(xiàn),W、N1、REM很少被誤判成N3,可見本文方法不會影響對睡眠深淺程度的判斷,達(dá)到預(yù)期使用要求。更進(jìn)一步對N1狀態(tài)的誤判進(jìn)行分析,N1容易被誤判為N2,由于N1與W、N2的分期較為接近,界限模糊、難以分辨。清醒狀態(tài)容易被識別為N1和REM,也是因為這些波形相近,特征相似。
用戶夜間佩戴耳機睡覺時,設(shè)備可以實時監(jiān)測其腦電波狀態(tài),分析睡眠狀態(tài)后,通過控制音樂播放使得用戶的腦電波狀態(tài)盡快進(jìn)入到深度睡眠階段。同時,將用戶夜間的睡眠狀態(tài)監(jiān)測結(jié)果通過App顯示,如圖14所示。其中:曲線圖可以反映用戶某一時刻所處的睡眠階段;餅狀圖可以反映用戶夜間五個睡眠階段的時間占比。

圖14 用戶睡眠監(jiān)測App顯示圖
通過讀取服務(wù)器后臺保存的睡眠得分歷史記錄,可以得到用戶一段時間的睡眠分析報告,如圖15所示。通過折線圖可以反映用戶一段時間的睡眠得分情況,用戶可以看到自己睡眠質(zhì)量的變化趨勢。

圖15 用戶睡眠分析App顯示圖
本文針對部分人群失眠問題,設(shè)計一套基于腦電波監(jiān)測智能助睡眠耳機系統(tǒng),通過腦機接口技術(shù),實現(xiàn)對人們在睡眠時的腦電信號進(jìn)行監(jiān)測,并依據(jù)神經(jīng)科學(xué)的信號分析原理,采用 KNN算法進(jìn)行睡眠階段分析,將分析后的睡眠結(jié)果自適應(yīng)地控制輕音樂的播放音量及播放曲目,以輔助調(diào)節(jié)人們的睡眠狀態(tài)。此外,設(shè)計的安卓手機可實現(xiàn)喚醒鬧鐘設(shè)定、睡眠質(zhì)量監(jiān)測、睡眠質(zhì)量分析等,滿足不同用戶的需求。
本文采用的KNN方法,雖然在某些階段能夠較準(zhǔn)確地完成睡眠分期,并對睡眠深淺程度進(jìn)行判斷,但仍存在一定的局限性。未來將進(jìn)一步加強對睡眠分期算法的研究,提高對睡眠分期的精度,進(jìn)一步改善本助睡眠耳機系統(tǒng)的性能。