文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.166939
中文引用格式: 王皓,陳少勇,王佳權,等. 非接觸式睡眠狀態識別算法硬件化實現[J].電子技術應用,2017,43(8):62-65.
英文引用格式: Wang Hao,Chen Shaoyong,Wang Jiaquan,et al. Hardware implementation of unobtrusive sleep state discrimination algorithm[J].Application of Electronic Technique,2017,43(8):62-65.
0 引言
隨著社會的急速發展,睡眠質量問題正在困擾著各個年齡層次的人群。近年來中年人群頻繁出現睡眠呼吸暫停綜合征患者,這是一種睡眠時呼吸停止的睡眠障礙。最常見的原因是上呼吸道阻塞,經常以大聲打鼾、身體抽動或手臂甩動結束。睡眠呼吸暫停伴有睡眠缺陷、白天打盹、疲勞,以及心動過緩或心律失常和腦電圖覺醒狀態。
現有的生物醫療儀器對該癥狀的判斷基本采用接觸式檢測技術,其主要特點是通過電極組成的多導聯方式,從而達到檢測生理信號的目的,如臨床上的速度式呼吸測量法、容積式呼吸測量法、光電式脈搏心率測量法等。這些方法有三大缺點,一是對人體有一定的約束,被測人員不能隨意進行肢體動作;二是這類監測方法主要依靠附著在人體上的接觸式心電電極來獲取信號,對人體皮膚直接接觸,不利于長時間測量;三是軟件處理的時間長,且無法提供快速準確的測量。由于其對監測對象的條件約束,也限制了其應用的范圍。
對睡眠質量進行監測,非接觸式設計顯得必要。本文采用非接觸式檢測,秉承算法硬件化設計思路,通過主要成分分析提取BCG信號的特征值;流水線設計加快體動合成指數的計算,搭配靈活的嵌入式Nios軟核識別睡眠時人的靜息狀態,全面主動檢測心臟沖擊信號;軟硬協同的SoC設計減少了系統的面積,縮短了睡眠模式識別的時間,準確率可達97%。
1 非接觸式睡眠識別算法
1.1 算法和設計流程
從PVDF中采集過來的信號包含多維度的生理信息,包括心率、呼吸、BCG和體動信號等。當呼吸暫停事件發生時,有效的信號量與其他因素混雜在一起。為了區別呼吸暫停、正常呼吸和肢體律動,采用主要成分提取模塊對特征信號進行有效分離。基于標準差值的方法合成有效信號的體動指數,最后睡眠判斷模塊對指數的閾值判別,識別出此時病人所在模式。算法設計如圖1所示。
信號處理流程主要基于4個步驟:提取PVDF采集的BCG信號、主要成分分析和數據分段、體動指數合成、睡眠模式判斷。整個算法以60 s為一個周期,R_PVDF為原始ADC采集到的PVDF信號,RESP為經過30 Hz數字低通濾波(37階,IIR巴特沃斯)之后的PVDF信號,主要成分分析模塊對兩種信號處理,同時減少數據維度、提取最大特征值,接著計算出體動合成指數σ和自適應閾值,最后判斷出患者的睡眠狀態。
1.2 BCG信號獲取
邏輯控制模塊如圖2,為了快速獲取ADC內的睡眠數據,clk引腳連接c3時鐘信號50 MHz,作為模塊內部時鐘。該模塊采用有限狀態機模式設計,用純Verilog代碼編寫,在always語句的引導下循環46個時鐘周期,最終AD_DATA引腳端以940 ns的周期吐出12位BCG信號數據。
1.3 體動合成指數和自適應閾值
經過主成分分析和10 s數據分段之后,PC1R_PVDF和PC1RESP被劃分為6個10 s周期信號。在自適應閾值判決前,每段來自PC1RESP的10 s數據集會通過標準差公式進行計算,得出體動合成指數σ。體動合成指數公式如下:
實驗表明,正常人在靜息睡眠階段也會產生很多肢體動作信號,為了減小對呼吸暫停綜合癥的識別不足,采用自適應閾值的方式計算周期信號的平均值。采用這個方法,每段60 s數據集都能獲得一個自適應的閾值,從而使得誤判率極大減小,自適應閾值計算公式如下:
1.4 睡眠模式判斷
利用參數σi和σj就能判定PVDF傳感帶上的人目前所在的狀態,根據優先級排序的判斷條件如下(最大電壓輸出為5 V):
條件1:σi>40%×最大電壓輸出(肢體律動)
條件2:σj>70%×最大電壓輸出(正常呼吸)
條件3:10%×σv<σj<70%×最大電壓輸出(呼吸暫停)
條件4:σj<10%×σv(離開)
2 算法硬件化實現
2.1 系統框架與設計流程
系統的整體設計如圖3所示。本系統總體分為兩大部分,一是前端模擬信號采集電路,二是后端數字邏輯控制及算法硬件化。前端部分包括PVDF傳感帶、前置放大、低通濾波、ADC采樣,后端部分均采用純Verilog進行硬件化設計,其中包括邏輯控制、數據存儲、算法硬件化,通過FPGA內嵌的NiosII處理器搭建軟件系統,控制液晶顯示。外部50 MHz晶振為整個系統提供全局時鐘樹。
整個系統的設計流程為:首先用Altium Designer完成硬件系統的電路設計、芯片布局,然后使用Verilog HDL在Quartus平臺上完成邏輯控制、算法的硬件化設計、訓練、仿真和綜合,在SOPC Builder平臺上完成CPU軟核定制,使用ModelSim和SignalTap進行算法驗證,最后通過USB-Blaster下載到FPGA電路板。
2.2 前端模擬信號采集電路
生理信號的采集選用PVDF超薄壓電傳感帶,放置在睡墊下垂直靠近人體心臟的位置。由于人體本征信號屬于超低頻信號,使用者在以自然睡眠的姿勢躺在上面后,所傳遞出來的是極其微弱的電荷信號,通常電壓強度在0~20 mV之間。因此需要對生理信號進行放大和濾波。
前端信號處理電路采用LMV602低噪聲運算放大器,組成電荷放大電路,實驗證明在調配R1、C1的值時增益為200可取得最佳信噪比。此電路采用單電源供電,并且5 V電壓通過電阻分壓,輸入在放大器同相端,對生理信號產生2.5 V的抬壓效果,省去后級單獨設計抬壓電路的冗余問題。此電路簡潔、完善,能將信號放大到適合ADC轉換的電壓,具體硬件電路圖如圖4所示。
為了去除混疊在有效生理信號中的50 Hz工頻干擾,第二級采用低通濾波電路。3 dB截止頻率為:
該電路不僅可以放大0.1 Hz~10 Hz的信號,還能大大降低50 Hz工頻干擾。濾波輸出后的信號幅度為0~2.5 Vpp,因此AD芯片采用12 bit高精度ADS7818,該芯片內置2.5 V參考電壓,外部在1腳接上震蕩電容,使AD開始工作。ADS7818輸入電壓量程為0~5 V,通過2.5 V抬壓后,滿足AD采樣的量程范圍。
2.3 硬件加速設計
算法的硬件化過程采用流水線設計,首先定義了20個12 bit寄存器用來保存被分段后的10 s PVDF數據,然后數據在時鐘c2作用下傳輸到20個LPM_MULT乘法器進行平方根運算,再后一級是2個20輸入的PARALLEL_ADD加法器,最后調用了FPGA內嵌的IP核ALTSQRT進行開方,最終算出結果即為體動合成指數σ。
流水線式的設計實際是將串行操作轉化為并行操作,將算法中的組合邏輯延時路徑系統地分割,并在各個部分之間插入寄存器暫存中間數據,縮短了一個時鐘周期內信號通過組合邏輯電路延時路徑長度,使得單位時間內處理的數據量變大,即電路的吞吐量變大,從而提升算法的速度。
設計語言采用硬件描述語言Verilog HDL,整個設計流程在Altera公司的Quaruts、Eclipse平臺下完成,最后通過USB-Blaster下載到電路板。
2.4 嵌入式軟核協同處理
借助于Altera可重構SoC技術和FPGA的硬件可編程本身特性,本算法定制了嵌入式軟核Nios II,通過SOPC Builder配置處理器、JATG接口、ROM和普通PIO口,在時鐘接口的作用下,算法數據被送至Nios II處理器進行最終判斷,同時Nios II軟核通過Avalon總線同內部的ROM、外部的SDRAM、Flash等器件進行數據交換,系統定制如圖5。
為了方便板級調試,本設計定制了JTAG接口。通過PC端的Nios II IDE(集成開發環境)即可以對嵌入式處理器進行軟件開發,包括編輯、編譯和調試程序。與傳統嵌入式開發過程相比,JTAG接口兼容了SignalTap Logic Analyzer軟件,能有效地捕獲和顯示實時芯片內部信號,深度分析睡眠算法。
Nios II是Altera推出的32位RISC嵌入式處理器,是SoC系統中最為核心的一個IP核。其優勢是享有32位指令集體系,與二進制代碼100%兼容,性能超過200DMIPS。
3 驗證和評價
為了全方位評估算法,用Altium Designer設計系統電路原理圖并繪制PCB版圖,使用沉金工藝制作PCB硬件電路板,FPGA芯片采用CycloneIV EP4CE15F17C8, 將硬件系統通過USB-Blaster下載到電路板后,其資源占用情況如表1所示。
根據綜合后的結果,可以得出的結論是:該算法適用于大部分FPGA芯片,在硬軟核搭配使用的情況下,資源占用率不高,為今后睡眠識別技術發展提供了良好的開發性和擴展性。
此外,在SingalTapII Logic Analyzer邏輯分析平臺上,采用相同的數據集對硬件和軟件實現進行評估,結果如表2所示。
據觀察,識別率上硬件算法會略低于軟件算法,其原因是設計中采用的LPM_MULT、ALTSQRT等IP模塊對浮點計算存在“四舍五入”的情況,因此會造成除法、開方等運算結果出現略微偏差,但該誤差屬于可接受范圍內;在識別時間上,硬件算法在50 MHz時鐘頻率下僅需19.72 ms就能完成識別,相比軟件的4.9 s,速度提升了約25萬倍。
根據實測數據在ModelSim-Altera聯合仿真平臺的仿真結果如圖6,經過算法的提取、處理,PVDF睡眠生理信號最終被分類為Normal Breath(正常呼吸)、Apneic Event(呼吸暫停)、Body Movement(肢體律動)。
4 結論
本文提出一種非接觸式睡眠模式識別算法,利用PVDF非接觸式傳感帶構建硬件系統對多維度生理信號進行實時采集和處理,通過ModelSim、SignalTap平臺仿真驗證,該算法在較短的識別時間內有著97%以上的識別準確率。本設計突破了傳統穿戴式醫療儀器的復雜穿戴性,具有體積小、實時性強的特點,并為預防、診斷呼吸暫停綜合癥提供參考依據,非常適合用在醫療嵌入式應用方面。
參考文獻
[1] 丁鑫,金雷,劉諾,等.基于織物電極的非接觸便攜式睡眠心電監測系統設計[J].北京生物醫學工程,2012,31(3):293-296.
[2] 王琛磊.基于DSP的睡眠監測系統設計與實現[D].廣州:華南理工大學,2013.
[3] Paalasmaa Joonas,Waris Mikko,Toivonen Hannu,et al.Unobtrusive online monitoring of sleep at home[C].34th Annual International Conference of the IEEE EMBS,2012:3784-3788.
[4] Song Changyue,Liu Kaibo,Zhang Xi,et al.An obstructive sleep apnea detection approach using a discriminative hidden markov model from ECG signals[J].IEEE Transactions on Biomedical Engineering,2016,7(7):1532-1542.
[5] MORA G G,KORTELAINEN J M,HERN?魣NDEZ E R P,et al.Evaluation of pressure bed sensor for automatic SAHS screening[J].IEEE Transactions on Instrumentation and Measurement,2015,7(7):1935-1943.
[6] GUERRERO G,KORTELAINEN J M,PALACIOS E,et al.Detection of sleep-disordered breathing with pressure bed sensor[C].35th Annual International Conference of the IEEE EMBS,2013:1342-1345.
[7] Carolina Varon,Alexander Caicedo,Dries Testelmans,et al.A novel algorithm for the automatic detection of sleep apnea from single-lead ECG[J].IEEE Transactions on Biomedical Engineering,2015,9(9):2269-2278.
作者信息:
王 皓,陳少勇,王佳權,黃啟俊
(武漢大學 物理科學與技術學院,湖北 武漢430072)