• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Android 移動(dòng)平臺(tái)的心音采集軟件的設(shè)計(jì)與實(shí)現(xiàn)

      2020-03-18 06:02:56申玉靜
      醫(yī)療衛(wèi)生裝備 2020年2期
      關(guān)鍵詞:香農(nóng)心音通濾波

      申玉靜,王 尋,唐 閩*

      (1.中國(guó)醫(yī)學(xué)科學(xué)院阜外醫(yī)院心律失常中心,北京100037;2.中國(guó)科學(xué)院聲學(xué)研究所語(yǔ)言聲學(xué)與內(nèi)容理解重點(diǎn)實(shí)驗(yàn)室,北京100190)

      0 引言

      心血管疾病是世界范圍內(nèi)導(dǎo)致死亡率較高的疾病之一[1-2]。隨著我國(guó)國(guó)民經(jīng)濟(jì)的發(fā)展和人口老齡化的加快,心血管疾病的發(fā)病率呈現(xiàn)出明顯的上升趨勢(shì)。盡早發(fā)現(xiàn)、及時(shí)治療心血管疾病是目前醫(yī)學(xué)領(lǐng)域的研究熱點(diǎn)。心音是人體一種重要的生理信號(hào),在心臟疾病的癥狀顯現(xiàn)之前,心音往往就會(huì)出現(xiàn)異常。因此,對(duì)心音信號(hào)進(jìn)行分析有助于較早發(fā)現(xiàn)心臟疾病。正常的心音中可聽(tīng)音通常包含第一心音(S1)和第二心音(S2)2 個(gè)部分,它們統(tǒng)稱為基礎(chǔ)心音[3]。S1 產(chǎn)生于心室收縮的開(kāi)始階段,是由二尖瓣和三尖瓣的關(guān)閉引起的;S2 產(chǎn)生于心室舒張的開(kāi)始階段,是由主動(dòng)脈瓣和肺動(dòng)脈瓣的關(guān)閉引起的[4]。

      心音聽(tīng)診是一種成本低廉、操作簡(jiǎn)單的心臟檢查方法[5]。由于傳統(tǒng)的聽(tīng)診器體積較大,信號(hào)難以被放大,數(shù)據(jù)無(wú)法保存,所以人們發(fā)明了功能更加豐富的電子聽(tīng)診器。如張雷等[6]設(shè)計(jì)了一種軍用便攜式一體化遠(yuǎn)程檢診箱,其中包括了藍(lán)牙電子聽(tīng)診器,但其全套系統(tǒng)較為復(fù)雜,不適合民用。黃彬等[7]考慮到傳統(tǒng)心電和心音采集設(shè)備相對(duì)獨(dú)立且不便于攜帶,設(shè)計(jì)了基于Android 操作系統(tǒng)的心電心音采集設(shè)備,但該設(shè)備軟件端上只能實(shí)現(xiàn)心電和心音的波形顯示,不能保存和進(jìn)一步分析數(shù)據(jù)。廖慶豐等[8]報(bào)道了一種便攜式電子聽(tīng)診器,但該聽(tīng)診器需要掛接U 盤(pán)才能進(jìn)行心音的存儲(chǔ),使用較為不便。陳剛等[9]設(shè)計(jì)了一種心音檢測(cè)裝置,其主要?jiǎng)?chuàng)新在于硬件設(shè)計(jì),但并未設(shè)計(jì)移動(dòng)平臺(tái)軟件。樊容[10]設(shè)計(jì)了一種低噪聲電子聽(tīng)診器用于心音和肺音的聽(tīng)診,該設(shè)備可以將采集到的聲音由揚(yáng)聲器或耳機(jī)輸出,但不能使用上位機(jī)分析和保存數(shù)據(jù)。

      由于Android 平臺(tái)是完全開(kāi)放的移動(dòng)設(shè)備平臺(tái),用戶界面友好,資源豐富[11-12],所以本文使用Android Studio 集成開(kāi)發(fā)工具[13]設(shè)計(jì)了基于Android 移動(dòng)平臺(tái)的心音采集軟件。本軟件具有患者姓名輸入、聽(tīng)診區(qū)選擇的功能,能夠?qū)崟r(shí)顯示濾波前和濾波后的心音波形,且波形幅值可以調(diào)節(jié)。此外,本軟件還可以實(shí)時(shí)顯示心音香農(nóng)能量包絡(luò),使得用戶能夠?qū)崟r(shí)監(jiān)測(cè)當(dāng)前聽(tīng)診位置的心音強(qiáng)度,從而調(diào)整采集位置,較為準(zhǔn)確地找到心音最強(qiáng)的聽(tīng)診部位。

      1 系統(tǒng)總體設(shè)計(jì)

      心音數(shù)據(jù)采集系統(tǒng)由3 個(gè)部分組成:心音采集傳感器、信號(hào)處理采集電路(包括信號(hào)放大、數(shù)字化采樣和藍(lán)牙發(fā)送)和上位機(jī)(平板計(jì)算機(jī)),如圖1 所示。其中心音采集傳感器用于將傳播至胸壁的心音信號(hào)轉(zhuǎn)換為電信號(hào),需要具備抗干擾性強(qiáng)、靈敏度高、頻率響應(yīng)曲線平坦等特點(diǎn)[14]。故本研究選用HKY-06B[15]作為心音采集傳感器,OPA2340PA 芯片用于將HKY-06B 輸出的信號(hào)放大。由于心音有效頻率范圍通常低于1 kHz,本研究設(shè)計(jì)二階巴特沃斯低通濾波器濾除1 kHz 以上的信號(hào)。此后,使用MAX9867芯片對(duì)心音進(jìn)行采樣,采樣頻率為4 kHz,采樣數(shù)據(jù)寬度為16 bit。考慮到藍(lán)牙(Bluetooth)無(wú)線通信技術(shù)能夠?qū)崿F(xiàn)點(diǎn)對(duì)點(diǎn)的實(shí)時(shí)數(shù)據(jù)傳輸,且鏈路穩(wěn)定可靠,在醫(yī)療設(shè)備中已經(jīng)得到了廣泛的應(yīng)用[16],本系統(tǒng)選用具備藍(lán)牙功能的RDA5841S芯片作為主控制器。RDA5841S可以設(shè)置MAX9867 采樣時(shí)的參數(shù),也可以通過(guò)其自帶的藍(lán)牙功能將采樣后的數(shù)據(jù)發(fā)送至Android 上位機(jī)。上位機(jī)可以顯示心音波形及其香農(nóng)能量包絡(luò),并保存心音數(shù)據(jù)(具體過(guò)程如圖1 所示)。

      圖1 心音數(shù)據(jù)采集系統(tǒng)整體設(shè)計(jì)

      2 心音采集軟件設(shè)計(jì)

      心音采集軟件包括數(shù)據(jù)接收、數(shù)據(jù)處理、數(shù)據(jù)顯示和數(shù)據(jù)保存4 個(gè)部分,其結(jié)構(gòu)如圖2 所示。軟件通過(guò)藍(lán)牙接收心音數(shù)據(jù)后,對(duì)其進(jìn)行濾波處理。同時(shí),可以選擇顯示濾波前的原始數(shù)據(jù)或?yàn)V波后的數(shù)據(jù),濾波前后的數(shù)據(jù)都會(huì)被保存,且數(shù)據(jù)顯示與數(shù)據(jù)保存是同步進(jìn)行的。

      在軟件設(shè)計(jì)中,定義MainActivity 類用于控制數(shù)據(jù)接收中的藍(lán)牙連接,F(xiàn)ilter類用于心音帶通濾波,CalculateS 類用于計(jì)算心音的香農(nóng)能量包絡(luò),MyView1 和MyView2 類分別用于控制心音波形和心音香農(nóng)能量包絡(luò)的實(shí)時(shí)顯示,RTMonitorActivity 類用于控制心音數(shù)據(jù)的接收和存儲(chǔ),MainActivity_file類用于查看已存儲(chǔ)的心音文件,WabHeader 類包含.wav 文件的頭信息。

      圖2 心音采集軟件結(jié)構(gòu)

      2.1 數(shù)據(jù)接收

      軟件需要實(shí)時(shí)接收RDA5841S 芯片通過(guò)藍(lán)牙發(fā)送的數(shù)據(jù)。首先在Android 工程的Manifest.xml 文件中聲明需要的權(quán)限BLUETOOTH 和BLUETOOTH ADMIN,聲明方式如下:<uses-permission android:name="android.permission.BLUETOOTH"/><uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

      Android 移動(dòng)平臺(tái)藍(lán)牙開(kāi)發(fā)的應(yīng)用程序接口(application programming interface,API)主要包括[17]:

      (1)BluetoothAdapter:本地藍(lán)牙適配器對(duì)象,通過(guò)該類可以發(fā)現(xiàn)藍(lán)牙設(shè)備并查詢已配對(duì)列表,也可以獲取設(shè)備的藍(lán)牙狀態(tài)信息。

      (2)BluetoothDevice:遠(yuǎn)端藍(lán)牙設(shè)備對(duì)象,利用該對(duì)象可以獲得藍(lán)牙設(shè)備相關(guān)信息。

      (3)BluetoothSocket:藍(lán)牙套接字接口,使用該類可以實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。

      (4)BluetoothServerSocket:用于打開(kāi)服務(wù)連接和監(jiān)聽(tīng)連接的請(qǐng)求。

      (5)BluetoothClass:用于描述一個(gè)藍(lán)牙設(shè)備的屬性,是只讀的屬性集合。

      本軟件在RTMonitorActivity 類中定義Bluetooth Socket 的實(shí)例mBTSocket 來(lái)控制數(shù)據(jù)的發(fā)送和接收。當(dāng)藍(lán)牙連接成功后,定義變量byte[]test={0x01,0x02,0x03,0x04}作為指令,并使用mBTSocket.getOut putStream().write(test)函數(shù)通知下位機(jī)開(kāi)始藍(lán)牙數(shù)據(jù)的傳輸,此后使用該實(shí)例的getInputStream().read()函數(shù)來(lái)讀取緩存中的數(shù)據(jù),并將讀取到的8 bit 數(shù)據(jù)拼接為16 bit 數(shù)據(jù)。藍(lán)牙連接和數(shù)據(jù)傳輸?shù)木唧w流程如圖3 所示。軟件中先打開(kāi)藍(lán)牙,然后掃描設(shè)備,連接成功后開(kāi)始傳輸數(shù)據(jù)。每次接收到數(shù)據(jù)后就對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理。

      圖3 藍(lán)牙連接和數(shù)據(jù)傳輸流程圖

      2.2 數(shù)據(jù)處理

      軟件將每次接收到的16 bit 數(shù)據(jù)存放在data 變量中。在每次接收到新數(shù)據(jù)時(shí),軟件對(duì)data 中的數(shù)據(jù)進(jìn)行帶通濾波。使用MATLAB 2014 中的butter 函數(shù)求得巴特沃斯帶通濾波器系統(tǒng)函數(shù)分子、分母多項(xiàng)式的系數(shù)向量B和A,該函數(shù)的使用格式為

      其中,N為濾波器階數(shù),本文設(shè)定N=4;Wn為濾波器3 dB 截止頻率的歸一化值。軟件中設(shè)置的通帶頻率為20~1 000 Hz,對(duì)應(yīng)地設(shè)置Wn=[0.01,0.5]。求得的B和A分別為

      向量B和A需要預(yù)先寫(xiě)入Filter 類成員變量中。在Filter 類中定義filter 函數(shù)如下:

      其中,signal 為待濾波信號(hào),參數(shù)b和a分別表示濾波器系統(tǒng)函數(shù)的分子、分母多項(xiàng)式系數(shù)。當(dāng)調(diào)用filter函數(shù)時(shí),將B和A的值分別賦給b和a。軟件中filter 函數(shù)利用濾波器的系統(tǒng)函數(shù)與輸入信號(hào)卷積實(shí)現(xiàn)帶通濾波。

      濾波之后的數(shù)據(jù)存儲(chǔ)在filtered_data 數(shù)組中。帶通濾波前和濾波后的心音波形及其時(shí)頻圖如圖4 所示。由圖4 可以看出,帶通濾波后心音質(zhì)量得到了明顯改善,通帶外的低頻和高頻雜音都被衰減。為了讓用戶實(shí)時(shí)了解當(dāng)前心音的采集質(zhì)量,需要將心音波形畫(huà)在Android 上位機(jī)的顯示屏上。

      2.3 數(shù)據(jù)顯示

      為了實(shí)時(shí)顯示當(dāng)前采集的心音波形,軟件自定義View1 控件,在控件中設(shè)置坐標(biāo)軸的寬度和高度分別為680 和340 個(gè)像素。由于16 bit 有符號(hào)數(shù)的數(shù)據(jù)范圍為-32 768~32 767,遠(yuǎn)遠(yuǎn)超過(guò)控件的像素值,需要將采集到的數(shù)據(jù)除以一個(gè)常數(shù)C以更好地顯示在此控件中。在本軟件中,使用一個(gè)SeekBar 控件控制常數(shù)C的值。將SeekBar 控件的progress 變量設(shè)置為12 擋,數(shù)值為0~11 范圍內(nèi)的整數(shù)。SeekBar中progress 的數(shù)值與C的對(duì)應(yīng)關(guān)系詳見(jiàn)表1。

      同時(shí),軟件中還定義了一個(gè)Switch 控件,用于控制View1 控件顯示濾波前或?yàn)V波后的心音波形。當(dāng)濾波開(kāi)關(guān)關(guān)閉時(shí),每隔0.1 s 將當(dāng)前data 數(shù)組中的數(shù)據(jù)顯示在View1 上。當(dāng)濾波開(kāi)關(guān)打開(kāi)時(shí),則顯示filtered_data 數(shù)組中的數(shù)據(jù)。波形顯示的主要代碼如下:

      圖4 心音信號(hào)帶通濾波前后的波形及其時(shí)頻圖

      表1 SeekBar 中progress 數(shù)值與常數(shù)C 的對(duì)應(yīng)關(guān)系

      其中,data.size()用于判斷data 數(shù)組中是否有數(shù)據(jù),如果有數(shù)據(jù)則顯示??紤]到依據(jù)心音進(jìn)行診斷的準(zhǔn)確程度與采集到心音質(zhì)量的關(guān)系很大,軟件界面需要實(shí)時(shí)顯示基礎(chǔ)心音包絡(luò),以便于用戶及時(shí)掌握當(dāng)前采集位置的心音強(qiáng)度,從而進(jìn)行位置調(diào)整。而S1 和S2 的頻率范圍通常不超過(guò)100 Hz[18],故這里采用2.2節(jié)描述的方式進(jìn)行帶通濾波,但此時(shí)將濾波器的通帶調(diào)整為30~100 Hz,從而計(jì)算出的巴特沃斯濾波器的系數(shù)B和A分別為

      心音經(jīng)過(guò)30~100 Hz 的帶通濾波后,其包含的大部分雜音能量已經(jīng)被濾除了。此后,軟件需要計(jì)算上述經(jīng)過(guò)帶通濾波的心音的香農(nóng)能量包絡(luò)。香農(nóng)能量計(jì)算公式為[19]

      其中,x為時(shí)域心音信號(hào)。則平均香農(nóng)能量可以表示為

      其中,xnorm為歸一化后的心音信號(hào);MS為信號(hào)長(zhǎng)度,本軟件中設(shè)置MS=40。對(duì)ES求均值和方差即可得到香農(nóng)能量包絡(luò),計(jì)算公式如下[20]:

      其中,M(ES(t))為香農(nóng)能量的均值,S(ES(t))為香農(nóng)能量的方差。軟件中使用Pt 數(shù)組來(lái)存儲(chǔ)香農(nóng)能量包絡(luò),另一個(gè)自定義控件View2 用于顯示香農(nóng)能量包絡(luò)。設(shè)定View2 控件每隔0.1 s 讀取一次Pt 數(shù)組中的數(shù)據(jù)并顯示,顯示原理與心音波形圖一致。

      2.4 數(shù)據(jù)保存

      軟件采集到的心音信號(hào)需要被完好無(wú)損地保存下來(lái),以便于回放或進(jìn)一步分析。軟件以16 bit 有符號(hào)數(shù)保存帶通濾波前和帶通濾波后的數(shù)據(jù),保存的數(shù)據(jù)格式有.pcm、.wav 和.txt 3 種。其中,.pcm 格式存儲(chǔ)最原始的波形數(shù)據(jù);.wav 格式為微軟發(fā)布的一種聲音文件格式,用戶可以隨時(shí)在平板設(shè)備上播放此格式的音頻文件,但保存時(shí)需要添加的文件頭應(yīng)在WabHeader 類中預(yù)先寫(xiě)好;純文本.txt 格式是為了便于用戶直接查看保存的心音數(shù)據(jù)。常用的心音聽(tīng)診區(qū)有5 個(gè),包括主動(dòng)脈瓣聽(tīng)診區(qū)、肺動(dòng)脈瓣聽(tīng)診區(qū)、主動(dòng)脈瓣第二聽(tīng)診區(qū)、三尖瓣聽(tīng)診區(qū)和二尖瓣聽(tīng)診區(qū)[21],這些聽(tīng)診區(qū)采集到的心音差異很大。遺憾的是,現(xiàn)有的心音聽(tīng)診軟件采集數(shù)據(jù)時(shí)往往不分聽(tīng)診區(qū),這導(dǎo)致了難以對(duì)特定瓣膜的疾病進(jìn)行準(zhǔn)確判斷。本軟件定義了RadioButton 控件以供用戶在這5 個(gè)聽(tīng)診區(qū)中選擇,用戶也可以在文本框中自行輸入聽(tīng)診位置,聽(tīng)診區(qū)的名字會(huì)加入到保存音頻的文件名中。以.pcm 格式文件保存為例,實(shí)現(xiàn)步驟如下:

      (1)定義File 對(duì)象file_name,具體如下:

      (2)獲取系統(tǒng)時(shí)間:

      該系統(tǒng)時(shí)間被加入到保存心音文件的文件名中,以避免相同名字的錄音文件互相覆蓋。

      (3)在剛才創(chuàng)建的文件夾中新建.pcm 格式文件:

      (4)文件創(chuàng)建完成后,定義流fos:

      (5)每次接收到新的數(shù)據(jù)后,使用fos.write(tmp,0,len)將數(shù)據(jù)寫(xiě)入到文件中。當(dāng)數(shù)據(jù)傳輸完成后,使用fos.close()關(guān)閉流。如此便完成了文件中數(shù)據(jù)的寫(xiě)入操作。

      3 軟件實(shí)現(xiàn)

      3.1 藍(lán)牙連接

      軟件界面主要包括藍(lán)牙連接、心音采集和文件查看3 個(gè)界面。打開(kāi)軟件首先進(jìn)入藍(lán)牙連接界面,如圖5 所示,選擇nbbsw 將平板計(jì)算機(jī)與聽(tīng)診器通過(guò)藍(lán)牙連接。連接完成后,軟件會(huì)自動(dòng)跳到心音采集界面,如圖6 所示,此時(shí)可以輸入患者姓名并選擇聽(tīng)診區(qū)。

      圖5 藍(lán)牙連接界面

      圖6 心音采集界面

      3.2 數(shù)據(jù)處理與顯示

      患者信息輸入完成后,點(diǎn)擊“開(kāi)始錄音”按鈕即可開(kāi)始心音采集。此時(shí)姓名文本框和聽(tīng)診區(qū)選擇框變?yōu)椴豢删庉嫚顟B(tài),以防止被誤修改。采集時(shí),界面左下方顯示的是心音波形,右下方顯示的是心音的香農(nóng)能量包絡(luò)。軟件設(shè)置濾波開(kāi)關(guān)android:checked=“true”時(shí),濾波默認(rèn)開(kāi)啟。如果關(guān)閉濾波,其心音波形如圖7(a)所示。此時(shí)可以看出心音基線不穩(wěn)定,即有低頻干擾。在同一個(gè)聽(tīng)診位置連續(xù)采集心音,同時(shí)左右拖動(dòng)“放大”滑塊(該滑塊的位置與2.3 節(jié)中SeekBar:progress的數(shù)值一一對(duì)應(yīng))。當(dāng)SeekBar 中progress 取值為3時(shí),其心音如圖7(b)所示。對(duì)比縮小后[SeekBar 中progress 取值為0,如圖7(c)所示]和放大后[SeekBar中progress 取值為5,如圖7(d)所示]的心音波形,容易看出,拖動(dòng)“放大”滑塊可以有效調(diào)節(jié)心音信號(hào)的幅度,便于用戶查看心音的概貌或細(xì)節(jié)。

      圖7 心音波形

      3.3 數(shù)據(jù)保存及查看

      當(dāng)采集完成后,點(diǎn)擊“停止錄音”按鈕可立即停止心音的采集。此后,點(diǎn)擊“查看文件”按鈕跳轉(zhuǎn)到文件查看界面,可以查看保存的心音文件,如圖8(a)所示。每一次采集都會(huì)產(chǎn)生2 個(gè)文件夾,分別保存濾波前[如圖8(a)中062600021]和濾波后[如圖8(a)中062600021filtered]的心音?!安∪?”文件夾保存了每一次采集的3 種格式(.pcm、.txt 和.wav)的數(shù)據(jù),其文件名包括了患者姓名、聽(tīng)診區(qū)和采集時(shí)間的信息,如圖8(b)所示。

      圖8 保存的心音文件

      基于Android 移動(dòng)平臺(tái)的心音采集軟件界面直觀、頁(yè)面跳轉(zhuǎn)少、使用過(guò)程流暢、可以實(shí)時(shí)濾波和保存數(shù)據(jù)、有利于數(shù)據(jù)的后續(xù)處理,具有較高的實(shí)用價(jià)值和進(jìn)一步開(kāi)發(fā)潛力。

      4 結(jié)語(yǔ)

      本文設(shè)計(jì)了一個(gè)基于Android 移動(dòng)平臺(tái)的心音采集軟件,可以手動(dòng)輸入患者姓名、選擇聽(tīng)診區(qū),便于進(jìn)行多人多聽(tīng)診區(qū)的心音采集。同時(shí),本軟件還具有心音波形實(shí)時(shí)顯示和放大功能。此外,軟件實(shí)時(shí)計(jì)算了香農(nóng)能量包絡(luò)并顯示在界面上,有利于用戶尋找心音信號(hào)較強(qiáng)的部位,提高心音采集質(zhì)量。這彌補(bǔ)了目前我國(guó)研究人員設(shè)計(jì)的電子聽(tīng)診器軟件功能較為單一的缺點(diǎn)。然而,本軟件仍然存在一定的不足之處,如沒(méi)有自動(dòng)診斷功能、降噪算法較為單一等。未來(lái)將進(jìn)一步豐富軟件功能,如增加小波降噪、基于深度學(xué)習(xí)的自動(dòng)診斷功能等。

      猜你喜歡
      香農(nóng)心音通濾波
      大衛(wèi),不可以
      聲吶發(fā)射機(jī)負(fù)載阻抗變化仿真分析
      基于雙閾值的心音快速分段算法及其應(yīng)用研究
      雙聲道心音能量熵比的提取與識(shí)別研究
      二階有源低通濾波電路的計(jì)算機(jī)輔助設(shè)計(jì)
      電子制作(2017年1期)2017-05-17 03:54:07
      校園恩仇錄:小混混和易拉罐女王的故事
      基于香農(nóng)熵的心音信號(hào)檢測(cè)方法研究
      艾米麗的呼嚕
      基于復(fù)帶通濾波的智能電表量測(cè)算法及其DSP實(shí)現(xiàn)
      基于頻域分析和低通濾波的光伏并網(wǎng)逆變器諧振抑制研究
      延边| 新郑市| 电白县| 互助| 方城县| 定西市| 濮阳县| 天峻县| 台州市| 广灵县| 龙南县| 泌阳县| 罗定市| 喜德县| 巴东县| 宜城市| 广水市| 襄城县| 孟津县| 竹溪县| 中牟县| 香港 | 万荣县| 湘乡市| 河津市| 铁岭市| 石河子市| 吉木萨尔县| 文成县| 杭锦后旗| 长武县| 封开县| 建平县| 眉山市| 许昌县| 玉林市| 尤溪县| 双柏县| 灵宝市| 鹤峰县| 恩平市|