EMD × 睡眠腦波

Empirical Mode Decomposition · Sleep Staging

把一夜的腦波
拆成它自己的節奏

傅立葉分析要你先選好正弦基底,小波分析要你先選好母小波。 但睡眠腦波是非線性、非平穩的——一個 30 秒的 epoch 裡,可能同時藏著 0.8 Hz 的慢波、 持續 0.9 秒的紡錘、還有一個突如其來的 K 複合波。

1998 年,黃鍔(Norden E. Huang)提出經驗模態分解(EMD): 不預設任何基底,讓訊號自己說出它由哪些振盪組成。 這份導覽從演算法本身出發,一路做到能判讀睡眠期別的完整流程——而且每一步你都可以自己動手跑。

  • 10章節
  • 7互動元件
  • 12篇引用文獻
  • 0外部函式庫
即時合成腦波 · N2 期
取樣率 100 Hz偵測中…

第 1 章

為什麼傅立葉不夠用

腦電訊號的兩個性質,讓經典的頻譜分析在睡眠研究裡處處碰壁。

① 非平穩

訊號的統計性質隨時間改變。睡眠紡錘只出現 0.5–2 秒,K 複合波是單次瞬態事件。 傅立葉轉換假設整段訊號由固定振幅的正弦波組成,一個只佔 3% 時間的事件,能量會被抹平到整段 30 秒裡。

② 非線性

神經網路的回饋是非線性的,波形不是純正弦——慢波有明顯的上下不對稱、鋸齒波有陡峭的斜邊。 用正弦基底去逼近,只能靠大量假諧波(spurious harmonics)湊出形狀,這些諧波沒有生理意義。

③ 基底要先選

小波轉換比傅立葉好,但你仍得先決定母小波(Daubechies?Morlet?)與尺度。 不同選擇會給出不同結論。EMD 的基底由資料事後決定(a posteriori),沒有這個自由度問題。

互動 1 · 同一段非平穩訊號,兩種看法

下面這段訊號在中間突然變頻(像是紡錘叢發結束、慢波接手)。看看傅立葉頻譜與 EMD 各自怎麼描述它。

傅立葉頻譜看到兩根獨立的峰,卻完全說不出「先 A 後 B」這件事——時間資訊在轉換中被積掉了。

EMD 讓訊號自己決定要拆成幾個成分,再用希爾伯特轉換讀出每一刻的瞬時頻率:頻率在中點跳變的那一瞬間,被直接畫了出來。

第 2 章

篩選:EMD 的唯一招式

EMD 沒有積分變換、沒有基底矩陣,整個演算法就是一個叫做篩選(sifting)的迴圈, 而且只用到兩件事:找極值點,以及三次樣條內插。

  1. 找極值 找出 x(t) 全部的局部極大值與局部極小值。
  2. 畫包絡 用三次樣條把所有極大值連成上包絡 emax(t),所有極小值連成下包絡 emin(t)。
  3. 取均值 m(t) = ( emax(t) + emin(t) ) / 2,這是訊號的「局部趨勢」。
  4. 扣掉它 h(t) = x(t) − m(t)。
  5. 再篩一次 若 h 還不符合 IMF 條件,把 h 當成新的 x 回到步驟 1。
  6. 收成 h 通過檢查 → 它就是 IMF1。令 r(t) = x(t) − IMF1(t),對殘量 r 重跑整套流程。
  7. 結束 當殘量變成單調函數(極值少於 3 個)就停止。

互動 2 · 一步一步看篩選在做什麼

按「下一次篩選」,觀察上下包絡(虛線)、它們的均值(紅線)被扣掉之後,波形如何逐漸「對稱化」成一個 IMF。

減去均值 m(t) ↓

紅點與藍點是偵測到的極大值/極小值;虛線是三次樣條包絡。當 極值數 與 零交越數 相差不超過 1、且 SD 掉到 0.2 以下,篩選就停止。

第 3 章

IMF:訊號自己長出來的基底

篩選要篩出來的東西叫做本質模態函數(Intrinsic Mode Function, IMF)。 它的定義只有兩條,但這兩條正是「能定義出有意義的瞬時頻率」的充分條件。

條件一

在整段資料中,極值點的數目與零交越點的數目必須相等,或最多相差 1。

→ 不允許「有起伏但不過零」的偏移波,每一次振盪都要真的繞著零來回。

條件二

在任意時刻,由局部極大值構成的包絡與由局部極小值構成的包絡,其平均為零。

→ 波形局部對稱,振幅調變與頻率調變才能被乾淨地分離。

滿足這兩條之後,原始訊號可以被完整重建,沒有任何資訊損失:

x(t)  =  Σi=1n IMFi(t)  +  rn(t)

完備性

加總必定等於原訊號。下面的分解器會實際算出重建誤差給你看——大約在 10⁻¹⁵ 的數值精度上限。

近似正交

IMF 之間近似正交,能量分配有意義,但這是經驗上的性質,不像傅立葉基底有嚴格保證。

類二進位濾波器組

Flandrin 等人 (2004) 發現:對寬頻雜訊做 EMD,各 IMF 的中心頻率大約每階減半,行為像小波的二進位濾波器組——但門檻是資料自己畫的。

互動 3 · EMD 分解器

選一段訊號,按下分解。每個 IMF 右上角標的是它的振幅加權平均瞬時頻率,色塊代表它落在哪個腦波頻帶。

第 4 章

希爾伯特頻譜:讓頻率隨時間走

EMD 只是前半場。把每個 IMF 送進希爾伯特轉換,就得到希爾伯特—黃轉換(HHT)—— 一張真正意義上的時間×頻率×能量圖。

對窄帶的 IMF c(t) 建立解析訊號:

z(t) = c(t) + i·H[c](t) = a(t)·eiθ(t)

於是同時得到瞬時振幅與瞬時頻率:

a(t) = |z(t)| , ω(t) = dθ(t)/dt

關鍵在於:瞬時頻率只有對窄帶、局部對稱的訊號才有物理意義。 直接對原始 EEG 算 ω(t) 會得到一堆負頻率的垃圾; 正是 IMF 的那兩條定義,讓這個量變得可以解釋。這就是為什麼 EMD 必須走在希爾伯特轉換前面。

互動 4 · 希爾伯特頻譜

每個點是一個時間樣本,縱軸是該時刻的瞬時頻率,亮度與大小代表瞬時振幅。試著在 N2 找出紡錘叢發,在 N3 看慢波如何壓住整張圖。

第 5 章

睡眠判期在判什麼

臨床睡眠判期把整夜多項生理檢查(PSG)切成連續的 30 秒 epoch, 每一個 epoch 依 AASM 判讀手冊(Berry et al., 2017)指派一個期別: W(清醒)、N1、N2、N3、R(REM)。 一夜 8 小時 ≈ 960 個 epoch,全靠人工目視判讀。

期別主導頻帶指標波形典型振幅約佔一夜
W 清醒α 8–12 Hz、β 16–30 Hz閉眼時枕區 α 節律、眨眼假影、明顯肌電20–50 µV< 5%
N1θ 4–7 Hzα 消退超過一半、頂尖波(vertex sharp wave)、緩慢眼動50–100 µV2–5%
N2θ + σ 12–16 Hz睡眠紡錘(≥0.5 s 的 11–16 Hz 叢發)、K 複合波紡錘 ~25 µV、K 複合 >100 µV45–55%
N3δ 0.5–2 Hz慢波振幅 >75 µV(峰對峰)且佔該 epoch ≥20%75–200 µV13–23%
R / REM低振幅混合頻率鋸齒波 2–6 Hz、快速眼動、下巴肌張力最低< 30 µV20–25%

互動 5 · 睡眠腦波圖鑑

切換期別,看 30 秒 epoch 的波形、標註出來的特徵事件,以及頻帶能量分布。

一夜的睡眠結構

典型的睡眠週期約 90 分鐘一輪。深睡(N3)集中在前半夜,REM 則在後半夜逐漸拉長—— 這也是為什麼自動判期的錯誤分布會隨時間改變。

第 6 章

把 EMD 接上判期流程

文獻裡以 EMD 為核心的單通道睡眠判期,幾乎都走同一條管線。理解了這五步,就讀得懂這一整個子領域。

  1. 1切 epoch

    單通道 EEG(常用 Fpz-Cz 或 Pz-Oz),每 30 秒一段,100 Hz 取樣 → 3000 點。

  2. 2分解

    對每個 epoch 做 EMD / EEMD / CEEMDAN,取前 K 個 IMF(K 常取 4–8)。

  3. 3抽特徵

    對每個 IMF 取統計動差(變異數、偏度、峰態)、頻帶能量、瞬時頻率與振幅統計、熵與非線性動力學指標。

  4. 4分類

    AdaBoost、Bagging、RUSBoost、隨機森林、SVM。集成式方法特別常見——因為各期的 epoch 數量極度不平衡。

  5. 5評估

    以 Sleep-EDF、DREAMS、SHHS 等公開資料庫做 2 類到 6 類的分類,報告準確率與 Cohen's κ。

為什麼 IMF 特徵抓得住睡眠期別

低階 IMF ↔ 紡錘

IMF1–IMF2 落在 σ/β 範圍。睡眠紡錘是叢發式的,會讓該 IMF 的包絡峰態大幅升高——這正是本頁實驗室用的特徵之一。

高階 IMF ↔ 慢波

N3 的能量幾乎全壓在 δ,對應到最後幾個 IMF 與殘量。N3 的總功率與 REM 差了一個量級以上。

峰態 ↔ 瞬態事件

K 複合波與頂尖波是單次大幅偏移,會讓低頻 IMF 的峰態(kurtosis)遠離高斯值 3。統計動差之所以有效,理由就在這裡。

文獻上的實作與結果

研究分解方法特徵分類器資料回報結果
Hassan & Bhuiyan (2016a)[5] EMDIMF 統計動差AdaBoost + 決策樹Sleep-EDF 2–6 類分類問題
Hassan & Bhuiyan (2016b)[6] CEEMDAN高階統計動差Bootstrap aggregatingSleep-EDF 5 類約 90.7%†
Hassan & Bhuiyan (2017)[7] EEMD統計動差 + 統計檢定選特徵RUSBoostSleep-EDF 6 類 88.07%/5 類 83.49%/4 類 92.66%/3 類 94.23%/2 類 98.15%
Liu et al. (2021)[8] EEMD統計 + 時域 + 非線性動力學集成學習Sleep-EDF / DREAMS / SHHS Sleep-EDF 4 類 93.1%/5 類 91.9%
Huang & Ling (2022)[9] EEMD + 可調 Q 小波(TQWT)時頻聯合特徵機器學習分類器公開睡眠資料庫 結合兩種時頻分解

† 此數值轉引自後續文獻的比較表,非本頁作者自原始摘要核實;其餘欄位的書目資料皆經 Crossref/PubMed 核對。
重要提醒:表中數字不宜直接互相比較。各研究使用的 epoch 子集、受試者切分方式(同受試者內/跨受試者)、 類別不平衡處理都不同。跨受試者驗證的準確率通常會明顯低於同受試者內驗證。

第 7 章

互動實驗室:自己跑一次完整流程

這一節會在你的瀏覽器裡真的跑完第 6 章那條管線:產生標註好的 epoch → EMD 分解 → 抽出 — 維 IMF 特徵 → 訓練最近質心分類器 → 在沒看過的 epoch 上測試。 沒有伺服器,沒有預先算好的答案,所有數字都是現場算出來的。

A訓練

B測試與混淆矩陣

先訓練,再測試

C換你判讀

隨機抽一個 epoch(答案先藏起來)。你先猜,再看演算法從 IMF 讀出了什麼。

第 8 章

EMD 的麻煩,以及大家怎麼繞過去

EMD 沒有解析理論基礎——它是由演算法定義的。這帶來了幾個真實存在、而且會影響睡眠判期結果的問題。

模態混疊(mode mixing)

同一個 IMF 裡混進了差距很大的不同尺度,或同一個尺度被拆散到不同 IMF。 起因是訊號的間歇性——而睡眠腦波充滿間歇事件:紡錘、K 複合波、體動假影。 後果是 IMF 失去物理意義,抽出來的特徵也跟著不穩定。

端點效應

訊號兩端沒有極值點可用,樣條會在邊界飛散,誤差往內傳播。 30 秒 epoch 的頭尾若剛好切在一個 K 複合波上,影響會很明顯。 常見對策是鏡射延拓(本頁的實作就用了這招)或極值預測。

沒有理論保證

IMF 數目、停止準則、內插方式都會改變結果,卻沒有唯一正解。 兩篇論文寫著「用了 EMD」,實際做出來的分解可能相當不同——這讓文獻間的比較變得困難。

計算成本

EEMD 要跑上百次完整分解才做集成平均。整夜 960 個 epoch × 100 次集成, 在嵌入式的居家睡眠監測裝置上是很實際的負擔。

噪音輔助的解法

EEMD2009

刻意在訊號上加白雜訊再分解,重複多次取平均。白雜訊填滿了整個時頻平面,讓間歇訊號在每次實現中都能找到對應尺度,混疊因此被平均掉。[2]

CEEMDAN2011

EEMD 的殘留雜訊會破壞完備性。CEEMDAN 改成每一階分別加入特定雜訊並計算唯一殘量,重建誤差可忽略、頻譜分離更好、篩選次數更少。[3]

代價

都是用計算量換穩定度,而且集成次數與雜訊振幅又變成兩個要調的參數。天下沒有白吃的午餐。

互動 6 · 親眼看見模態混疊

底下是一條連續的 1 Hz 慢波,加上幾段短促的 12 Hz 叢發—— 結構上就是「慢波背景 + 間歇的紡錘/K 複合波」。 理想的分解應該把叢發乾淨地放進 IMF1,慢波留給後面的 IMF。看看標準 EMD 做到了沒有。

標準 EMD

EEMD(噪音輔助集成)

那 EMD 在深度學習時代還有用嗎?

端到端的深度模型(DeepSleepNet、U-Time 等)在公開資料庫上的表現已經追平甚至超越人工判讀一致性, 不需要手工特徵。但 EMD 管線仍保有兩個難以取代的位置: 可解釋性——每個 IMF 都對應到看得見、講得出生理意義的振盪,而不是一個黑箱的隱藏層; 以及低資料需求——集成式分類器在幾百個 epoch 上就能訓練,深度模型通常需要數萬個。 在穿戴式裝置、動物睡眠研究、罕見疾病族群這些資料稀缺的場景,這兩點都還很值錢。

第 9 章

參考文獻

以下書目資料經 Crossref / PubMed / 出版社頁面核對。

  1. Huang, N. E., Shen, Z., Long, S. R., Wu, M. C., Shih, H. H., Zheng, Q., Yen, N.-C., Tung, C. C., & Liu, H. H. (1998). The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis. Proceedings of the Royal Society of London A, 454(1971), 903–995. doi:10.1098/rspa.1998.0193 EMD 與 HHT 的原始論文
  2. Wu, Z., & Huang, N. E. (2009). Ensemble empirical mode decomposition: A noise-assisted data analysis method. Advances in Adaptive Data Analysis, 1(1), 1–41. doi:10.1142/S1793536909000047 EEMD
  3. Torres, M. E., Colominas, M. A., Schlotthauer, G., & Flandrin, P. (2011). A complete ensemble empirical mode decomposition with adaptive noise. Proc. IEEE ICASSP 2011, 4144–4147. doi:10.1109/ICASSP.2011.5947265 CEEMDAN
  4. Flandrin, P., Rilling, G., & Gonçalvès, P. (2004). Empirical mode decomposition as a filter bank. IEEE Signal Processing Letters, 11(2), 112–114. doi:10.1109/LSP.2003.821662 IMF 的二進位濾波器組性質
  5. Hassan, A. R., & Bhuiyan, M. I. H. (2016). Automatic sleep scoring using statistical features in the EMD domain and ensemble methods. Biocybernetics and Biomedical Engineering, 36(1), 248–255. doi:10.1016/j.bbe.2015.11.001 EMD + AdaBoost
  6. Hassan, A. R., & Bhuiyan, M. I. H. (2016). Computer-aided sleep staging using Complete Ensemble Empirical Mode Decomposition with Adaptive Noise and bootstrap aggregating. Biomedical Signal Processing and Control, 24, 1–10. doi:10.1016/j.bspc.2015.09.002 CEEMDAN + Bagging
  7. Hassan, A. R., & Bhuiyan, M. I. H. (2017). Automated identification of sleep states from EEG signals by means of ensemble empirical mode decomposition and random under sampling boosting. Computer Methods and Programs in Biomedicine, 140, 201–210. doi:10.1016/j.cmpb.2016.12.015 EEMD + RUSBoost · PMID 28254077
  8. Liu, C., Tan, B., Fu, M., Li, J., Wang, J., Hou, F., & Yang, A. (2021). Automatic sleep staging with a single-channel EEG based on ensemble empirical mode decomposition. Physica A: Statistical Mechanics and its Applications, 567, 125685. doi:10.1016/j.physa.2020.125685 EEMD + 非線性動力學特徵
  9. Huang, Z., & Ling, B. W.-K. (2022). Joint ensemble empirical mode decomposition and tunable Q factor wavelet transform based sleep stage classifications. Biomedical Signal Processing and Control, 77, 103760. doi:10.1016/j.bspc.2022.103760 EEMD + TQWT
  10. Rilling, G., Flandrin, P., & Gonçalvès, P. (2003). On empirical mode decomposition and its algorithms. Proc. IEEE-EURASIP Workshop on Nonlinear Signal and Image Processing (NSIP-03), Grado, Italy. PDF 停止準則與端點處理的實作細節
  11. Berry, R. B., Brooks, R., Gamaldo, C. E., et al. (2017). The AASM Manual for the Scoring of Sleep and Associated Events: Rules, Terminology and Technical Specifications, Version 2.4. American Academy of Sleep Medicine, Darien, IL. AASM 本頁各期波形規格的依據
  12. Kemp, B., Zwinderman, A. H., Tuk, B., Kamphuisen, H. A. C., & Oberyé, J. J. L. (2000). Analysis of a sleep-dependent neuronal feedback loop: the slow-wave microcontinuity of the EEG. IEEE Transactions on Biomedical Engineering, 47(9), 1185–1194. doi:10.1109/10.867928 Sleep-EDF 資料庫 · PMID 11008419

關於這個網站

全部的訊號處理都是這個頁面自己算的:FFT、希爾伯特轉換、自然三次樣條、篩選迴圈、EMD/EEMD、 特徵抽取與最近質心分類器,皆為原生 JavaScript 實作,沒有使用任何外部函式庫。 想讀程式碼的話:assets/dsp.js(演算法核心)、assets/eeg.js(訊號合成與特徵)、 assets/plot.js(繪圖)、assets/app.js(互動邏輯)。

頁面中的腦波為依文獻規格合成之教學用訊號,不可用於任何臨床判讀。