//Logo Image
作者:吳科沅(2012-07-28);推薦:徐業良(2012-08-23)
附註:本文為一百學年度元智大學機械工程研究所吳科沅碩士論文「適用於居家環境具止鼾功能之智慧型床墊設計與開發」第章。

第三章 鼾聲監測裝置之設計與建置

本節介紹鼾聲監測裝置之設計與建置,其中最重要的步驟是鼾聲特徵之辨識。本研究鼾聲辨識主要從時域著手,由一組低通濾波器過濾非鼾聲頻帶的訊號後,根據鼾聲一起一伏的特性進行判別。

3.1 鼾聲時域特徵分析

鼾聲主要集中在100Hz的低頻區域[Smithson, 1995],實際蒐集鼾聲樣本可發現鼾聲主要在0~200Hz的聲音頻帶內。以巨觀的角度看來自一整晚的鼾聲中節錄出來的5分鐘聲音波形(圖3-1),當中每個波形起伏都是來自於鼾聲,可以發現鼾聲是非常有規律的重覆進行。

3-1. 連續5分鐘的鼾聲記錄

3-2以更仔細的角度觀察4次連續的鼾聲,將鼾聲持續時間稱作Tduration,鼾聲間隔時間稱作Tinterval,當中每次維持的時間和間隔的時間都很固定,因此只要知道正確的鼾聲維持時間和間隔時間特性,就可以利用此一特性來區分所收錄的聲音訊號是屬於鼾聲或非鼾聲。若有一聲音訊號維持的時間符合鼾聲的特性,而且在間隔一段時間後又再有一次符合鼾聲長度特性的聲音訊號產生,而間隔的時間長度也必需要符合鼾聲特性,就可將聲音判別為鼾聲而非一般雜音。

3-2. 四次鼾聲波形

本研究鼾聲監測裝置採用濾波曲線較為平滑的一階主動式濾波器,對外界接收聲音先行濾波,去除高頻訊號,觀察鼾聲在時間軸上的特性,此時的運算頻率為12Hz。上述之四次鼾聲波形經濾波,其訊號成為如圖3-3的狀態,鼾聲由複雜的上下振盪成為平滑的連續遞增與遞減訊號,此時程式每秒產生12個資料點。本研究對TdurationTinterval採用和Cheng等人[2008]鼾聲監測研究相同的定義,若訊號連續6個資料點(約0.5秒)均為遞增表示鼾聲開始,將Tduration歸零;連續9個資料點(約0.75秒)均為遞減表示鼾聲結束,紀錄此時的Tduration即為鼾聲持續時間,並且將Tinterval歸零;偵測到再一次連續6個資料點均為遞增,紀錄此時的Tinterval即為鼾聲間隔時間。如此即可得到鼾聲判斷中所需的鼾聲持續時間及鼾聲間隔時間。

3-3. 鼾聲判斷模式

一聲音訊號要確認其為鼾聲,必須符合以下四個規則:

(1)   聲音訊號Tduration符合一般鼾聲維持時間的範圍;

(2)   聲音訊號Tinterval符合一般鼾聲間隔時間的範圍;

(3)   Tduration+Tinterval符合一般呼吸週期範圍;

(4)   符合以上特徵之聲音訊號重複出現。

為界定一般鼾聲TdurationTinterval的範圍,Cheng等人[2008]錄製了5位經耳鼻喉科醫師診斷有嚴重打鼾問題,需要做夜間多項生理監測檢查的患者,在居家睡眠環境中整晚之鼾聲記錄。患者之間的TdurationTinterval分佈並不完全相同,但時間範圍相當一致。圖3-45位患者所有的鼾聲Tduration整合在一張圖中,總共有5,024個鼾聲,99.0%的鼾聲Tduration0.6~1.8秒的範圍內,因此鼾聲辨識規則(1)Tduration的範圍就設定在0.6~1.8秒之間。圖3-5亦將5位患者所有的鼾聲Tinterval整合在一張圖中,98.5%的鼾聲Tinterval1.4~4.0秒的範圍內,因此本研究鼾聲辨識規則(2)Tinterval的範圍就設定在1.4~4.0秒之間。

http://140.138.40.170/optimalweb/articlesystem/article/compressedfile/(2004-06-28)%20%E9%BC%BE%E8%81%B2%E7%9B%A3%E6%B8%AC%E8%A3%9D%E7%BD%AE%E4%B9%8B%E8%A8%AD%E8%A8%88%E6%A6%82%E5%BF%B5.files/image035.gif

3-4. 所有鼾聲Tduration統計圖

3-5. 所有鼾聲Tinterval統計圖

一般正常成年人的呼吸頻率文獻記載為每分鐘16次,孩童與青少年呼吸頻率較快,5歲時平均呼吸頻率為每分鐘26次,15-20歲時平均呼吸頻率為每分鐘20次【張問禮,民84年】。Cheng等人研究中記錄的5位患者每分鐘打鼾次數最少12次、最多20次,故採用較保守的估計設定合理的鼾聲訊號頻率範圍為每分鐘11~21次,即每次鼾聲的週期最長5.5秒,最短2.8秒,因此本研究鼾聲辨識規則(3)中聲音訊號之Tduration+Tinterval應該介於2.8~5.5sec之間,才認定其為鼾聲。

在日常生活中其他聲音還是有機會呈現上述間隔模式,同時也符合鼾聲週期,然而符合以上特徵之聲音訊號重複出現,因此鼾聲辨識規則(4)中,符合鼾聲辨識規則(1)(2)(3)之聲音訊號必須連續發生n次後,才認定其為鼾聲。例如n=2即符合前述規則之聲音訊號必須發生連續2次才開始視為鼾聲,n的數值愈大也就是評定為鼾聲的門檻愈高。使用者剛準備入睡時,容易發出許多聲響,同時有鼾聲的可能性也較低,n值可設定較高;隨著判定鼾聲累積次數增加,鼾聲可能性提高,n值設定可調低。本研究中n值設定如圖3-6,鼾聲監測裝置啟動時n=4,隨著累積的鼾聲總數增加,n值逐漸降低至1,亦即只要符合鼾聲時間特性1次,即視為鼾聲。

3-6. 訊號重複次數n值的設訂

3.2 鼾聲監測裝置之設計與建置

本研究鼾聲監測裝置監測流程如圖3-7所示,鼾聲監測裝置以電容式麥克風接受聲波訊號,搭配放大電路轉換成20Hz電壓訊號進入Arduino資料伺服器。在Arduino進行軟體濾波之後,以鼾聲判斷演算法程式辨別聲波訊號為鼾聲或其他環境異音,配合睡眠者睡姿判斷以及鼾聲持續的時間,啟動床墊內的頭部抬升機構將床頭抬高不同角度。鼾聲判斷結果並儲存在記憶卡中。

3-7. 鼾聲監測裝置之監測流程圖

3-7中的硬體部份包括Arduino資料伺服器與麥克風,而軟體部份如時間設定程式、鼾聲判斷程式、資料儲存模組均在Arduino上執行。

(1)  Arduino微處理器

如圖3-8所示,Arduino是一塊基於開放原始碼的I/O介面板,使用者可以Arduino為基礎,擴展各自需求的硬體,目前已發展出許多不同版本供使用者自行選擇,有高開發性、低入門門檻、價格便宜等優勢。如圖3-9所示,Arduino的微處理器使用類似JavaC語言的開發環境,使用者可以在Arduino開發板上外接各種電子元件,如LED、喇叭、馬達、開關、溫濕度感測器、紅外線發射與接收器、時間晶片、LCD顯示裝置等,並且可以外接WiFiXBeeBluetoothRFIDGPS等各種通訊模組。

Arduino有許多不同規格的開發板,本研究使用最基本的Arduino UNO開發板,大小尺寸寬70mm、高54mm,處理器為ATmega328,工作電壓適用7V~12V,支援至少14I/O數位輸出/入腳位與6I/O類比輸出/入腳位等,統整之基本規格如下表3-1

3-1. Arduino UNO規格表

項目

規格

處理器(CPU)

ATmega32832 KB的快閃記憶體、2 KBSRAM1 KBEEPROM

工作電壓

5V

輸入電壓

7V~12V(最小與最大限制電壓6V~12V

USB端口(USB Port)

支援USB供電

數位式輸入/輸出(Digital I/O)

14個(內含TXRX腳位)

類比式輸入/輸出(Analog I/O)

6

直流電流輸入/輸出腳位

40mA(毫安培)

直流電流3.3V腳位

50mA(毫安培)

指示燈(LEDs)

4個(TXRX指示燈、2個系統運轉指示燈)

按鍵(Buttons)

1Reset

每秒運轉次數

16 MHz(百萬赫茲)

描述: C:\Documents and Settings\Eason\桌面\ArduinoUnoFront.jpg描述: C:\Documents and Settings\Eason\桌面\ArduinoUnoBack.jpg

3-8. (a) Arduino Uno正面,(b) Arduino Uno背面(http://arduino.cc/en/)

描述: E:\Thesis\Proposal\圖\image027.jpg

3-9. Arduino開發環境

本研究開發之鼾聲監測裝置的需具備資料儲存功能,必須將Arduino UNO硬體擴充。如圖3-10所示,SD/MMC儲存模組中含有SD插槽和micro SD插槽,可從兩個插槽中選一個來使用,另外還提供了UARTIIC擴充腳位。Arduino UNO本身沒有時間晶片,必須外加PCF8563時間模組,如圖3-10(b)所示。PCF8563是基於I2C接口的時間模組,透過SDASCL腳位將時間燒錄至晶片中,簡單的日曆即可被建立於此晶片中。此模組有兩種供電模式,一是由外部提供3.3V的電壓,另一是由內部的水銀電池提供電壓。

描述: E:\Thesis\Proposal\圖\sdcard.JPG

3-10. (a)SD/MMC儲存模組

3-10. (b) PFC8563時間模組

(2)  麥克風

一般常見的聲音感測器有電容式麥克風和動圈式麥克風兩種,相較於動圈式麥克風,電容式麥克風具有體積輕巧、反應靈敏、頻率範圍廣、堅固耐摔等優點,因此本設計將採用電容式麥克風為感測器並配合放大器放大其輸出電壓訊號。

經選擇本鼾聲監測裝置所採用的麥克風為「今音電子公司」所生產的電容式麥克風,型號為ECM-60P(圖3-11),原因為本麥克風的頻率響應在50Hz~3kHz之間,有穩定的輸出,適合於鼾聲100Hz左右的頻帶,其頻率響應圖與外觀尺寸如圖3-12所示,其詳細規格參見今音公司網站。

3-11. ECM-60P外觀尺寸

描述: ECM-10頻響圖1

3-12. ECM-60P頻率響應圖

將上述ArduinoSD/MMC儲存模組、PCF8563時間模組與麥克風整合,即完成鼾聲監測裝置硬的部分,如圖3-13所示,右下角麥克風並搭配一組放大電路,將聲波訊號轉為電壓訊號,圖3-14為包裝後的成品圖。

3-13. 完成之鼾聲監測裝置實體照片

3-14. 包裝後之鼾聲監測裝置照片

3.3 鼾聲監測裝置軟體設計

如前所述,Arduino是使用類似JavaC語言的開發環境,基本的Arduino程式語法被分為三部分:

Ÿ   編譯程式碼與宣告:Include, char, int…等;

Ÿ   啟動Arduino時所需設定之參數:void setup

Ÿ   單晶片在運作時,重複執行的每一項工作項目,撰寫的程式內容:void loop

本研究在軟體的撰寫上依功能不同可區分為鼾聲判斷程式、時間設定程式與資料儲存模組等三個部份,以下針對軟體的設計加以說明。

(1)  鼾聲判斷程式

鼾聲判斷程式是整個軟體程式最重要的部份,主要分成訊號前處理與鼾聲判斷。

本研究鼾聲監測裝置麥克風接收鼾聲訊號,搭配一組放大電路將聲波訊號轉為電壓訊號進入Arduino後,首先進行訊號前處理,將電壓訊號平滑化。圖3-15為將4次鼾聲的電壓訊號以20Hz的擷取頻率記錄。圖3-15的波形雜訊非常多,所以使用10筆做一次總合也就是類似積分的方式,來強化訊號的能量,拉大有聲與無聲時的差距,以利於判斷,波形成為如圖3-16所示。然而圖3-16的波形還是有過多的起伏,因此再使用移動平均(Moving Average)進行平滑化,即成為如圖3-17的藍色平滑曲線。

3-15. Arduino紀錄的鼾聲波形(20Hz)

3-16. 強化訊號(20Hz)

3-17. 移動平均(Moving Average)進行平滑化(藍線)

訊號成為如圖3-17的狀態後,鼾聲由複雜成為平滑的連續遞增與遞減訊號,此時程式每秒產生20個資料點。如3.1節中鼾聲時域特徵判斷的描述,定義若訊號連續6個資料點均為遞增表示鼾聲開始,將Tduration歸零;連續連續9個資料點均為遞減表示鼾聲結束,紀錄此時的Tduration即為鼾聲持續時間,並且將Tinterval歸零;監測到再一次連續6個資料點均為遞增,紀錄此時的Tinterval即為鼾聲間隔時間。如此即可得到鼾聲判斷中所需的鼾聲持續時間及鼾聲間隔時間,如圖3-18所示。再配合上述的Tduration以及Tinterval的時間特性,即可進行鼾聲判斷。

3-18. 鼾聲判斷模式

(2)  時間設定程式

Arduino透過I2C通訊,將年月日(rtc.setDate)與時分秒(rtc.setTime)燒錄至PCF8563時間晶片中(圖3-19),但為避免Arduino DDS每次開機都會重新設定PCF8563時間,因此燒錄完後必須將此段程式自Arduino刪除。為了讓PCF8563時間晶片可以獨立計算時間,所以由內部的水銀電池提供電壓。

描述: C:\Users\Kerr\Desktop\未命名2.JPG

3-19. 時間設定程式

(3)  資料儲存模組

3-20Arduino之啟動程式(void setup)Arduino啟動時需先偵測是否有裝置SD/MMC模組,如圖3-24紅框所示,當Arduino監測到SD/MMC模組時,程式傳送”initialization done.”並啟動鼾聲監測裝置;當Arduino偵測到無SD/MMC模組時,程式傳送”initialization failed!.”提醒使用者檢查SD/MMC模組。

描述: C:\Users\Kerr\Desktop\未命名.JPG

3-20. 偵測是否有裝上SD/MMC模組程式

3-21. SD/MMC模組顯示值

在鼾聲判斷程式中,當鼾聲判斷程式為鼾聲時,同時也將資料儲存於SD卡中,如圖3-22所示,當監測到鼾聲時,將會自動啟動SD/MMC模組並儲存鼾聲時間與日期;當儲存結束時並會關閉SD/MMC模組。

3-22. 偵測是否有裝上SD/MMC模組程式

參考資料

AJ.Smithson, CJ.Griffiths, M.J.Drinnan, G.J.Gibsont, 1995, “METHODS FOR ASSESSING SNORIN,” Sleep Monitoring, pp.5/1 - 5/3.

Chen, M.-C., 2004, “The Design and Testing of a Snoring Detector” Master. thesis, Yuan Ze University, Taiwan.

Cheng, C.-M., 2007, “Develpoment of a Portable Device for Tele-Monitoring of Sleep in a Home Environment” Ph.D. thesis, Yuan Ze University, Taiwan.

張問禮,民國84,“運動對心肺功能的影響”,實用運動生理問答pp.97-122