陳誠 李丕丁 徐涵

摘 要:肺音是反映呼吸道疾病的重要參數(shù)。為方便呼吸道疾病患者隨時隨地自我測量與診斷,設(shè)計一種基于Android移動終端的肺音測量系統(tǒng)。該系統(tǒng)以嵌入式終端為基礎(chǔ),藍牙為傳輸途徑,Android平臺客戶端為核心,實現(xiàn)了數(shù)據(jù)采集、波形顯示、數(shù)據(jù)存儲功能。通過建立數(shù)據(jù)提取方法,利用希爾伯特變換對音頻信號進行分析,得出肺音的頻率、強度、持續(xù)時長3個參數(shù)。實驗結(jié)果表明,該測量系統(tǒng)能對肺音準(zhǔn)確測量,應(yīng)用靈活,可滿足實際需要。
關(guān)鍵詞:肺音測量;安卓客戶端;藍牙;嵌入式系統(tǒng)
DOI:10. 11907/rjdk. 182500
中圖分類號:TP319
文獻標(biāo)識碼:A文章編號:1672-7800(2019)006-0111-04
Abstract: Lung sounds are important parameters reflecting respiratory diseases.A lung sound measurement system based on Android platform is designed and developed to realize the self-measurement and diagnosis of patients with respiratory diseases at any time and anywhere.The system is based on embedded terminal with bluetooth network as the transmission channel and Android platform client as the core of the measurement system. It not only achieves data acquisition, waveform display, data storage, but also establishes a data extraction method. Hilbert transform is used to analyze the audio signal, and three parameters, frequency, intensity and duration are obtained.The experimental results show that the system can accurately measure the lung sounds and can be applied flexibly to meet the actual needs.
Key Worlds: lung sound measurement;Android client;bluetooth; embedded system
0 引言
肺音是人體生理和病理的一項重要指標(biāo),能為臨床診斷提供重要信息[1 ]。很多疾病會導(dǎo)致異常肺音產(chǎn)生,如慢性氣管炎、慢性肺阻塞、支氣管肺部感染等[2]。這些疾病也可用胸透、肺功能檢查和肺動脈血氣相等手段進行診斷,但可能給病人帶來輻射危害[3]。肺音聽診不僅能發(fā)現(xiàn)早期肺炎等疾病,而且具有安全簡單、低價高效、非介入等優(yōu)點[4]。因此,從理論角度看,肺音信號檢測是評估呼吸道疾病的有效手段。
采用傳統(tǒng)聲學(xué)聽診器進行肺音聽診時,依賴于醫(yī)生的臨床經(jīng)驗及聽診技能,聲音數(shù)據(jù)無法存儲、播放及顯示 [5]。為改善傳統(tǒng)肺音聽診的不足,電子聽診儀器研究方興未艾,目前分為兩種類型:①以終端肺音記錄儀為代表,利用壓電或電容傳感器采集肺音信號,通過SD卡將肺音信號記錄下來[6-7]。該類型記錄儀僅僅是將數(shù)據(jù)記錄下來,還需要專業(yè)的設(shè)備分析顯示肺音參數(shù);②以工作站形式的肺音分析儀為代表。該測量儀的肺音測量功能齊全,如美國3MTM Littmann公司生產(chǎn)的3200型電子聽診器,利用藍牙技術(shù)無線采集肺音,可將病人資料和肺音信號實時傳輸至電腦并存儲分析[7-10]。該類型聽診器多用于醫(yī)院,攜帶不便。這兩類產(chǎn)品在實時肺音測量上存在一定局限性。
隨著網(wǎng)絡(luò)的發(fā)展,智能手機逐步普及,本文開發(fā)了一種基于Android移動終端的肺音測量系統(tǒng)。該系統(tǒng)以嵌入式終端為基礎(chǔ),通過組建藍牙通信通道,實時將數(shù)據(jù)傳輸?shù)揭苿咏K端進行圖形化顯示并提取出相應(yīng)的肺音參數(shù),具有實時圖形顯示、便攜方便、成本低廉等特點。
1 系統(tǒng)總體規(guī)劃
本測量系統(tǒng)包括嵌入式測量終端與Android客戶端軟件兩個部分。嵌入式終端實現(xiàn)數(shù)據(jù)采集、模數(shù)轉(zhuǎn)換、增益設(shè)置、數(shù)據(jù)傳輸?shù)裙δ堋ndroid客戶端實現(xiàn)數(shù)據(jù)接收、波形顯示、音頻保存、音頻分析、分析參數(shù)存儲等功能。其中音頻分析參數(shù)包括肺音發(fā)生的頻率、強度、肺音持續(xù)時長等。頻率即每分鐘產(chǎn)生肺音的次數(shù),強度即平均每次肺音的幅度和,肺音持續(xù)時間即平均單個肺音的持續(xù)時間。最后將用戶ID、音頻增益倍數(shù)、音頻保存路徑和提取的參數(shù)都保存在移動終端本地數(shù)據(jù)庫中以方便查看。
2 測量終端設(shè)備
2.1 硬件設(shè)計
肺音測量終端硬件設(shè)計如圖1所示,包括肺音傳感器、濾波電路、可調(diào)增益電路、音頻輸出模塊、藍牙收發(fā)模塊等。
主控芯片采用32位微控制器STM32F103RCT6芯片。該芯片基于ARM Corlex—M3核心的32位微控制器,其性能高、成本低、功耗低[11]。肺音傳感器采用合肥華科電子技術(shù)研究所開發(fā)的肺音傳感器,其利用微音傳感元件采集肺部震動信號,頻率響應(yīng)為100~4 500Hz,能在一定程度上限制心音干擾。相關(guān)理論研究表明,肺音的頻率范圍為100~1 500Hz[12],因此濾波器采用低通濾波,截止頻率為1 500Hz。信號幅度增益設(shè)置為1-32倍可調(diào)。音頻輸出模塊可接耳機實時播放數(shù)據(jù),音頻采樣率設(shè)置為4k。藍牙通信的最低要求為4kbyte/s,數(shù)據(jù)要求較高,因此不宜采用BLE低功耗藍牙。本設(shè)計采用BF10藍牙通信模塊,它具有傳輸穩(wěn)定、速率高的特點[13]。
2.2 軟件設(shè)計
測量終端軟件設(shè)計包括模數(shù)(AD)采樣控制、采樣增益控制、數(shù)據(jù)串口收發(fā),如圖2所示。系統(tǒng)在上電復(fù)位后,首先執(zhí)行初始化程序,包括AD初始化、串口程序初始化。然后進入主函數(shù)的while(1)函數(shù)中循環(huán),等待Android客戶端指令進行相應(yīng)的數(shù)據(jù)采樣、數(shù)據(jù)收發(fā)操作。
在AD初始化中對采樣通道、采樣模式、采樣速率進行設(shè)置。設(shè)置為單一通道循環(huán)采樣模式,其中參考電壓1.5V,實現(xiàn)8位AD轉(zhuǎn)換,采樣率為4k, 設(shè)置0.25ms一次中斷。串口初始化中配置波特率為115 200,數(shù)據(jù)位8位。每次AD后,將數(shù)據(jù)寫入緩沖流數(shù)組。在滿40個數(shù)據(jù)時加上包頭,通過串口發(fā)送數(shù)據(jù)給藍牙模塊,藍牙模塊實時將數(shù)據(jù)發(fā)送給手機客戶端,并將客戶端上開始、結(jié)束和增益指令發(fā)送給嵌入式終端。
3 Android客戶端軟件設(shè)計
3.1 客戶端軟件界面設(shè)計
Android客戶端界面設(shè)計流程如圖3所示,包括注冊、登錄、藍牙連接和配對、測量位置選擇、數(shù)據(jù)接收顯示、數(shù)據(jù)處理界面、歷史數(shù)據(jù)顯示和音頻播放等界面。
在注冊界面中填寫用戶ID、用戶名、性別、密碼并保存在本地。在登錄界面中填寫用戶名、密碼然后登錄。在藍牙界面打開藍牙、配對藍牙。在測量位置選擇界面,參考肺部圖片選擇測量位置。在數(shù)據(jù)接收顯示界面連接藍牙,選擇放大倍數(shù),顯示數(shù)據(jù)波形,保存音頻數(shù)據(jù)。在數(shù)據(jù)處理界面,利用算法解析出肺音參數(shù)保存在本地。在歷史列表界面查看當(dāng)前賬號下的已測量情況。在參數(shù)顯示界面查看詳細肺音參數(shù),肺音波性,以及播放肺音音頻。
3.2 數(shù)據(jù)接收與顯示設(shè)計
Android SDK為開發(fā)者提供BluetoothAdapter查找藍牙設(shè)備類,BluetoothSocket數(shù)據(jù)輸入輸出類[14]。藍牙通信運用BluetoothAdapter中g(shù)etBondedDevices()方法得到已配對的藍牙設(shè)備;運用BluetoothSocket的getInputStream()和getOutputStream()方法監(jiān)聽藍牙數(shù)據(jù)收發(fā)。本文的數(shù)據(jù)接收和顯示流程如圖4所示。
為保證接收數(shù)據(jù)函數(shù)及時回調(diào),及時顯示數(shù)據(jù),建立一個藍牙數(shù)據(jù)接收線程blutoothcomm。在該線程中調(diào)用blutoothsocket進行數(shù)據(jù)收發(fā),并開辟一個450byte的接收緩存區(qū)用來接收數(shù)據(jù)。如果接收緩存區(qū)數(shù)據(jù)滿400byte,將接收緩沖區(qū)數(shù)據(jù)復(fù)制到數(shù)據(jù)處理緩沖區(qū),回調(diào)顯示線程。在顯示線程中設(shè)置波形數(shù)據(jù)環(huán)形存儲區(qū)15 000byte,對數(shù)據(jù)處理緩沖區(qū)的數(shù)據(jù)去包頭,然后復(fù)制到波形數(shù)據(jù)環(huán)形存儲區(qū),刷新視圖,顯示波形。在顯示數(shù)據(jù)的同時還可選擇將肺音數(shù)據(jù)保存在wav文件中。wav文件的fmt數(shù)據(jù)塊格式設(shè)置為采樣頻率4 000,單聲道,文件名以系統(tǒng)當(dāng)前時間命名。
目前主流的Android手機系統(tǒng)屏幕刷新頻率為60次/s[15]??紤]到移動終端有不同的CPU和GPU,在刷新時需要的時間也不同,因此波形顯示時要限制刷新頻率,給屏幕刷新留下充足的時間。本設(shè)計中藍牙傳輸數(shù)據(jù)量是 4 000byte/s,大約每400byte刷新一次,因此實際界面大約刷新10次/s,完全滿足顯示刷新要求。
3.3 數(shù)據(jù)處理算法實現(xiàn)
為得到肺音信號參數(shù),需要比較平滑的包絡(luò)以對肺音信號進行定位。本文包絡(luò)提取方法是用Hilbert變換法將原始信號變換成復(fù)解析信號,將其作為包絡(luò)信息[16]。該包絡(luò)提取法具有計算方法成熟、抗噪聲干擾能力較強等優(yōu)點[17-18]。處理流程如圖5所示。
首先預(yù)處理數(shù)據(jù),減少計算量。接著利用經(jīng)驗?zāi)B(tài)分解(EMD)分解出本征信號(IMF),此時得到的處理信號不一定滿足IMF信號條件,如果不滿足則繼續(xù)執(zhí)行EMD分解。判定是IMF信號的條件是極值點數(shù)量和過零點數(shù)量最多相差1,局部極大值包絡(luò)和極小值包絡(luò)的和均值小于0.01。 在得到IMF信號數(shù)據(jù)后進行hilbert變換。取IMF原信號(實部)和變換后的信號(虛部)的絕對值,該絕對值就是肺音信號的包絡(luò)。此時的包絡(luò)仍有毛刺,不利于參數(shù)識別處理,需要對數(shù)據(jù)進行平滑處理。平滑處理只需查找包絡(luò)的極大值點, 然后在這些極大值點間進行3次樣條插值處理,就可得到比較平滑的包絡(luò)[19]。
由實踐可知,一個呼吸肺音的包絡(luò)開始為遞增曲線,最少遞增趨勢80ms,結(jié)束時是遞減曲線80ms,因此判斷一個肺音發(fā)生的方法如下:①設(shè)置判斷可能是呼吸音的閾值大小為在包絡(luò)中最大值的0.3倍;②在閾值點后能增長20ms的點判定是起始點,在閾值點前能遞減20ms的點判定為結(jié)束點,這兩點之間就是一個肺音。其中兩點時間差就是單個肺音持續(xù)時間,在該持續(xù)時間內(nèi)的幅度值0~256歸一化為-1~1,然后取其絕對值之和就是強度值;③將肺音發(fā)生總數(shù)除以測量總時間計算出肺音頻率。
進一步求出每個肺音的平均持續(xù)時間值、平均強度值,最后將解析出的肺音參數(shù)保存在Android系統(tǒng)自帶的sqlite輕量級數(shù)據(jù)庫。操作數(shù)據(jù)表利用Greendao框架,該框架具有使用簡便效率高等特點[20]。
4 實驗分析
本系統(tǒng)對10名呼吸道疾病患者肺音進行測試,結(jié)果較為理想。以一名男性肺部哮鳴音患者為例,該用戶測量位置選擇界面有6個肺音聽診點,一般聽診順序由肺尖開始,自上而下,從左向右。選中右肺尖測量點進入數(shù)據(jù)接收界面,如圖6所示。選擇幅度增益31倍后開始檢測,可以清楚地看到肺音波形。點擊開始記錄按鍵將音頻保存,然后點擊右上角菜單按鍵進入數(shù)據(jù)處理界面,如圖7所示。通過音頻文件選擇,點擊音頻處理按鍵,得到此次的肺音發(fā)生頻率38次/min,單個肺音強度552,單個肺音持續(xù)時間712ms。實驗表明,測量結(jié)果符合實際觀察得到的數(shù)據(jù),達到了預(yù)期目標(biāo),如圖8所示。
5 結(jié)語
本文以嵌入式終端為基礎(chǔ),Android移動終端為核心設(shè)計了便攜式肺音測量系統(tǒng),實現(xiàn)了肺音數(shù)據(jù)采集、實時發(fā)送、波形顯示、參數(shù)分析、數(shù)據(jù)保存等功能。測試結(jié)果表明,本系統(tǒng)能為用戶提供直觀、持久的數(shù)據(jù)用于分析病情,可應(yīng)用在家庭、社區(qū)等處,應(yīng)用前景良好。但不足之處是在測量左肺心臟部位的肺音時,仍然存在一定心音干擾,需要在移動客戶端用算法進一步加以改進。
參考文獻:
[1] NAGASAKA Y. Lung sounds in bronchial asthma [J]. Allergology International, 2012(61):353-363.
[2] 代先慧,郝月琴. 支氣管哮喘-慢性阻塞性肺疾病重疊、哮喘、慢性阻塞性肺疾病臨床特征的對比研究[J]. 臨床肺科雜志,2018,23(7):1306-1310.
[3] 姚小靜,王洪,李燕,等. 肺音信號分析及其識別方法的研究進展[J]. 重慶理工大學(xué)報,2013,27(12):95-100.
[4]黃梅,劉洪英,皮喜田,等. 多功能心肺音電子聽診儀的研制[J]. 中國生物醫(yī)學(xué)工程學(xué)報,2017,36(6):360-361.
[5] SHI W Y,MAYS J,CHIAO JC. Wireless stethoscope for recording heart and lung sound[C]. IEEE Topical Conference on Biomedical Wireless Technologies,Networks,and Sensing Systems.IEEE,2016:1-4.
[6] 劉喻,陳洪波,肖新華. 便攜式心肺音記錄儀的研究[J]. 電子測量技術(shù),2017,40(3):10-14.
[7] 鄧羲,魯勇軍. 肺聲的電子檢測及其醫(yī)學(xué)應(yīng)用[J]. 國外醫(yī)學(xué):生物醫(yī)學(xué)工程分冊,2000,23(4):223-228.
[8] 王琦,姚愛琴. 基于藍牙的心肺音采集系統(tǒng)[J]. 電子測試,2010,l(1):1-4.
[9] GTINCHENKO V,ARTEMIEV A,MAKARENKOV A,et al. Mobile end-user solution for system of monitoring of respiratory and cardiac sounds[C]. 2014 IEEE XXXIV International Scientific Conference Electronics and Nanotechnology (ELNANO),2014:299-302.
[10] 趙守國,萬明習(xí),王素品,等. 肺音信號的非線性檢測與肺胸系統(tǒng)聲傳遞特征研究[J]. 聲學(xué)學(xué)報,2002,27(1):38-44.
[11] 張弓. 基于STM32的手持式數(shù)據(jù)采集器系統(tǒng)設(shè)計[J]. 軟件導(dǎo)刊,2016,15(7):89-91.
[12] LU W H ,LIN Y,DU W Y,et al. Highly sensitive electronic stethoscope based on non-uniform PVDF structure[J]. Journal of Measurement Science and Instrumentation,2016,7(1):84-90.
[13] 陳瀟遠,朱曉力,胡曉雯,等. 基于藍牙的無線錄音聽診裝置的設(shè)計[J]. 生物醫(yī)學(xué)工程研究,2014,33(4):236-239.
[14] 張紅雨,張宇峰,馬俊. 基于 Android studio的藍牙通信開發(fā)與設(shè)計 [J]. 科技創(chuàng)新與應(yīng)用,2017(21):18-19.
[15] 李建州. 安卓智能手機功耗管理評測機制的研究[D]. 西安:西安電子科技大學(xué),2014.
[16] HUANG N E,LONG S R,SHEN Z,et al. The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis[J]. Proceedings:Mathematical Physical and Engineering Sciences,1998,454 (1971): 903-995.
[17] 李圣君. 呼吸音信號的包絡(luò)特征提取方法[J]. 計算機與應(yīng)用,2008,44(32):151-154.
[18] 許曉飛,林勇,嚴彬彬,等. 基于希爾伯特-黃變換的心音包絡(luò)提取[J]. 航天醫(yī)學(xué)和醫(yī)學(xué)工程,2008,21(2):134-136.
[19] 杜建衛(wèi). 希爾伯特黃變換方法及其在特征提取中的應(yīng)用研究[D]. 北京:北京科技大學(xué),2017.
[20] 胡忠望,莫家慶. 基于Android的移動應(yīng)用開發(fā)研究[J]. 軟件導(dǎo)刊,2014,13(11):18-20.
(責(zé)任編輯:杜能鋼)