腦電睡眠分期:從功率譜特征到BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn))
簡(jiǎn)介一份圍繞腦電波睡眠監(jiān)測(cè)的完整技術(shù)文檔面向生物醫(yī)學(xué)工程、嵌入式開(kāi)發(fā)及健康監(jiān)測(cè)方向的學(xué)習(xí)者與研究者系統(tǒng)闡述便攜式睡眠質(zhì)量監(jiān)測(cè)系統(tǒng)的軟硬件設(shè)計(jì)思路。文檔從睡眠研究背景與腦電信號(hào)分析方法切入重點(diǎn)介紹基于宏智力Brainlink意念力頭箍?jī)?nèi)置Thinkgear芯片的硬件采集方案并詳細(xì)說(shuō)明Windows/Android平臺(tái)下的實(shí)時(shí)數(shù)據(jù)接收、功率譜分析及BP神經(jīng)網(wǎng)絡(luò)睡眠分期算法提供從信號(hào)預(yù)處理到實(shí)驗(yàn)驗(yàn)證的完整技術(shù)路徑。資源包僅含1個(gè)doc文件大小674KB屬于純文檔類學(xué)習(xí)材料。目前已有138人學(xué)習(xí)適合希望了解單導(dǎo)連腦電睡眠監(jiān)測(cè)落地方法、便攜式腦機(jī)接口應(yīng)用或相關(guān)畢業(yè)設(shè)計(jì)參考的讀者。1. 為什么單導(dǎo)腦電也能做睡眠分期在睡眠監(jiān)測(cè)這件事上醫(yī)院里的多導(dǎo)睡眠監(jiān)測(cè)PSG是金標(biāo)準(zhǔn)但它需要貼十幾路電極監(jiān)測(cè)口鼻氣流、血氧、胸腹運(yùn)動(dòng)還得在睡眠實(shí)驗(yàn)室里過(guò)夜。別說(shuō)普通家庭用戶就是做技術(shù)的人第一次看到那套設(shè)備也會(huì)覺(jué)得這根本不是給人用的。而本文拆解的這套系統(tǒng)只用前額和耳垂兩個(gè)電極通過(guò)藍(lán)牙把單導(dǎo)腦電送到手機(jī)或電腦上做睡眠分期實(shí)驗(yàn)正確率雖然沒(méi)到臨床級(jí)但已經(jīng)能復(fù)現(xiàn)出N1、N2、N3、REM、W五個(gè)階段的粗略區(qū)分。這套路的工程價(jià)值在于它把醫(yī)學(xué)上的多導(dǎo)問(wèn)題降維成了單導(dǎo)可解的問(wèn)題用功率譜特征加BP神經(jīng)網(wǎng)絡(luò)在便攜硬件上走出了一條可落地的技術(shù)路線。這套系統(tǒng)基于Neurosky Thinkgear芯片采樣率約512Hz硬件成本低、佩戴簡(jiǎn)單數(shù)據(jù)分析鏈路是FIR低通濾波→加窗功率譜→提取δ/θ/α頻段功率比例→BP神經(jīng)網(wǎng)絡(luò)分類。后續(xù)章節(jié)會(huì)按這條鏈路逐步展開(kāi)從硬件選型和數(shù)據(jù)通路、濾波器設(shè)計(jì)到頻域特征提取再到BP網(wǎng)絡(luò)的參數(shù)設(shè)置最后給出我在復(fù)現(xiàn)這個(gè)項(xiàng)目時(shí)踩過(guò)的坑和參數(shù)邊界。2. Brainlink頭箍的數(shù)據(jù)通路與采集平臺(tái)選型2.1 Thinkgear芯片與單導(dǎo)聯(lián)方案的工程依據(jù)宏智力Brainlink頭箍的核心是Neurosky Thinkgear芯片整機(jī)只有兩個(gè)電極前額Fp1位置附近和左耳垂參考電極屬于單導(dǎo)聯(lián)腦電采集。很多做信號(hào)處理的人第一反應(yīng)是單導(dǎo)聯(lián)能干什么但從睡眠分期的角度看AASM標(biāo)準(zhǔn)里N3期的判定核心就是0.5~2Hz慢波占比而慢波在額區(qū)最為明顯單導(dǎo)聯(lián)恰好能捕捉到這一關(guān)鍵頻段。采樣率512Hz是這套硬件的一個(gè)重要參數(shù)。腦電的有效頻率上限一般認(rèn)為在30Hz左右根據(jù)奈奎斯特采樣定理64Hz采樣就夠理論分析了但實(shí)際做數(shù)字濾波時(shí)采樣率越高濾波器過(guò)渡帶越容易設(shè)計(jì)。512Hz采樣率配合50Hz衰減帶設(shè)計(jì)FIR低通既避開(kāi)了工頻干擾又給濾波器設(shè)計(jì)留出了充足余量。腦電信號(hào)本身是微伏級(jí)信號(hào)容易受到眼電、肌電和運(yùn)動(dòng)偽跡干擾Thinkgear芯片內(nèi)置了硬件放大和抗混疊濾波這是單導(dǎo)方案能成立的前提。2.2 Windows與Android雙平臺(tái)采集的取舍數(shù)據(jù)采集端選擇了Windows和Android兩個(gè)平臺(tái)。Windows端的開(kāi)發(fā)基于Neurosky官方API在Visual C環(huán)境下編寫(xiě)控制臺(tái)程序即可完成串口數(shù)據(jù)的讀取和存盤(pán)。Android端則使用Neurosky提供的Android API程序可以后臺(tái)運(yùn)行適合整夜采集。從實(shí)際睡眠監(jiān)測(cè)場(chǎng)景看Android方案明顯更實(shí)用因?yàn)槭謾C(jī)放在枕邊即可不需要額外開(kāi)一臺(tái)電腦。兩個(gè)平臺(tái)的數(shù)據(jù)幀格式一致均包含原始腦電波形值、Attention/Meditation等eSense指標(biāo)。睡眠分析最好不要直接用eSense值它們是Neurosky的私有算法輸出面向注意力訓(xùn)練場(chǎng)景對(duì)睡眠分期的意義有限。正確的做法是讀取raw EEG值自行做濾波和頻譜分析。// Windows端VC采集核心偽代碼 // 設(shè)備通過(guò)藍(lán)牙虛擬串口連接波特率57600 HANDLE hSerial CreateFile(COM3, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); DCB dcb { 0 }; dcb.BaudRate 57600; // Neurosky藍(lán)牙串口固定波特率 dcb.ByteSize 8; dcb.Parity NOPARITY; dcb.StopBits ONESTOPBIT; SetCommState(hSerial, dcb); BYTE buf[512]; DWORD bytesRead; while (true) { ReadFile(hSerial, buf, sizeof(buf), bytesRead, NULL); // 按Thinkgear數(shù)據(jù)幀協(xié)議解析0xAA 0xAA開(kāi)頭的包 // 0x80 0x02 0x16 0x00 0x68 表示raw EEG值 }代碼說(shuō)明Thinkgear數(shù)據(jù)幀以0xAA 0xAA開(kāi)頭后續(xù)字節(jié)按代碼-長(zhǎng)度-值的結(jié)構(gòu)組織。0x80代表raw EEG值長(zhǎng)度為2字節(jié)符號(hào)位擴(kuò)展后就是實(shí)際的腦電波形值。0x02代表信號(hào)質(zhì)量0x04代表Attention值。需要注意區(qū)分?jǐn)?shù)據(jù)幀中的亂碼字節(jié)通常的做法是對(duì)幀頭連續(xù)校驗(yàn)兩次并在解析長(zhǎng)度字段時(shí)做邊界檢查。Android端的寫(xiě)法類似核心差異在于使用BluetoothAdapter獲取藍(lán)牙串口Socket然后從InputStream中把數(shù)據(jù)流轉(zhuǎn)成同樣的幀解析邏輯。從工程角度建議把幀解析封裝成獨(dú)立模塊雙平臺(tái)共用一套解析代碼避免邏輯分叉。3. 漢明窗FIR低通濾波器的參數(shù)設(shè)計(jì)與驗(yàn)證3.1 窗函數(shù)法設(shè)計(jì)FIR的邊界條件腦電信號(hào)在時(shí)域上是非平穩(wěn)隨機(jī)信號(hào)單導(dǎo)聯(lián)采集到的原始信號(hào)包含高頻噪聲和部分肌電干擾。數(shù)字濾波器分為FIR和IIR兩類FIR有嚴(yán)格的線性相位不會(huì)造成波形失真這在腦電分析中很重要——后續(xù)要做時(shí)域波形對(duì)比相位失真會(huì)直接影響結(jié)果判讀。FIR的代價(jià)是階數(shù)高大約是IIR的5到10倍但在Matlab里這不是問(wèn)題300階的濾波器在512Hz采樣率下計(jì)算量完全可接受。窗函數(shù)設(shè)計(jì)法的核心公式是h(n) hd(n) * w(n)即理想濾波器的無(wú)限長(zhǎng)沖激響應(yīng)乘以窗函數(shù)截?cái)?。理想低通濾波器在頻域是矩形時(shí)域是無(wú)限長(zhǎng)的sinc函數(shù)必須截?cái)嗖拍軐?shí)現(xiàn)。漢明窗的表達(dá)式為w(n) 0.54 - 0.46 * cos(2πn/(N-1))它的第一旁瓣衰減約53dB比矩形窗高出約40dB能有效抑制頻譜泄漏。濾波器參數(shù)的選擇300點(diǎn)、512Hz采樣率、50Hz衰減帶上限。這里的衰減帶上限是指濾波器通帶截止頻率或過(guò)渡帶起始頻率腦電有效分析頻段在30Hz以內(nèi)50Hz處開(kāi)始衰減已經(jīng)把30到50Hz之間的裕量留出來(lái)了。需要注意原始文檔使用了50Hz作為率減帶的表述實(shí)際設(shè)計(jì)時(shí)用fir1(300, 50/(512/2))即歸一化截止頻率約0.195過(guò)渡帶寬度由階數(shù)決定。% 設(shè)計(jì)300階FIR低通漢明窗50Hz截止 Fs 512; % 采樣率 Fc 50; % 截止頻率 N 300; % 濾波器階數(shù) b fir1(N, Fc/(Fs/2), low, hamming(N1)); % 查看幅頻響應(yīng) freqz(b, 1, 1024, Fs);邏輯說(shuō)明fir1的第一個(gè)參數(shù)是階數(shù)N返回的濾波器系數(shù)長(zhǎng)度為N1第二個(gè)參數(shù)是歸一化截止頻率范圍0到1之間Fc/(Fs/2)把50Hz映射到奈奎斯特頻率的一半第三個(gè)參數(shù)指定低通第四個(gè)參數(shù)是窗函數(shù)向量。freqz用于繪制幅頻響應(yīng)和相位響應(yīng)曲線驗(yàn)證濾波器是否符合預(yù)期。階數(shù)越高過(guò)渡帶越窄但計(jì)算量增大代碼運(yùn)行時(shí)間線性增長(zhǎng)階數(shù)過(guò)低則過(guò)渡帶太寬可能導(dǎo)致50Hz附近的噪聲衰減不足原始文檔實(shí)驗(yàn)表明300階是濾波效果與計(jì)算量的一個(gè)較好平衡點(diǎn)。驗(yàn)證濾波器效果時(shí)截取了一段約4秒的清醒狀態(tài)腦電進(jìn)行對(duì)比。濾波前后波形對(duì)比圖能直接看出高頻抖動(dòng)被消除頻譜對(duì)比圖則顯示50Hz以上能量明顯下降。從頻譜圖上還能觀察到腦電信號(hào)主要集中在30Hz以下頻段這與理論一致。參數(shù)項(xiàng)設(shè)置值說(shuō)明濾波器類型FIR有限沖激響應(yīng)線性相位波形不失真設(shè)計(jì)方法窗函數(shù)法漢明窗旁瓣衰減大約53dB階數(shù)300過(guò)渡帶窄計(jì)算量可接受截止頻率50Hz高于腦電有效頻段30Hz采樣率512Hz滿足奈奎斯特采樣定理3.2 實(shí)時(shí)濾波與離線濾波的差異處理Matlab中驗(yàn)證濾波器效果時(shí)filter(b, 1, x)直接對(duì)整段數(shù)據(jù)做零相位濾波但實(shí)時(shí)采集場(chǎng)景下只能逐塊處理數(shù)據(jù)這會(huì)產(chǎn)生邊沿效應(yīng)。常見(jiàn)做法是維護(hù)一個(gè)長(zhǎng)度為N的狀態(tài)緩沖區(qū)每次處理新到的數(shù)據(jù)塊時(shí)把上一塊的尾部和當(dāng)前數(shù)據(jù)拼接后濾波只保留當(dāng)前塊對(duì)應(yīng)的輸出段。這樣能避免每塊數(shù)據(jù)塊起點(diǎn)處出現(xiàn)濾波器的瞬態(tài)響應(yīng)。另一個(gè)容易忽略的點(diǎn)是濾波器的群延遲。300階線性相位FIR的群延遲是N/2150個(gè)采樣點(diǎn)在512Hz采樣率下約0.29秒。如果后續(xù)做頻譜分析時(shí)把濾波后數(shù)據(jù)按時(shí)間對(duì)齊原始波形需要補(bǔ)償這150個(gè)采樣點(diǎn)的偏移否則時(shí)域?qū)Ρ葧?huì)錯(cuò)位。離線處理可以用filtfilt函數(shù)做零相位濾波消除群延遲誤差但實(shí)時(shí)場(chǎng)景只能用filter要在時(shí)序?qū)R時(shí)做好補(bǔ)償。4. 功率譜分析與BP神經(jīng)網(wǎng)絡(luò)睡眠分期4.1 頻段功率比例作為特征的依據(jù)腦電信號(hào)的頻段劃分是睡眠分期的基礎(chǔ)。δ波0.5~4Hz在深度睡眠期占主導(dǎo)θ波4~8Hz出現(xiàn)在淺睡期和REM期α波8~14Hz在清醒放松狀態(tài)且閉眼時(shí)明顯增強(qiáng)β波14~30Hz則與警覺(jué)和認(rèn)知活動(dòng)相關(guān)。AASM標(biāo)準(zhǔn)里W期判定的核心依據(jù)是枕區(qū)α波占比超過(guò)50%N3期是0.5~2Hz慢波占比超過(guò)20%。便攜式設(shè)備只有一導(dǎo)聯(lián)無(wú)法按標(biāo)準(zhǔn)的多導(dǎo)規(guī)則做逐條打分但通過(guò)功率譜計(jì)算各頻段占比可以近似模擬分期的判斷邏輯。功率譜估計(jì)的經(jīng)典方法是周期圖法對(duì)有限長(zhǎng)信號(hào)做傅里葉變換后取模的平方。但在實(shí)際計(jì)算中直接對(duì)整段數(shù)據(jù)做FFT會(huì)引入嚴(yán)重的頻譜泄漏因?yàn)槟X電信號(hào)不是整周期截?cái)唷<哟翱梢砸种菩孤h明窗在時(shí)域上對(duì)數(shù)據(jù)兩頭衰減頻域上的效果是旁瓣降低。原始文檔中每30秒數(shù)據(jù)加漢明窗做頻域分析20%重疊是常用的經(jīng)驗(yàn)配置。% 每30秒一段計(jì)算各頻段功率比例 Fs 512; segmentLen 30 * Fs; % 每段30秒 % 讀取濾波后的腦電信號(hào) x numSeg floor(length(x) / segmentLen); for i 1:numSeg seg x((i-1)*segmentLen1 : i*segmentLen); win hamming(segmentLen); % 漢寧窗 segWin seg .* win; % 加窗 spec fft(segWin); power abs(spec(1:segmentLen/21)).^2; % 單邊譜 % 分頻段累計(jì)功率 deltaRange (0.5:0.5:4) / Fs * segmentLen 1; % 同理theta: 4-8Hz, alpha: 8-14Hz deltaPower(i) sum(power(round(0.5/Fs*segmentLen):round(4/Fs*segmentLen))); thetaPower(i) sum(power(round(4/Fs*segmentLen):round(8/Fs*segmentLen))); alphaPower(i) sum(power(round(8/Fs*segmentLen):round(14/Fs*segmentLen))); end邏輯說(shuō)明FFT點(diǎn)數(shù)與段長(zhǎng)相同頻率分辨率約為0.033Hz1/30秒能夠在0.5Hz處有效分辨δ波。功率譜計(jì)算時(shí)取單邊譜即只用頻譜的前一半因?yàn)閷?shí)信號(hào)的頻譜關(guān)于奈奎斯特頻率對(duì)稱。各頻段的功率直接累加對(duì)應(yīng)的FFT譜線不需要?dú)w一化因?yàn)樽詈笠玫氖窍鄬?duì)比例而非絕對(duì)功率。采集時(shí)如果設(shè)備增益不穩(wěn)定絕對(duì)值會(huì)漂移用比例特征可以在一定程度上抵消這種影響。實(shí)驗(yàn)觀察到δ波和α波的功率比例呈現(xiàn)明顯的峰谷對(duì)應(yīng)關(guān)系δ波占比高時(shí)α波占比低反之亦然。這一現(xiàn)象與睡眠的周期性調(diào)節(jié)機(jī)制一致深度睡眠期δ波增強(qiáng)同時(shí)α波受到抑制可以作為分期算法的一個(gè)特征。4.2 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù)確定的推演BP神經(jīng)網(wǎng)絡(luò)用于睡眠分期的輸入層是3個(gè)節(jié)點(diǎn)δ波、θ波和α波的功率比例輸出層5個(gè)節(jié)點(diǎn)對(duì)應(yīng)N1、N2、N3、REM、W五個(gè)階段。數(shù)據(jù)來(lái)自CAP睡眠腦電數(shù)據(jù)庫(kù)使用C4-A1導(dǎo)聯(lián)RK標(biāo)準(zhǔn)中的S3、S4合并為N3后與AASM標(biāo)準(zhǔn)對(duì)齊。隱含層節(jié)點(diǎn)數(shù)的確定遵循經(jīng)驗(yàn)公式2n m其中n為隱含層節(jié)點(diǎn)數(shù)m為樣本數(shù)。這里樣本數(shù)為606位受試者×每個(gè)階段2個(gè)片段×5個(gè)階段因此n取6。這個(gè)經(jīng)驗(yàn)公式保證了網(wǎng)絡(luò)參數(shù)總量3×66×548個(gè)權(quán)重加11個(gè)偏置小于樣本數(shù)避免過(guò)擬合。隱含層采用對(duì)數(shù)S型轉(zhuǎn)移函數(shù)輸出層采用線性函數(shù)。對(duì)數(shù)S型函數(shù)的值域是(0,1)與輸出層的0/1編碼匹配輸出層用線性函數(shù)則是因?yàn)榉诸愝敵霾恍枰獕嚎s范圍。% 創(chuàng)建BP神經(jīng)網(wǎng)絡(luò) net newff([minmax(input_data)], [6 5], {logsig, purelin}, traingdx); % 訓(xùn)練參數(shù)設(shè)置 net.trainParam.lr 0.01; % 學(xué)習(xí)率 net.trainParam.epochs 500; % 最大迭代次數(shù) net.trainParam.goal 0.01; % 目標(biāo)誤差 net.trainParam.show 20; % 每20次迭代顯示一次 [net, tr] train(net, input_train, output_train); output_test sim(net, input_test);代碼說(shuō)明newff的第一個(gè)參數(shù)是輸入數(shù)據(jù)的取值范圍用minmax自動(dòng)獲取第二個(gè)參數(shù)的[6 5]表示隱含層6個(gè)節(jié)點(diǎn)、輸出層5個(gè)節(jié)點(diǎn)logsig和purelin分別指定隱含層和輸出層的轉(zhuǎn)移函數(shù)traingdx是自適應(yīng)學(xué)習(xí)率梯度下降訓(xùn)練函數(shù)它比固定學(xué)習(xí)率的traingd收斂更快因?yàn)楫?dāng)誤差下降緩慢時(shí)自動(dòng)增大學(xué)習(xí)率震蕩時(shí)自動(dòng)減小。學(xué)習(xí)率設(shè)為0.01目標(biāo)誤差0.01最大迭代500次。訓(xùn)練集與測(cè)試集劃分60個(gè)樣本中隨機(jī)選50個(gè)訓(xùn)練、10個(gè)驗(yàn)證。結(jié)果10個(gè)驗(yàn)證樣本中有4個(gè)判斷錯(cuò)誤其中W誤判為N1、N1誤判為REM——這兩類錯(cuò)誤基本不影響睡眠深淺度的判斷因?yàn)镹1本來(lái)就是W和REM之間的過(guò)渡階段。值得注意的是N3深度睡眠在驗(yàn)證集中全部判斷正確說(shuō)明該網(wǎng)絡(luò)對(duì)特征最明顯的深睡階段有很好的識(shí)別能力。4.3 便攜設(shè)備數(shù)據(jù)與醫(yī)院數(shù)據(jù)庫(kù)的偏差處理用CAP數(shù)據(jù)庫(kù)訓(xùn)練、Brainlink設(shè)備實(shí)測(cè)兩條數(shù)據(jù)鏈路的信號(hào)質(zhì)量存在明顯差異。CAP數(shù)據(jù)庫(kù)使用Ag/AgCl電極配合導(dǎo)電膏信號(hào)質(zhì)量穩(wěn)定Brainlink的干電極容易受運(yùn)動(dòng)偽跡影響阻抗偏高。實(shí)際復(fù)現(xiàn)時(shí)如果直接用數(shù)據(jù)庫(kù)訓(xùn)練出的網(wǎng)絡(luò)參數(shù)跑便攜設(shè)備的實(shí)時(shí)數(shù)據(jù)誤差會(huì)偏大。處理手段有兩類一是做遷移學(xué)習(xí)用少量便攜設(shè)備采集的、經(jīng)人工標(biāo)注的數(shù)據(jù)對(duì)網(wǎng)絡(luò)做微調(diào)二是特征歸一化時(shí)以設(shè)備自身基線為準(zhǔn)而不是用數(shù)據(jù)庫(kù)的統(tǒng)計(jì)值。原始論文中提到每30秒數(shù)據(jù)、加漢明窗頻域分析后δ波所占功率比例能大致反映睡眠深淺這說(shuō)明單頻段比例本身就是有效的可視化指標(biāo)即便不做BP網(wǎng)絡(luò)直接看δ波比例的變化曲線也能判斷整晚的睡眠結(jié)構(gòu)。5. 睡眠分期特征的可視化與誤差校準(zhǔn)技巧5.1 δ波與α波的峰谷聯(lián)動(dòng)判讀在僅有單導(dǎo)腦電的條件下睡眠質(zhì)量評(píng)估可以先從目測(cè)曲線入手。原始論文觀測(cè)到δ波與α波的功率比例呈相反趨勢(shì)δ波峰值與α波谷值在時(shí)間軸上重合這個(gè)現(xiàn)象對(duì)應(yīng)睡眠周期中慢波活動(dòng)與覺(jué)醒維持系統(tǒng)的互相抑制機(jī)制。將兩段曲線疊畫(huà)在同一時(shí)間軸上如果發(fā)現(xiàn)峰谷對(duì)應(yīng)關(guān)系清晰、周期約90到120分鐘說(shuō)明這晚的睡眠結(jié)構(gòu)基本正常??焖倏梢暬椒ò?0秒分段加窗做FFT后取頻段功率比例繪制堆疊面積圖或雙折線圖。如果整晚δ波比例單調(diào)下降且沒(méi)有明顯的周期波動(dòng)說(shuō)明深度睡眠缺失或數(shù)據(jù)質(zhì)量有問(wèn)題。睡眠結(jié)構(gòu)的周期性是判斷信號(hào)可用性的第一道篩選。5.2 數(shù)據(jù)質(zhì)量篩查與偽差剔除的實(shí)用方法便攜式設(shè)備整夜采集不可避免會(huì)有偽差段翻身時(shí)電極松動(dòng)、眼動(dòng)幅值過(guò)大、環(huán)境電磁干擾等。偽差段的特征是功率譜上全頻段能量驟增且主要能量集中在30Hz以上高頻段與正常腦電的頻譜結(jié)構(gòu)明顯不同。篩除偽差的方法是計(jì)算每段信號(hào)的總體方差或高頻段如β波以上占總功率的比例超過(guò)閾值的段直接標(biāo)記為無(wú)效。def detect_artifact(segment, fs512, beta_range(14, 30)): 檢測(cè)腦電數(shù)據(jù)段中是否存在偽差段 # 計(jì)算高頻功率占比已知偽差段高頻和總功率均異常升高 from scipy import signal freqs, psd signal.welch(segment, fsfs, nperseg1024) total_power sum(psd) beta_power sum(psd[(freqs beta_range[0]) (freqs beta_range[1])]) beta_ratio beta_power / total_power if total_power 0 else 0 # 方差過(guò)大電極松動(dòng)導(dǎo)致飽和波形或整段均值為極值直流偏置漂移 variance segment.var() return (beta_ratio 0.45) or (variance 5000)閾值說(shuō)明β頻段通常占總功率的比例不超過(guò)30%左右45%以上大概率是偽差段。方差閾值5000取決于設(shè)備量程和增益需要根據(jù)實(shí)際波形幅度做校準(zhǔn)。偽差段處理后在不連續(xù)的時(shí)間軸上重新計(jì)算睡眠結(jié)構(gòu)同時(shí)記錄偽差比例——偽差比例超過(guò)20%的那一晚數(shù)據(jù)應(yīng)當(dāng)作廢說(shuō)明佩戴狀態(tài)出現(xiàn)了明顯松動(dòng)。5.3 單導(dǎo)聯(lián)輸出的睡眠結(jié)構(gòu)修正策略單導(dǎo)聯(lián)能可靠區(qū)分的睡眠階段有限。實(shí)際測(cè)試中W和N1的區(qū)分度較低因?yàn)閮烧叩摩敛ū壤际侵饾u變化的缺乏明顯的突變邊界。如果目標(biāo)只是睡眠質(zhì)量評(píng)估建議把輸出合并成三類清醒/W、淺睡N1N2、深睡N3REM。這樣分類的準(zhǔn)確率會(huì)顯著提升也更貼合用戶對(duì)睡得好不好的直覺(jué)理解。具體操作在模型訓(xùn)練階段把輸出層的5個(gè)節(jié)點(diǎn)合并映射或者將N1與REM的誤差容忍度考慮到損失函數(shù)中。原始論文中的錯(cuò)誤集中在W/N1/REM的互相混淆如果業(yè)務(wù)目標(biāo)是評(píng)估深睡時(shí)長(zhǎng)和睡眠連續(xù)性這些混淆的影響可以被忽略。把輸出層約束為三個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)訓(xùn)練收斂速度更快單導(dǎo)局限性下的魯棒性反而更高。本文還有配套的精品資源點(diǎn)擊獲取