孫科學, 楊雨諾, 周依娜, 成謝鋒, 劉芫健, 劉 艷,2
(1. 南京郵電大學 電子與光學工程學院, 江蘇 南京 210023; 2. 信息電子技術國家級虛擬仿真實驗教學中心, 江蘇 南京 210023; 3. 射頻集成與微組裝技術國家地方聯合工程實驗室, 江蘇 南京 210023)
近年來,在國家信息化發展戰略指導下,智能信息處理技術得到快速的發展,各類專業虛擬仿真軟件得到廣泛應用。本文提出以江蘇省電工電子實驗教學示范中心為基礎,結合近年來實驗室改革的成果,建設國家級信息電子技術虛擬仿真實驗教學中心的思路。選擇心音信號采集與分析為研究課題,構建基于LabVIEW的心音信號采集與分析平臺,更好地支持電子學實踐創新訓練,全面提高學生的實踐能力、創新能力及工程應用能力。該平臺可以拓展為深度學習和身份識別實驗平臺[1-3]。
心音信號采集與分析平臺與傳統聽診器、ECG和超聲多普勒儀等先進的輔助診斷儀器相比,具有效果好、成本低的優勢[4-6]。心音信號中包含心臟瓣膜疾病的豐富信息,在檢測該類型疾病方面,心音信號有著獨一無二的優勢。心音信號采集與分析平臺的構建,首先解決心音傳感器的無線通信問題,制作無線心聲檢測裝置,并進一步探討心音信號的去噪、分析等方法和效果[7-8]。
基于LabVIEW的心音信號采集與分析平臺能綜合應用大學本科4年所學的電子信息專業主要知識,包括信號處理、數字電路設計、模擬電路設計和電子制作等課程,可檢驗出學生所具有的專業知識的深度和廣度,與教學結合緊密。
心音采集模塊采取循環結構與順序結構相結合的設計方案。每采集一路心音信號后,要將得到的數據經過小波去噪處理,隨后使用LabVIEW自帶的FFT譜分析控件與功率譜控件,將心音信號的FFT譜與功率譜分別顯示在計算機前面板上。在此基礎上,還可以增加數據處理模塊和身份識別模塊進行心音身份識別系統的搭建。數據處理模塊提取特征參數通過低頻加強型梅爾倒譜系數和頻域分段相關系數的算法完成;身份識別模塊采用矢量化歐氏距離和S1、S2信號最小相關距離對采集的數據進行識別[9-11]。
在心音采集模塊中,采集裝置所得到的信息無需預處理,直接傳輸到深度學習模塊即可組成深度學習研究的平臺。深度學習系統可以由多層的限制玻爾茲曼機(restricted Boltzmann machine,RBM)疊加而成。系統流程如圖1所示。

圖1 系統流程圖
該裝置通常用輕質彈性材料形成一個“Ω”型框架組件,其形狀類似人體肩到胸部的側面外輪廓線,使該框架能夠方便放置在人的左肩上,“Ω”型框架兩端長度為左肩頂端到人心臟的中心位置。心音傳感器安裝在該“Ω”型框架的一個端頭,并且該端頭的長度可以調整,以保證心音傳感器能夠準確停留在人體心尖部位置;“Ω”型框架的另一個端頭可以對稱安裝一個心音傳感器(見圖2)。這樣一個采集胸部位置的心音,一個采集背部位置的心音,從而獲得兩路立體心音。

圖2 穿戴式心音聽診器
心音是比較微弱的生理信號,頻率一般為10~250 Hz,幅度各異。傳統的心音測量儀器測量范圍只有30~300 Hz,而20 Hz以下的低頻次聲仍能反映一定心力儲備的生理信息。經過采樣定理的計算,最終采用下限頻率為8 Hz、上限頻率1 000 Hz的帶通濾波器。ADC的采樣頻率為2 kHz,精度為8 bit。串口通信的性能應大于16 000 bit/s。最終選定串口協議為:波特率11 520 bit/s,8數據位,無校驗,1位停止位。
無線心音傳感器大體分為空氣傳導式和壓電式兩種。經過實驗比較可知:在噪聲環境下,心音信號受環境噪聲的干擾與采集頻率成反比——采集頻率越高,采集的第一心音信號(S1)與第二心音信號(S2)信號信噪比越好。這將有利于心音包絡信號的提取等研究。另外,由于心音采集過程存在著采集頻率與系統資源之間的矛盾,所以選擇11.025 kHz作為默認采集頻率。可以利用LabVIEW(Biomedical)工具包和高級數據工具處理包的Wavalet Analysis對心音信號進行濾波及小波去噪,再對心音進行截取與保存。
小波去噪[9]的方法可分為3類:第一類是基于小波變換模極大值原理;第二類是Witkin提出的利用小波分析中不同尺度信號的空間相關去噪的思想;第三類是Donoho提出的閾值方法,是本心音信號采集與分析平臺采用的方法。
小波去噪主要有3個步驟:(1)對含有噪聲信號的心音進行小波變換;(2)對由小波變換得到的小波系數進行特殊處理,從而去除噪聲;(3)對經過處理的小波進行逆變換,進而得到消除噪聲的后的心音信號。
小波心音去噪子系統的LabVIEW程序主要由執行小波去噪事件、保存去噪后數據事件和退出心音去噪事件等3個事件結構以及結合了Matlab Script節點的小波去噪子程序構成。
在3個事件結構中,最主要的事件是執行小波去噪事件,包括打開和讀取文件的系統VI、設置小波參數的條件結構以及結合Matlab Script節點的小波去噪子VI。
小波去噪子程序主要負責心音小波去噪。首先接收從調用它的主程序傳來的小波參數,然后傳給Matlab Script節點,由Matlab負責小波分析部分,最后再把分析后的值傳至LabVIEW做進一步的處理。
心音小波去噪子系統的前面板包括原始信號波形顯示器、去噪后波形顯示器、小波參數設置、執行小波去噪按鈕、保存去噪后數據按鈕以及返回主界面按鈕。
心音信號是非平穩信號。為全面了解心音信號的特性,就需要研究心率特性以及信號的時-頻特性。心音信號分析子系統用虛擬儀器語言LabVIEW,結合Matlab三次樣條函數插值法來實現心率的計算、提取信號的包絡,并能夠截取、放大任意局部包絡,還能將計算心音信號的FFT幅度譜與功率譜[10]顯示在前面板上提供給用戶。
心音信號分析子系統前面板主要包括3部分:
(1) 執行數據分析部分:按下“執行數據分析按鈕”對用戶所選擇的心音信號文件執行數據分析;
(2) 分析計算結果部分:顯示采樣頻率和周期采樣點,以及周期、心率等分析計算后的結果;
(3) 波形顯示部分:顯示分解結果,包括原始波形、FFT幅度譜、FFT功率譜密度、心音包絡圖和截取后波形。
利用LabVIEW實現了截取心音包絡并放大顯示的功能。該程序主要包括心音包絡圖屬性節點、最大值與最小值函數、數組子集函數等。
通過移動示波器上的黃線游標和紅線游標,就可以截取它們之間的任意心音包絡并將其放大。為了驗證心音信號分析子系統的截取功能,移動示波器上的黃色和紅色的游標,分別將它們放在采樣點10 000、25 000(見圖3)和30 000、50 000(見圖4)上,這樣就可以截取它們之間的心音包絡段,并在包絡示波器上顯示截取放大后的心音包絡段。通過移動顯示屏上的兩個游標,該子系統能夠在任意位置截取波形,并可以進行放大顯示。

圖3 10 000~25 000之間包絡截取效果圖

圖4 30 000~50 000之間包絡截取效果圖
心率測量可以根據心音圖測定。心率F是指心音圖兩個相鄰R波的時間間隔(R-R間期)的倒數,即:

式中,T是R-R間期(s),平均心率F′是在一定計數時間內,R波個數和計數時間的比值,即:
(次/min)
式中,T是計數時間(min),N是R波個數。
用LabVIEW提供的函數可以求出幾個心音信號的參數R-R波的峰值、S波的谷值、心音信號的幅值、心動周期及心率。
選擇采樣頻率為11 025 Hz的兩個人的心音包絡分別進行計算,結果如圖5所示。可以看出:兩個人的心動周期分別為0.867 09 s和0.878 33 s,心率分別為69.196 5 次/min和68.310 9 次/min。正常人的心率為60~100 次/min,所以兩個人心率均為正常值。

圖5 分析兩個不同人的心率結果圖
頻域分析部分主要包括計算信號的FFT頻譜以及信號的功率譜密度函數。
由于本心音信號采集與分析平臺的設計思路是每路心音信號采集后即對心音信號進行分析,所以本段僅對1路心音信號的數據分析進行闡述,其他3路心音信號與此類似,不再贅述。
經過心音采集模塊采集后的心音信號首先被送入小波去噪模塊進行降噪處理。降噪處理后的心音信號以一維數組的形式被送入LabVIEW自帶的FFT頻譜函數節點控件進行FFT譜分析,分析結果也以一維數組的形式在波形圖中顯示。FFT譜分析控件計算時域信號的平均FFT頻譜,以幅度和相位返回FFT值。與之類似,由LabVIEW所提供的FFT功率譜控件對降噪處理后的心音信號做FFT功率譜分析,結果也以一維數組的形式在波形圖中顯示。
FFT功率譜VI按照下列步驟計算時間信號的平均功率譜:
(1) 計算時間信號的FFT;
(2) 將當前的功率譜與上次平均過程重新開始后的最后一次調用VI的功率譜進行平均;
(3) 在功率譜中返回平均功率譜。
圖6為對一個采樣頻率為11 025 Hz的心音信號進行FFT幅度譜及FFT功率譜計算的結果圖。

圖6 心音信號的FFT幅度譜及功率譜圖
從FFT功率譜圖中我們可以看到,心音信號主要集中在0~100 Hz,功率主要集中在0~60 Hz,在20 Hz附近最強。
以LabVIEW為平臺,結合Matlab設計了一種心音身份識別系統。該模塊在前文采集模塊的基礎上添加數據處理模塊和身份識別模塊。數據處理模塊完成心音特征提取和建立心音特征數據庫;身份識別模塊采用兩種算法對心音特征數據進行分類識別,并使用決策層融合算法提高識別正確率。
心音信號的特征參數提取是心音身份識別的關鍵,可采用低頻加強型梅爾倒譜系數和頻域分段相關系數來實現。梅爾頻率倒譜系數(Mel frequency cepstral coefficients,MFCC)是基于人耳聽覺特點而提出的,是目前使用非常廣泛的提取語音特征參數的方法之一。
心音信號的頻率分布特點(S1信號:40~150 Hz,S2信號:50~200 Hz)決定了頻域分析在識別上的重要性。S1、S2信號的頻譜是比較穩定的,不同個體的特征差異明顯,選擇合適的區間段進行相關性分析以求出相關系數,其絕對值大小與相關性成正比。經驗證,在30~80 Hz和50~110 Hz頻率段計算S1和S2的相關系數,可以得到最佳區分度。身份識別模塊采用2種算法進行分類識別[11]:一種是基于矢量化歐式距離識別,一種是最小相關距離識別,最后通過決策層融合算法處理。
深度學習網絡由若干RBM疊加組成,每一層RBM的輸出即為其高一層RBM的輸入,任意RBM的輸出和權值的調整僅與其輸入有關;深度學習網絡可以與分類器進行組合,現在組合效果較為理想的是與BP(backpropagation)神經網絡結合。BP神經網絡所采用的有監督的訓練方法,有助于深度學習網絡更好的運行。
利用LabVIEW語言作為開發工具,結合Matlab小波工具箱以及Matlab的計算能力開發的心音信號采集與分析平臺,綜合了模擬電路設計、數字電路設計、電子制作以及信號處理等內容。學生可在這個平臺上結合電子技術軟、硬件知識進行二次開發,強化系統的功能、體驗創新的樂趣,可以在身份識別和深度學習方面進一步優化處理,使該平臺更加完善和實用。