黃鍔院士 · Empirical Mode Decomposition × Sleep EEG

夜夜YAYA把一夜的腦波,一葉一葉剝開

睡眠腦波是非線性、非平穩的訊號,傅立葉分析看不清它。黃鍔院士 1998 年提出的經驗模態分解(EMD)讓資料自己說出它包含哪些尺度。這個網站把 EMD 的每一步做成可以動手的實驗,並直接對真實的 Sleep-EDF 整夜腦波即時運算。

  1. 為什麼傅立葉的盲點,與瞬時頻率如何補上
  2. 演算法一步一步親手把 IMF 篩出來
  3. 睡眠研究真實腦波、整夜結構、自動分期與文獻
  • 原生 JavaScript 實作 · 附測試與 PyEMD 交叉驗證
  • Sleep-EDF 真實整夜腦波 · 1128 個 epoch
  • 25 篇 Crossref 查證文獻
  • GitHub ↗

00黃鍔院士與 EMD:從 NASA 到睡眠研究

黃鍔(Norden E. Huang),1937 年生於湖北,1960 年畢業於國立臺灣大學,1967 年取得約翰霍普金斯大學流體力學博士。他在 NASA 戈達德太空飛行中心工作期間,為了分析非線性、非平穩的海洋波浪資料,於 1998 年提出經驗模態分解(EMD)與 Hilbert 譜,NASA 將這套方法命名為 Hilbert–Huang 轉換(HHT),並於 2003 年選為 NASA 年度發明。他於 2000 年獲選美國國家工程院院士、2004 年獲選中央研究院院士,2006 年起任國立中央大學講座教授,在台灣成立數據分析方法研究中心,把 HHT 帶進地球科學、工程與生醫訊號等領域。

1998EMD/HHT 原始論文(Proc. R. Soc. A)
2000美國國家工程院院士
2003NASA 年度發明:HHT
2004中央研究院院士
2006國立中央大學講座教授,成立數據分析方法研究中心
2009EEMD:噪音輔助的資料分析
2016Holo-Hilbert 譜分析(HHSA)

下面是他本人與長期合作者的關鍵論文,每一篇都標註它對本站哪一節的意義。

  1. 1998
    The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysisHuang NE, Shen Z, Long SR, et al. · Proc. R. Soc. Lond. A 454:903–995 · DOI定義 IMF、篩選程序、SD 停止準則、瞬時頻率與 Hilbert 譜——本站第 02、04 節的實作依據。
  2. 2003
    A confidence limit for the empirical mode decomposition and Hilbert spectral analysisHuang NE, Wu MLC, Long SR, et al. · Proc. R. Soc. Lond. A 459:2317–2345 · DOIS-number 停止準則與 EMD 結果的信賴區間;本站 sNumber 選項的來源。
  3. 2004
    A study of the characteristics of white noise using the empirical mode decomposition methodWu Z, Huang NE · Proc. R. Soc. Lond. A 460:1597–1611 · DOI證明白噪音經 EMD 後各 IMF 的能量與週期呈固定關係,可用來判斷 IMF 是否只是噪音——也是 EEMD 的理論鋪墊。
  4. 2005
    Hilbert–Huang Transform and Its Applications(專書,2014 年二版)Huang NE, Shen SSP(編) · World Scientific · DOIHHT 的系統性教科書,含方法、數學問題與跨領域應用。
顯示其餘 6 篇(2005–2019)
  1. 2008
    A review on Hilbert-Huang transform: method and its applications to geophysical studiesHuang NE, Wu Z · Reviews of Geophysics 46:RG2006 · DOI十年回顧:方法的優缺點、邊界效應、停止準則與模態混疊的整理,本站第 09 節的限制討論大量參考此文。
  2. 2009
    Ensemble empirical mode decomposition: a noise-assisted data analysis methodWu Z, Huang NE · Adv. Adapt. Data Anal. 1:1–41 · DOIEEMD 解決模態混疊——本站第 05 節的實驗與第 07 節的 EEMD 特徵。
  3. 2009
    On instantaneous frequencyHuang NE, Wu Z, Long SR, et al. · Adv. Adapt. Data Anal. 1:177–229 · DOI瞬時頻率何時有物理意義——本站第 01 節。
  4. 2011
    On Hilbert spectral representation: a true time-frequency representation for nonlinear and nonstationary dataHuang NE, Chen X, Lo MT, Wu Z · Adv. Adapt. Data Anal. 3:63–93 · DOI與中央大學羅孟宗合作,論證 Hilbert 譜相較於傅立葉/小波時頻圖的差異——本站第 04 節的對照。
  5. 2016
    On Holo-Hilbert spectral analysis: a full informational spectral representation for nonlinear and non-stationary dataHuang NE, Hu K, Yang ACC, et al. · Phil. Trans. R. Soc. A 374:20150206 · DOI對 IMF 的振幅包絡再做一層 EMD,分開頻率調變與振幅調變;與台灣團隊(楊靜修、梁偉光、葉家榮、阮啟弘、彭仲康)合作,適合分析睡眠中慢波—紡錘波這類跨頻率耦合。
  6. 2019
    Unraveling nonlinear electrophysiologic processes in the human visual system with full dimension spectral analysisNguyen KT, Liang WK, Lee V, Chang WS, Muggleton NG, Yeh JR, Huang NE, Juan CH · Scientific Reports 9 · DOIHHSA 應用於人類 EEG 的示範(中央大學認知神經科學研究所),顯示黃鍔院士近年的重心已轉向腦電訊號。

生平資料來源:Wikipedia「Norden E. Huang」條目(出生、學歷、院士年份、中央大學職位)、NASA 技術報告(HHT 命名與 2003 年年度發明)。所有論文資料皆以 Crossref 查證。

01為什麼睡眠訊號需要 EMD?

傅立葉分析把訊號展開成固定頻率、固定振幅的正弦波之和。這件事隱含兩個假設:訊號是線性的(波形可以疊加而不互相影響)而且平穩的(統計性質不隨時間改變)。睡眠腦波兩者都不滿足:

深入說明
  • 非平穩:N2 期的紡錘波(sleep spindle,11–16 Hz)只持續 0.5–2 秒;K 複合波是單一的瞬態事件;從 N2 進入 N3 時,慢波逐漸變大變慢。
  • 非線性:神經元集體放電產生的波形不是完美正弦波,常常「上升快、下降慢」。傅立葉必須用一堆諧波(2 倍頻、3 倍頻……)拼出這種形狀,但那些諧波在生理上並不存在。

EMD 的想法完全不同:它不問「這個訊號由哪些正弦波組成」,而是問「這個訊號自己的振盪有幾種時間尺度」。它把訊號拆成少數幾個本質模態函數(Intrinsic Mode Function, IMF),每個 IMF 都是振幅與頻率可隨時間改變的單一振盪,因此可以用 Hilbert 轉換算出瞬時頻率。下面的小實驗就是黃鍔 1998 年論文裡的經典例子。

實驗:一個「非線性」的波,傅立葉看到諧波,Hilbert 看到頻率在擺動

訊號 x(t) = cos(2π·1·t + ε·sin(2π·1·t))。ε = 0 時是純正弦波;ε 越大,波形越不對稱(波峰變尖、波谷變平)。

訊號(前 5 秒)
怎麼看

橫軸:時間(秒);縱軸:振幅(無單位)。滑鼠移到圖上可讀值,鍵盤 ← → 可移動游標。

傅立葉功率頻譜

除了 1 Hz 的主峰,還冒出 2 Hz、3 Hz……的「諧波」(對數尺度才看得清楚)——這是用正弦波硬拼非正弦波形的代價。

Hilbert 瞬時頻率

只有一個成分,但它的頻率在每一個週期內來回擺動(intra-wave frequency modulation):這才是波形不對稱的真正原因。

02演算法拆解:篩選(sifting)

EMD 的核心是一個叫 sifting(篩選) 的迭代程序。一個 IMF 必須滿足兩個條件(Huang et al., 1998):

  1. 整段訊號的極值個數與零交越個數相等,或最多差 1;
  2. 在任一時間點,由局部極大值構成的上包絡線與局部極小值構成的下包絡線,其平均值為 0。
深入說明

篩選就是不斷把「包絡線平均」從訊號裡扣掉,直到剩下的部分滿足上面兩個條件:

h1(t) = x(t) − m1(t),  h11(t) = h1(t) − m11(t),  … 直到 h1k 是 IMF,記為 c1(t)

什麼時候停?黃鍔建議用相鄰兩次篩選結果的標準差:

SD = Σt |h1(k−1)(t) − h1k(t)|² / Σt h1(k−1)(t)²  <  0.2 ~ 0.3

抽出 c1 後,殘差 r1 = x − c1 再重複同樣的程序得到 c2、c3……直到殘差變成單調函數(沒有足夠的極值可以畫包絡線)。最後 x(t) = Σ ci(t) + rn(t),分解是完備的:所有 IMF 加上殘差可以完全重建原訊號。

包絡線用三次樣條(cubic spline)通過極值點;訊號兩端沒有極值可以參考,我們採用 Rilling 等人的鏡像延伸把最靠近邊界的極值對稱反射出去,避免包絡線在邊緣「甩尾」。這是實作 EMD 最容易被忽略、但影響最大的細節之一。

親手篩出 IMF

目前 IMF
1
篩選次數
0
極值個數
–
零交越個數
–
SD
–
按「下一步」開始。
目前的 h(t):訊號、極值、包絡線與其平均
怎麼看

藍:目前的 h(t);橘點/橘線:局部極大值與上包絡線;綠點/綠線:局部極小值與下包絡線;紫:包絡線平均 m(t)。縱軸 µV。

h(t) − m(t):下一輪的候選 IMF
怎麼看

紅:h(t) − m(t)。若 SD 小於門檻且極值數與零交越數相差 ≤ 1,就被接受為 IMF;否則成為下一輪的 h(t)。

03真實睡眠腦波的 IMF 分解

下面的 30 秒腦波片段取自 PhysioNet Sleep-EDF Expanded 資料庫受試者 SC4002E0 的 Fpz-Cz 導程(100 Hz),睡眠階段來自專家人工判讀。挑選原則:避開階段切換的邊界、排除振幅超過 150 µV 的雜訊 epoch;N2 期優先挑選含有紡錘波的片段(用 YASA 偵測)。EMD 在你的瀏覽器裡即時計算,每個 IMF 再以 Hilbert 轉換算出能量加權的平均瞬時頻率,並據此標上傳統腦波頻帶。

進階參數
原始訊號(µV)
怎麼看

一個 30 秒 epoch,橫軸秒、縱軸 µV。顏色對應上方的睡眠階段。

本質模態函數(IMF):由高頻到低頻
殘差 r(t):趨勢
怎麼看

殘差是最後剩下的單調趨勢(沒有足夠極值可再篩選),通常是緩慢的基線漂移。

各頻帶能量占比(把 IMF 依平均瞬時頻率歸類)

IMF 明細

IMF平均瞬時頻率 (Hz)頻帶能量占比RMS (µV)篩選次數

04Hilbert 譜 vs. 傅立葉頻譜圖

對每個 IMF 做 Hilbert 轉換,得到解析訊號 z(t) = c(t) + i·H[c(t)] = a(t)·eiθ(t),瞬時振幅 a(t) 與瞬時頻率 ω(t) = dθ/dt。把所有 IMF 的 (t, ω, a²) 疊到時間–頻率平面,就是 Hilbert 譜(Hilbert–Huang Transform, HHT)。它與短時傅立葉(STFT)頻譜圖的差別在於:STFT 的時間解析度與頻率解析度互相牽制(視窗 2 秒 → 頻率解析度只有 0.5 Hz,且任何事件都被抹成 2 秒寬),而 Hilbert 譜的頻率是逐點算出來的,短暫的紡錘波會呈現為一道清楚的短線。

深入說明

兩張圖使用第 03 節目前選取的片段。顏色為相對能量(對數尺度,0 dB = 該圖最大值)。

Hilbert 譜(EMD + Hilbert 轉換)
Hilbert 譜(EMD + Hilbert 轉換)
怎麼看

每個像素 0.2 s × 0.25 Hz;顏色深淺為該格內所有 IMF 的 a² 總和(對數尺度,右側色條由淡到深)。空白代表該時刻沒有任何 IMF 落在這個頻率。

STFT 頻譜圖(Hann 視窗 2 秒)
STFT 頻譜圖(Hann 視窗 2 秒)
怎麼看

同一片段的短時傅立葉功率;2 秒視窗使任何事件在時間上被抹成約 2 秒寬、頻率解析度約 0.5 Hz。

邊際譜比較:Hilbert 邊際譜(對時間積分)vs. 傅立葉功率譜(皆以最大值正規化)

傅立葉譜告訴你「整段 30 秒內某個頻率的能量有多少」;Hilbert 邊際譜的意義是「某個頻率曾經出現的機率有多高」(Huang et al., 1998)。對一個 30 秒裡只出現兩次、各 1 秒的紡錘波,兩者的解讀完全不同。

05模態混疊與集成經驗模態分解(EEMD)

EMD 最出名的弱點是模態混疊(mode mixing):當一個高頻振盪只間歇出現(例如紡錘波),有它的時段極值密集、沒它的時段極值稀疏,同一個 IMF 就會一下子裝著 14 Hz、一下子裝著 1 Hz;反過來,同一個尺度也可能被拆到不同 IMF。這正是睡眠腦波最常見的情況。

深入說明

Wu 與 Huang(2009)的解法很巧妙:在訊號上加入白噪音再分解,重複很多次,把結果平均。白噪音均勻填滿整個時間–頻率平面,提供一把「均勻的尺」讓每個時段的極值密度一致;而不同次試驗的噪音彼此獨立,平均之後互相抵消,殘留噪音的量級為 ε/√N。這就是 EEMD。代價是運算量乘以 N,而且各次分解的 IMF 相加不再完全等於原訊號——後來的 CEEMDAN(Torres et al., 2011)就是為了修正這一點。

實驗:1 Hz 慢波 + 兩段 14 Hz 短暫振盪(模擬慢波上的紡錘波)

合成訊號
怎麼看

橘色底色標示 14 Hz 短暫振盪出現的兩段時間(3–4.5 s、9–10.5 s)。

EMD

EEMD

觀察重點:在 EMD 裡,IMF1 在沒有 14 Hz 振盪的時段會「掉下去」抓 1 Hz 慢波的一部分,1 Hz 成分因此被切碎;EEMD 之後 IMF1 只剩短暫振盪,慢波完整地留在同一個 IMF。

06從 IMF 到自動睡眠分期

睡眠分期是把整夜的 PSG 每 30 秒判成 W / N1 / N2 / N3 / REM 之一。人工判讀費時且判讀者之間一致性有限,因此自動分期是睡眠研究的長期課題。Hassan 與 Bhuiyan(2016, 2017)的作法是把單導程 EEG 用 CEEMDAN 或 EEMD 拆成 IMF,對每個 IMF 計算平均、變異數、偏態、峰度等統計特徵,再交給集成式分類器(bagging、RUSBoost);Liu 等人(2021)也用 EEMD 特徵做單導程自動分期。這些工作的共同邏輯是:IMF 是資料自適應的頻帶,能比固定的濾波器頻帶更貼近每一段訊號真正的振盪成分。

深入說明

下面用本站的 16 個真實片段重現這個想法的第一步:對每個片段做 EMD,算出 IMF 特徵,在二維平面上看看不同睡眠階段是否分得開。這只是示意——真正的研究使用數千個 epoch 與交叉驗證。

怎麼看

每個符號是一個 30 秒 epoch,顏色與形狀同時表示睡眠階段;空心大符號為各階段質心。滑鼠靠近可看片段編號與數值。

顯示所有片段的特徵表
片段階段δ 能量θ 能量α 能量σ 能量β 能量IMF1 頻率IMF2 頻率主 IMF 頻率RMSIMF1 峰度

「能量」為該頻帶內所有 IMF 的能量占比;頻率為 Hilbert 能量加權的平均瞬時頻率;準確率為留一法(leave-one-out)最近質心分類。

07從片段到整夜:IMF 特徵能追蹤睡眠結構嗎?

上一節只有 16 個片段。這一節把同一位受試者整夜 1128 個 30 秒 epoch(熄燈前 30 分鐘到起床後 30 分鐘)全部用本站同一套 js/emd.js 做 EMD(離線約 10 秒),把每個 epoch 的 IMF 特徵沿著時間畫出來,和專家判讀的睡眠圖(hypnogram)對照。這才是睡眠研究真正關心的尺度:EMD 抽出的特徵是否跟著睡眠週期一起起伏。

專家判讀睡眠圖(hypnogram)· SC4002E0
怎麼看

縱軸由下而上:N3、N2、N1、REM、W(愈上面愈清醒);橫軸為自熄燈前 30 分鐘起算的小時數。每晚約 4–5 個週期,前半夜 N3 多、後半夜 REM 長。

背景色標示專家判讀的 N3(黃)與 REM(粉)時段。試試「δ 頻帶 IMF 能量占比」與「訊號 RMS」:每一個 N3 時段都對應一個高峰;再看「IMF1 平均瞬時頻率」在 REM 與清醒時上升。

整夜留一法分類:從兩個特徵到 Hassan & Bhuiyan 式的特徵向量

混淆矩陣(列:專家判讀,欄:預測)
專家 \ 預測WN1N2N3REM
怎麼看

留一法(leave-one-out):每個 epoch 用其餘 1126 個 epoch 訓練後預測。所有特徵先標準化(z-score)。EEMD 資料(約 250 KB)在切換時才載入。

結果階梯:特徵與分類器一步步加上去
設定特徵數準確率Cohen's κ備註
EMD · δ 能量 × RMS · 最近質心268.3 %0.58本節預設;只抓到「慢波多不多」
EMD · 10 個摘要特徵 · k-NN1082.7 %0.77加入 θ/β 能量、IMF1 頻率、峰度
EEMD · 10 個摘要特徵 · k-NN1084.5 %0.79EEMD 使各 epoch 的模態對齊,σ/α 能量不再幾乎為 0
EEMD · 摘要 + 8 個模態的頻率與能量 · k-NN2684.2 %0.79Hassan & Bhuiyan 式「逐模態統計量」特徵向量
參考:YASA(LightGBM,數十個頻譜/時域特徵;Week 1 作業)—84.2 %0.79同一位受試者、同一段夜間紀錄
怎麼看

上表由 tools/eval_night.mjs 離線計算,與本頁互動結果一致。注意這是單一受試者內的留一法:相鄰 epoch 高度相關,數字會比跨受試者驗證樂觀;它說明的是「IMF 特徵蘊含多少睡眠結構的資訊」,而非可推廣的分期效能。

各階段的特徵中位數(整夜)
特徵WN1N2N3REM

σ 與 α 頻帶的中位數接近 0 並不代表沒有紡錘波或 α 波,而是 IMF 的平均頻率大約逐階減半(Flandrin et al., 2004 的濾波器組特性),很少剛好落在 12–16 Hz;這正是文獻改用 EEMD/CEEMDAN 或直接用 IMF 統計動差的原因。

08文獻導覽:EMD 在睡眠研究中的脈絡

以下 25 篇文獻皆透過 Crossref 以 DOI 逐一查證(作者、期刊、卷期、頁碼)。分成五條線:方法本身的演進(含台灣團隊主導的 CEEMD 與 HHSA)、睡眠分期、睡眠呼吸中止的偵測、紡錘波與生理互動的微觀分析,以及本站使用的資料來源。

1998
The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis
Huang NE, Shen Z, Long SR, Wu MC, Shih HH, Zheng Q, Yen NC, Tung CC, Liu HH
Proc. R. Soc. Lond. A 454:903–995 · DOI

EMD 與 Hilbert 譜的原始論文:定義 IMF 的兩個條件、篩選程序、SD 停止準則、瞬時頻率與邊際譜。本站第 01、02 節的內容與實作都直接對應此文。

方法黃鍔
2009
On instantaneous frequency
Huang NE, Wu Z, Long SR, Arnold KC, Chen X, Blank K
Adv. Adapt. Data Anal. 1(2):177–229 · DOI

系統整理「瞬時頻率」的定義與計算方法,說明為什麼只有 IMF 這種單成分訊號的瞬時頻率才有物理意義——這是第 01 節實驗背後的理論。

方法
2009
Ensemble empirical mode decomposition: a noise-assisted data analysis method
Wu Z, Huang NE
Adv. Adapt. Data Anal. 1(1):1–41 · DOI

提出 EEMD 解決模態混疊:加白噪音、多次分解、取平均。第 05 節的實驗即重現此文的核心論證;睡眠分期文獻幾乎都改用 EEMD 或其後續版本。

方法EEMD
2010
Multivariate empirical mode decomposition
Rehman N, Mandic DP
Proc. R. Soc. A 466:1291–1302 · DOI

把 EMD 推廣到多通道訊號(MEMD),讓多導程 PSG(EEG、EOG、EMG)的 IMF 在頻率上對齊,解決各通道 IMF 數目不一致的問題。

方法多通道
2011
A complete ensemble empirical mode decomposition with adaptive noise
Torres ME, Colominas MA, Schlotthauer G, Flandrin P
IEEE ICASSP 2011:4144–4147 · DOI

CEEMDAN:在每一階段加入「已分解過的噪音 IMF」而非原始白噪音,使分解重新變得完備且集成次數更少。Hassan 與 Bhuiyan 2016 年的睡眠分期即以此為特徵抽取器。

方法CEEMDAN
2009
The nonlinear and nonstationary properties in EEG signals: probing the complex fluctuations by Hilbert–Huang transform
Lo MT, Tsai PH, Lin PF, Lin C, Hsin YL
Adv. Adapt. Data Anal. 1(3):461–482 · DOI

中央大學羅孟宗團隊以 HHT 分析人類 EEG 的 α 波,示範瞬時頻率/振幅如何呈現腦波的非線性與非平穩特性,是台灣把 HHT 帶進腦波研究的代表作。

腦波台灣
2009
Sleep stage classification based on EEG Hilbert-Huang transform
Li Y, Fan Y, Gu L, Tong Q
IEEE ICIEA 2009:3676–3681 · DOI

早期直接以 HHT 的時頻特徵做睡眠分期的嘗試,說明 IMF 的能量分布可對應各睡眠階段的主導節律。

睡眠分期
2006
Detection of spindles in sleep EEGs using a novel algorithm based on the Hilbert-Huang transform
Yang Z, Yang L, Qi D
In: Wavelet Analysis and Applications (Applied and Numerical Harmonic Analysis), Birkhäuser, pp. 543–559 · DOI

用 EMD 把睡眠 EEG 拆成 IMF 後計算 Hilbert 譜,以高時頻解析度自動偵測紡錘波——正是第 04 節「短暫事件在 Hilbert 譜中是一道短線」的應用。

紡錘波
2010
Automatic screening of obstructive sleep apnea from the ECG based on empirical mode decomposition and wavelet analysis
Mendez MO, Corthout J, Van Huffel S, Matteucci M, Penzel T, Cerutti S, Bianchi AM
Physiol. Meas. 31(3):273–289 · DOI

從單導程心電圖的心率變異與 QRS 面積序列抽出 EMD/小波特徵,以分鐘為單位篩檢阻塞型睡眠呼吸中止(OSA),是 EMD 用於睡眠呼吸中止的早期代表。

睡眠呼吸中止ECG
2013
Investigating the interaction between heart rate variability and sleep EEG using nonlinear algorithms
Yeh JR, Peng CK, Lo MT, Yeh CH, Chen SC, Wang CY, et al.
J. Neurosci. Methods 219(2):233–239 · DOI

以 EMD 系列的非線性方法分析睡眠中心率變異與腦波的交互作用(心腦耦合),顯示 EMD 不只用來分期,也能探討睡眠的生理機制。

生理互動台灣
2014
Screening of obstructive sleep apnea with empirical mode decomposition of pulse oximetry
Schlotthauer G, Di Persia LE, Larrateguy LD, Milone DH
Med. Eng. Phys. 36(8):1074–1080 · DOI

只用血氧飽和度(SpO₂)訊號做 EMD,從 IMF 的振盪特徵篩檢 OSA——展示 EMD 對低取樣率、慢變化的睡眠訊號同樣適用。

睡眠呼吸中止SpO₂
2016
Computer-aided sleep staging using Complete Ensemble Empirical Mode Decomposition with Adaptive Noise and bootstrap aggregating
Hassan AR, Bhuiyan MIH
Biomed. Signal Process. Control 24:1–10 · DOI

單導程 EEG → CEEMDAN → 各 IMF 的高階統計量 → bagging 分類器,在 Sleep-EDF 上完成自動分期。第 06 節的示意實驗就是這條流程的簡化版。

睡眠分期CEEMDAN
2017
Automated identification of sleep states from EEG signals by means of ensemble empirical mode decomposition and random under sampling boosting
Hassan AR, Bhuiyan MIH
Comput. Methods Programs Biomed. 140:201–210 · DOI

同一團隊改用 EEMD 特徵搭配 RUSBoost 處理各睡眠階段樣本數極不平衡的問題(N1 很少、N2 很多)。

睡眠分期EEMD
2021
Automatic sleep staging with a single-channel EEG based on ensemble empirical mode decomposition
Liu C, Tan B, Fu M, Li J, Wang J, Hou F
Physica A 567:125685 · DOI

近期以 EEMD 為特徵基礎的單導程自動分期研究,說明在深度學習時代 IMF 特徵仍是可解釋、低運算量的選擇。

睡眠分期
2022
A deep learning framework for automatic sleep apnea classification based on empirical mode decomposition derived from single-lead electrocardiogram
Setiawan F, Lin CW
Life 12(10):1509 · DOI

成功大學團隊:把單導程 ECG 先做 EMD,再把 IMF 餵給 1D/2D CNN,於 PhysioNet Apnea-ECG 資料集達到 93.8% 的片段分類準確率——EMD 作為深度學習前處理的範例。

睡眠呼吸中止深度學習台灣
2024
Method and system for automated detection of sleep spindles using a single EEG channels based TEO and EMD
Li Y, Song K, Zhang Y, Karray F
Expert Syst. Appl. 249:123661 · DOI

結合 Teager 能量算子與 EMD,在單一 EEG 通道上精確定位紡錘波的起迄時間——說明 EMD 在紡錘波偵測上至今仍是活躍的方法。

紡錘波
2003
A confidence limit for the empirical mode decomposition and Hilbert spectral analysis
Huang NE, Wu MLC, Long SR, Shen SSP, Qu W, Gloersen P, Fan KL
Proc. R. Soc. Lond. A 459(2037):2317–2345 · DOI

提出 S-number 停止準則(連續 S 次篩選極值與零交越數相等或差 1),並用不同停止準則的集合估計 EMD 結果的信賴區間——本站實作的 sNumber 選項即來自此文。

方法停止準則
2004
Empirical mode decomposition as a filter bank
Flandrin P, Rilling G, Gonçalvès P
IEEE Signal Process. Lett. 11(2):112–114 · DOI

以寬頻雜訊做數值實驗,證明 EMD 的行為近似「二進制濾波器組」:每往下一階 IMF,中心頻率大約減半。這是把 IMF 對應到 δ/θ/α/σ 頻帶的理論依據,也說明了為什麼這種對應只是近似。

方法濾波器組
2005
Empirical mode decomposition: a method for analyzing neural data
Liang H, Bressler SL, Desimone R, Fries P
Neurocomputing 65–66:801–807 · DOI

神經科學界(Desimone、Fries)系統性檢視 EMD 是否適合神經電生理訊號:肯定其處理非平穩振盪的優勢,也點出邊界效應與 IMF 詮釋的限制。

腦波神經科學
2010
Complementary ensemble empirical mode decomposition: a novel noise enhanced data analysis method
Yeh JR, Shieh JS, Huang NE
Adv. Adapt. Data Anal. 2(2):135–156 · DOI

CEEMD:把白噪音以正負成對的方式加入,平均後噪音精確抵消,用較少的集成次數就能恢復分解的完備性。台灣(元智大學)團隊與黃鍔院士合作。

方法CEEMD台灣
2014
Improved complete ensemble EMD: a suitable tool for biomedical signal processing
Colominas MA, Schlotthauer G, Torres ME
Biomed. Signal Process. Control 14:19–29 · DOI

改良版 CEEMDAN:減少殘留噪音與「假模態」,並以生醫訊號為例說明適用性。是目前睡眠分期文獻最常採用的 EMD 變體之一。

方法ICEEMDAN
2016
On Holo-Hilbert spectral analysis: a full informational spectral representation for nonlinear and non-stationary data
Huang NE, Hu K, Yang ACC, Chang HC, Jia D, Liang WK, Yeh JR, et al.
Phil. Trans. R. Soc. A 374(2065):20150206 · DOI

黃鍔院士與台灣團隊提出的 HHSA:對 IMF 的振幅包絡再做一層 EMD,把頻率調變與振幅調變分開展成二維譜,適合分析跨頻率的調變耦合(例如睡眠中慢波與紡錘波的振幅調變)。這是 EMD 家族最新的發展方向。

方法HHSA台灣
2016
Automatic sleep scoring using statistical features in the EMD domain and ensemble methods
Hassan AR, Bhuiyan MIH
Biocybern. Biomed. Eng. 36(1):248–255 · DOI

Hassan 系列的第一篇:用原始 EMD(而非 CEEMDAN)的 IMF 統計動差搭配 AdaBoost,並比較十種分類器;與同年的 CEEMDAN 版本並讀,可看出噪音輔助分解帶來的差異。

睡眠分期EMD
2000
Analysis of a sleep-dependent neuronal feedback loop: the slow-wave microcontinuity of the EEG
Kemp B, Zwinderman AH, Tuk B, Kamphuisen HAC, Oberyé JJL
IEEE Trans. Biomed. Eng. 47(9):1185–1194 · DOI

Sleep-EDF 資料庫的來源論文;本站所有真實腦波片段都來自這個資料集(sleep-cassette 子集,受試者 SC4002E0)。

資料來源
2000
PhysioBank, PhysioToolkit, and PhysioNet: components of a new research resource for complex physiologic signals
Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PC, Mark RG, Mietus JE, et al.
Circulation 101(23):e215–e220 · DOI

PhysioNet 平台的引用論文;Sleep-EDF 透過 PhysioNet 以 Open Data Commons Attribution License 公開。

資料來源

09與 AI 討論的紀錄、設計決策與限制

這個網站是在 Claude Code 的協助下完成的。以下整理製作過程中真正影響設計的問題與結論,以及我們自己驗證過的事實。

為什麼不用 FFT 或小波轉換就好?

FFT 假設平穩、線性,對 30 秒的睡眠 epoch 只能給「平均」頻譜,看不到紡錘波何時出現;小波雖然有時頻解析度,但基底是預先選定的(母小波),解析度仍受測不準原理限制。EMD 的基底由資料決定,IMF 的瞬時頻率是逐點的。代價是 EMD 沒有封閉的數學理論(沒有唯一性與收斂性的證明),這是它最常被批評的地方——所以我們在第 02 節把每一步都攤開來讓人檢查。

篩選的停止準則怎麼選?我們實際比較了什麼?

Huang 1998 用 SD 在 0.2–0.3;2003 年又提出 S-number 準則(連續 S 次篩選極值與零交越數相等或差 1)。我們的實作兩者都支援(sdThreshold、sNumber),並加上 maxSift = 50 的上限避免「過度篩選」——篩太多次會把 IMF 磨成振幅固定的純調頻訊號,失去物理意義。第 02 節可以直接切換 SD 門檻觀察篩選次數與 IMF 的差別。

邊界效應怎麼處理?

最早的版本只用自然三次樣條,包絡線在訊號兩端會劇烈甩動,錯誤逐階累積到低頻 IMF。改用 Rilling 等人的鏡像延伸(把最靠近兩端的 2 個極值對稱反射出去)後問題明顯改善。這也是為什麼 Hilbert 瞬時頻率我們在計算平均時捨棄前後各 5% 的樣本。

模態混疊真的會在睡眠腦波裡發生嗎?

會,而且非常典型。紡錘波正是「間歇出現的高頻振盪」,第 05 節用合成訊號重現了 Wu 與 Huang 描述的現象;在第 03 節的真實 N2 片段,若用 EMD,IMF2 常常在紡錘波之間的空檔混入較慢的背景活動,切換成 EEMD 後會乾淨許多。這解釋了為什麼睡眠分期的文獻幾乎都用 EEMD/CEEMDAN。

IMF 就等於 δ、θ、α、σ、β 頻帶嗎?

不是。IMF 是資料自適應的,同一個 IMF 的瞬時頻率在 30 秒內可能從 3 Hz 漂到 8 Hz;不同 epoch 的「IMF 3」也不一定對應同一個頻帶。本站用能量加權的平均瞬時頻率把 IMF「暫時」歸到傳統頻帶只是為了方便閱讀。做分類時要特別小心「IMF 編號對齊」的問題——這也是 EEMD 固定模態數、MEMD 對齊多通道的動機之一。

第 06 節的分期示意為什麼只有 16 個片段?準確率能相信嗎?

16 個片段是為了讓瀏覽器能即時算完整條流程(EMD 每個 epoch 約 1–3 毫秒)。留一法最近質心的準確率只能說明「這兩個特徵有沒有區分力」,不能推論到真實效能;正式研究用數千個 epoch、多位受試者與交叉驗證,而且 N1 期在人工判讀之間的一致性本來就低。

資料為什麼選 Sleep-EDF SC4002E0?

它是課程 Week 1 作業指定的公開資料,我們已在先前作業用 YASA 做過自動分期(準確率 84.2%、κ = 0.79),對這位受試者的整夜結構有把握。片段挑選避開階段邊界、排除 >150 µV 的雜訊;清醒期另外排除振幅 >80 µV 的眼動/汗液漂移片段,否則 EMD 的能量會被 0.3 Hz 的漂移主導。

部署:為什麼是 GitHub Pages 而不是 Zeabur?

作業原本要求部署到 Zeabur。查閱 Zeabur 官方文件(2026 年 9 月)後確認其「共享叢集」已停止服務,新帳號必須先綁定付費的專用伺服器才能建立專案;2026-09-23 以 Zeabur CLI 實測,建立專案時 API 回覆「Shared clusters are deprecated. Please rent a Server」,最便宜的伺服器為每月 3 美元。因此改為雙平台:GitHub Pages(主要網址)與 Cloudflare Workers(emd-sleep-explorer.emd-sleep-explorer.workers.dev,以 wrangler.jsonc 靜態資產模式部署)。repo 內同時保留 zeabur.json 與一鍵腳本 tools/deploy_zeabur.sh,租用伺服器後即可部署,不需修改任何檔案。本站是純靜態網站,不需要任何後端。

我們怎麼確認自己寫的 EMD 是對的?

兩層驗證。第一層是有解析解的單元測試(tests/test_emd.mjs):Bluestein FFT 對照直接 DFT、Hilbert 轉換對純音給出正確的瞬時頻率與振幅、EMD 完備重建(誤差 10⁻¹⁴)、雙音分離、模態混疊下 EEMD 優於 EMD。第二層是與 Python 套件 PyEMD 在同樣 16 個真實 epoch 上交叉比對(docs/validation.md):用本站預設的 Huang 1998 SD 準則時,前三階 IMF 的相關係數中位數 0.69;把 PyEMD 額外的「極大值全為正、極小值全為負」條件也加進來(strictExtrema 選項)後升到 0.83,高、低頻合計的相關係數 0.87/0.89。結論:差異來自停止準則而非實作錯誤,而且 PyEMD 多篩幾次會把 IMF1 的頻率系統性推高,正是「過度篩選」的實例。

整夜的結果說明了什麼?

第 07 節把整夜 1128 個 epoch 全部做 EMD 與 EEMD。只用「δ 頻帶 IMF 能量占比」與「訊號 RMS」兩個特徵、最近質心分類器,留一法準確率 68%、κ 0.58,N3 幾乎全對、N1 幾乎全錯。把 10 個摘要特徵交給 k-NN 後升到 83%;改用 EEMD 特徵(模態對齊、σ/α 能量不再幾乎為 0)再升到 84.5%、κ 0.79,與 Week 1 作業用 YASA(數十個頻譜特徵 + LightGBM)在同一位受試者得到的 84.2%、κ 0.79 相當。這說明 IMF 特徵確實蘊含了睡眠結構的主要資訊,而且 EEMD 對「特徵對齊」的幫助是可量化的——正是 Hassan 與 Bhuiyan 系列論文走的路。但這是單一受試者內的留一法,相鄰 epoch 高度相關,數字比跨受試者驗證樂觀。

已知限制
  • EMD 沒有解析理論,結果對取樣率、雜訊、停止準則與邊界處理都敏感。
  • EEMD 的運算量是 EMD 的 N 倍;在瀏覽器裡 200 次集成約需 1 秒。
  • Hilbert 瞬時頻率在振幅接近 0 的時段會發散,Hilbert 譜在這些點不可靠。
  • 只用單一受試者的單一導程;Fpz-Cz 靠近前額,易受眼動影響。