對於本論文之硬體架構以及測試結果進行總結
第二章 演算法介紹
NEO(Nonlinear Energy Operator)為一棘波偵測演算法,由 H. M. Teager 提出,
並首度由 J. F. Kaiser 在論文上正式推導而來,因此又名 Teager's Energy Operator
或 Teager-Kaiser Energy Operator,NEO 的優點是具有高精確率與低資源消耗,
為近年來棘波偵測之主流。本節將更詳細的說明其核心動作,以及在一些會使用
假設有限且離散的時間內腦波之訊號串列 S = [s1, s2, s3, … … , s𝑚] ,其中s1 到s𝑚代表採樣樣本點數,令 NEO 偵測出之棘波串列 x 定義如下:
x(𝑛) = [𝑥1(𝑛), … , 𝑥𝑁(𝑛)] , 𝑛 = 1, … , 𝑡 (2.1)
x(𝑛)為 NEO 輸出之第 𝑛 筆棘波串列、N 為棘波串列之向量維度,意即一棘波串
列所包含的樣本點數(𝑥1到𝑥𝑁)、t 為輸出棘波串列個數。
對任意s𝑖 ∈ S,NEO 對於 energy operator (ψ)定義如下式:
𝜓[s𝑖] = 𝑠𝑖2− s𝑖+1∙ s𝑖−1 (2.2)
則 NEO 定義閥值 γ,當𝜓[s𝑖] > γ時,則宣稱 NEO 在s𝑖這一點找到了峰值。
假設𝑠𝑝∈ S且滿足𝜓[s𝑝] > γ,則𝑠𝑝判斷為一峰值,當峰值出現時,則收集𝑥𝑖 =
s𝑝−𝑁+𝑖 , 𝑖 = 1, … …,N,依照式 2.1 組成一棘波訊號 x,而後就可將該筆棘波訊號
輸出至特徵擷取分類器進行特徵值分析。
從上述式 2.2 中可得,NEO 演算法使用簡單的運算即可完成閥值之比較,其
硬體僅需要兩個乘法器、一個加法器、一個減法器,以及一個比較器,卻有高偵
測準確率及低複雜度之特性,故我們選擇他來實現棘波偵測之硬體實作。
第二節 快速特徵擷取演算法
特徵擷取是從棘波中擷取出能代表該棘波之訊號轉換,通常以二維或三維的
數值做為描述訊號使用,本論文提出快速特徵擷取法則作為本論文之特徵擷取單
元。快速特徵擷取法是經由偵測棘波之峰值(最高峰值或最低峰值),根據峰值位
置將棘波拆解成前段及後段,接著位移該棘波之基準線至峰值,而後對基準線與
棘波波形間的面積做離散積分。快速特徵擷取法是與 Zero crossing 較為接近之法
則,兩者之共通點有:運算簡單、消耗硬體資源低、輸出皆為二維數值。若我們
以最低峰值為偵測峰值,並假設棘波維度為 64,如圖 2.1,在維度 N = 28 時找到
最低維度,則位移基準線至能量-60,將 N=1 到 N=28 設為前段、N=29 到 N=64
設為後段,對面積做離散積分。
圖 2. 1 快速特徵擷取法示意圖(以最低峰值為例)
定義一棘波x = [𝑥1, 𝑥2, … … , 𝑥𝑁],其中𝑥1到𝑥𝑁為棘波樣本點數、N 為棘波維
尋找基準點的觀念在 Zero crossing 當中也有出現。與 Zero crossing 不同的點是,
Zero crossing 使用對棘波的前端樣本做累加,近一步解釋,使用者可針對棘波前 數個樣本做正負值的累加,經由累加值去找尋跨過零點的樣本。從圖 2.2 中可看
出,快速特徵擷取法之判斷準則為峰值,同種類之棘波對於峰值的表現相似,若
因為雜訊而影響峰值,則峰值僅會位移在原峰值兩側,對於特徵值的定義影響為
位移對應之區域面積。若從 Zero crossing 的角度而言,判斷的準則為跨越零點的
樣本點,而這個準則包含了兩個部分:累加值、跨過零點的樣本數,其中累加值
更是使用棘波前數個樣本點之正負總計,因此若雜訊而造成誤差產生,例如:累
加值的正負號顛倒、跨過零點的樣本位置改變,又或者跨過零點的樣本數目增加,
會導致能判斷為基準點的範圍擴大,這些皆會使 Zero crossing 的特徵值有不小的
改變。
從圖 2.2 中可看出同類型之不同棘波間快速特徵擷取法則的峰值誤差範圍有
限,而 Zero crossing 之累加值判斷及跨過零點的樣本點數卻受到不小的影響。
圖2. 2 使用wave clus的C_Easy2_noise01腦波資料之同類型三個棘波對照圖
更進一步的探討,我們依舊使用 wave clus 的C_Easy2_noise01腦波資料,
並且使用 matlab 的 Uniformly distributed random numbers 作為雜訊來源,與
原始棘波相加,藉此將棘波的雜訊往上提升,其結果如圖 2.3。當雜訊提高
時,棘波會因為雜訊的干擾使得原樣本點的數值有些許改變,而雜訊越高的
時候當然改變的會更為劇烈,那麼這些改變會對快速特徵擷取法有何反應?
圖 2. 3 上圖為原始棘波訊號、下圖為加入雜訊之棘波訊號(SNR=33.42)
使用快速特徵擷取法分析圖 2.3 的兩棘波數據,以最高峰值為判斷準則,分
別搜尋原始棘波訊號跟加入雜訊之棘波訊號,則原始棘波的最高峰值出現在第
31 個樣本點,加入雜訊之棘波訊號的最高峰值也出現在第 31 個樣本點。因此在 雜訊低的時候,對於峰值的影響並不顯著。接著就不同的雜訊程度,分別計算原
始棘波與加入雜訊的棘波的最高峰值與最低峰值之波形圖,如圖 2.4 所示,並計
算圖 2.4 對應各 SNR 之間最高峰值與最小峰值之位移關係,如表 2.1 所示。
圖 2. 4 左一為原始棘波,其餘為参入雜訊之棘波訊號,
雜訊強度分別為:左二 SNR=36、左三 SNR=15、右一 SNR=8、右二 SNR=5、右三 SNR=2
表 2. 1 不同雜訊強度混入同一棘波之最大、最小峰值位置表
由圖 2.4 及表 2.1 中可知,快速特徵擷取法則在面對雜訊的處理能力不錯,
原因是棘波帶有強烈的峰值效應(最大峰值或者最小峰值),當棘波出現時所出現
峰值之間的時間越接近,則此棘波之電位改變幅度劇烈。反之,則表示該棘波電
位較平穩。若相減後正負值來看也可將棘波分成兩類,分別為正向棘波及反向棘
波,其中正向棘波指的是棘波由高峰值往低峰值(值為正),反向棘波為低峰值往
高峰值(值為負)。
第三章 電路系統架構
第三章說明如何實現本論文之棘波分類系統架構,本論文之電路系統架構包
含三部分: 快速特徵擷取單元、NEO 棘波偵測單元以及棘波偵測與特徵擷取中間
的記憶體單元,其中記憶體單元為一 FIFO 的暫存器串列。第一節說明棘波分類
系統架構及資料運算流程。第二節介紹快速特徵擷取法之硬體電路實做。第三節
介紹 NEO 之硬體電路實做。
第一節 棘波分類系統之硬體架構
在第二章第一節的圖 1.1 裡說明典型的棘波分類系統架構。而在本論文裡則
討論典型棘波分類系統架構中的棘波偵測以及特徵擷取,故修改圖 1.1 之系統流
程圖,如圖 3.1 所示:
圖 3. 1 本論文之系統流程圖
如第二章所敘述,Spike Detector 於本論文中採用 NEO 棘波偵測法則,Feature
Extraction 採用快速特徵擷取法則。其中 NEO 之輸入資料為腦波訊號,輸入或輸 出可為單個通道或者多個通道的訊號資料,本論文之棘波偵測單元以多通道之棘
波偵測為硬體實做,故 Spike Detector 之輸出為多個通道的棘波訊號。而特徵擷
取單元一次處理一筆棘波資料(於本章第二節詳述),因此在棘波偵測單元與特徵
擷取單元中間勢必得加入一組記憶體單元,用來協助儲存特徵擷取單元尚無法處
理之棘波資料。因此本論文之系統架構如圖 3.2 所見:
圖 3. 2 本論文之棘波分類系統架構圖
因此,本系統之資料流為:輸入腦波訊號後,經由 NEO 判斷是否有棘波出現,
若有棘波出現則輸出至 FIFO 記憶體單元,記憶體單元儲存棘波資料後,將棘波
提供給特徵擷取單元使用。因為採用之 NEO 實做於多通道偵測,在同一時間內,
NEO 能偵測到數筆筆的棘波,故記憶體單元必須儲存多筆棘波,當特徵擷取單 元運算完畢後,記憶體單元會提供下一筆棘波資料。後續二、三小節將會就電路
行為做更詳細的解釋。
第二節 特徵擷取單元
根據式 3.1 加入最大與最小峰值的位置做判斷,特徵擷取之兩特徵值𝑓1和𝑓2
分別如式 3.2 所示:
𝑓1 = 𝑎1 / (𝑖𝑚𝑖𝑛− 𝑖𝑚𝑎𝑥)
𝑓2 = 𝑎2 / (𝑖𝑚𝑖𝑛− 𝑖𝑚𝑎𝑥)
(3.2)
本論文之特徵擷取法的硬體單元實做基於偵測棘波的最低峰值。如上述,本
論文之峰值偵測分為兩種實做方式:常規峰值偵測法與快速峰值偵測法。在第二
章第二節中提及,快速特徵擷取法為一搜尋峰值之演算法,故以常規偵測峰值偵
測為例,流程圖如下圖 3.3 所示:
圖 3. 3 常規之偵測棘波峰值流程圖
何為常規峰值偵測法?當棘波從記憶體單元被推出後,須先將該筆棘波儲存
至擷取單元內,接著依序從第 1 個棘波樣本點到第 N 個樣本點做最小峰值及最
大峰值的偵測,偵測出位置後將位置送往特徵值計算單元,特徵值計算單元則依
照最低峰值的位置將棘波分成前後兩端,位移基準點後分別就兩部分做離散積分
取得面積,並將最高峰值與最低峰值間的位置差距設為判斷,將面積與判斷相除
得到兩特徵值。上述之棘波資料流程圖如下圖 3.4 所示:
圖 3. 4 基於常規峰值偵測法之快速特徵擷取法則資料流程圖
根據圖 3.4 之資料流程圖,主要單元為:棘波暫存器、峰值比較器、特徵值累
加器、擷取單元控制器及除法器,其硬體架構設計如下圖 3.5 所示:
圖 3. 5 基於常規棘波峰值偵測之快速特徵擷取法電路圖
觀察圖 3.4 及圖 3.5 可知,常規棘波峰值偵測電路架構非常仰賴暫存器單元,
在峰值比較和特徵值累加時皆需要讀取暫存器單元。而峰值比較器偵測完結果後
就能送出權重,即便比較器已完成工作,仍需要等待特徵值累加器讀取棘波資料,
當等待特徵值累加器進行相加的同時,峰值比較器與除法器處於待機狀態,又因
為棘波暫存器單元正在被使用所以也無法輸入下一筆棘波資料,必須等待特徵值
累加器完成計算並送出特徵值,進入除法器時才能更新暫存器單元。由上述可知,
此一架構須先完成所有計算才能讀取下一筆棘波,且暫存器單元佔用了不少硬體
面積。
為了改進上述的缺點,本論文使用快速峰值偵測法實做快速特徵擷取演算法,
快速峰值偵測經由不同的運算順序達成符合第二章第二節之演算法的特徵值運
算,並且無須額外暫存器單元儲存棘波,其運算順序如後述。
假設當前輸入之樣本為𝑥𝑗。樣本𝑥𝑗進入特徵擷取單元後直接推入後段累加器
做累加,同時進入峰值比較,若峰值比較偵測出新的最低峰值則將該樣本數值設
為新的最低峰值,並且更新前段及後段累加器,更新方法為將先前視為後段之積
為新的最低峰值,並且更新前段及後段累加器,更新方法為將先前視為後段之積