基于DSP的數(shù)字聽(tīng)診器的設(shè)計(jì)與實(shí)現(xiàn)
作者 張石 李昂 袁粵林 于秀 東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院(遼寧 沈陽(yáng) 110819)
本文引用地址:http://m.butianyuan.cn/article/201806/382301.htm張石(1963-),男,博士,教授,研究方向:生物醫(yī)學(xué)電子學(xué)、醫(yī)學(xué)影像處理。
摘要:設(shè)計(jì)了一種數(shù)字化的基于DSP的聽(tīng)診器,該聽(tīng)診器采用TI公司低功耗DSP處理芯片TMS320C5515作為核心處理芯片,系統(tǒng)集電源部分、外部存儲(chǔ)部分、顯示部分、前端音頻采集處理部分、藍(lán)牙傳輸部分于一身。與傳統(tǒng)聽(tīng)診器相比,本設(shè)計(jì)能夠?qū)π姆我粜盘?hào)進(jìn)行了實(shí)時(shí)FIR濾波處理、心率計(jì)算,且通過(guò)藍(lán)牙將聲音信號(hào)傳給用戶,有更高的醫(yī)學(xué)診斷價(jià)值。
0 引言
聽(tīng)診器作為醫(yī)生常用的醫(yī)療工具,是診斷心血管系統(tǒng)疾病、呼吸系統(tǒng)疾病的重要手段之一。但在車(chē)禍等事故現(xiàn)場(chǎng)的特殊環(huán)境、臨床診斷以及醫(yī)學(xué)教學(xué)中迫切需要一種體積小、成本低、具有良好抗干擾能力,并能實(shí)現(xiàn)多人同時(shí)聽(tīng)診的數(shù)字聽(tīng)診器。因此,在目前的醫(yī)療環(huán)境下,數(shù)字聽(tīng)診器具有很大的市場(chǎng)、經(jīng)濟(jì)以及應(yīng)用價(jià)值。
文獻(xiàn)[1]提出了一種利用DSP芯片設(shè)計(jì)數(shù)字聽(tīng)診器的參考設(shè)計(jì)方案,文獻(xiàn)[2]提出了利用希爾伯特黃變換對(duì)聲音信號(hào)進(jìn)行包絡(luò)提取,并利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行模式識(shí)別的辦法。文獻(xiàn)[3-7]提出了各種基于不同平臺(tái)的數(shù)字聽(tīng)診器,為本文的實(shí)現(xiàn)奠定了基礎(chǔ)。
1 系統(tǒng)整體方案
整個(gè)系統(tǒng)的方案框圖如圖1所示,當(dāng)模擬前端(AFE)采集到聲音信號(hào)后,該聲音信號(hào)經(jīng)過(guò)模擬的放大、濾波、AD轉(zhuǎn)換后通過(guò)I2S總線傳給DSP芯片。
DSP芯片在高速外部存儲(chǔ)的協(xié)助下處理大量的聲音數(shù)據(jù),并最終將所需信息顯示在LCD上。
在這個(gè)過(guò)程中DSP芯片主要進(jìn)行的工作有數(shù)字濾波、心率檢測(cè)及波形顯示等,DSP芯片的應(yīng)用使得廉價(jià)、高性能的數(shù)字聽(tīng)診器的實(shí)現(xiàn)成為可能。
2 硬件方案
本方案模擬前端采用低漂移、高共模抑制比的OPA335對(duì)麥克風(fēng)輸出的毫伏范圍內(nèi)的信號(hào)進(jìn)行適當(dāng)?shù)姆糯?、濾波,并包含可變?cè)鲆娌糠忠蕴岣咝旁氡取?/p>
DSP芯片采用TI公司低功耗處理芯片TMS320C5515,內(nèi)部含有4個(gè)DMA通道和4個(gè)I2S總線,且對(duì)于FFT有硬件加速,功耗低、處理能力強(qiáng),非常適合用在此處。
選用TI公司可編程控制輸入輸出的TLV320AIC3254作為編解碼芯片。CPU通過(guò)I2S總線與音頻編解碼器交換數(shù)據(jù)信號(hào),通過(guò)I2C總線發(fā)送控制信號(hào)對(duì)編解碼器進(jìn)行配置。
本系統(tǒng)所采用的SDRAM容量為256 Mb,型號(hào)為MT48LC16M16A2,利用DSP芯片內(nèi)部DMA的ping-pong機(jī)制配合外部高速RAM能夠?qū)崿F(xiàn)在下一幀數(shù)據(jù)到來(lái)之前完成數(shù)據(jù)的處理,從而保證系統(tǒng)的實(shí)時(shí)性。考慮到程序存儲(chǔ)問(wèn)題,本系統(tǒng)選擇外擴(kuò)FLASH,型號(hào)為PC28F128P30B85。
聲音最后通過(guò)藍(lán)牙模塊傳輸至藍(lán)牙耳機(jī),實(shí)現(xiàn)無(wú)線聽(tīng)診。藍(lán)牙模塊采用SHION-M60藍(lán)牙模塊,該模塊內(nèi)部集成CSR8670藍(lán)牙芯片,是業(yè)界保真度最高的芯片之一,該模塊可直接將解碼之后的模擬聲音信號(hào)傳輸給藍(lán)牙耳機(jī)。
本系統(tǒng)采用外部5 V DC輸入,電源芯片采用TPS70302,該芯片可將5 V左右輸入轉(zhuǎn)化為3.3 V和1.8 V,供給DSP及外設(shè),此外,DSP芯片的LDOI引腳供3.3 V電壓,從而使DSP芯片自身輸出1.3 V給內(nèi)核供電。整體框圖如圖2所示。
3 軟件方案
程序整體的思路:首先通過(guò)DSP對(duì)前端編解碼芯片TLV320AIC3254配置來(lái)啟動(dòng)采集,然后DSP對(duì)采集的信號(hào)進(jìn)行相應(yīng)的處理,再通過(guò)I2S傳輸給編解碼器,通過(guò)藍(lán)牙耳機(jī)將心音實(shí)時(shí)播放出來(lái),從而實(shí)現(xiàn)無(wú)線聽(tīng)診以及多人同時(shí)聽(tīng)診。在數(shù)據(jù)傳輸方面采用DMA,使DSP芯片主要工作集中在數(shù)字信號(hào)的處理上。并且用戶可通過(guò)按鍵進(jìn)行聽(tīng)診模式選擇,包括心音、肺音等(通過(guò)改變FIR濾波器參數(shù)),音量調(diào)節(jié),是否保存等操作。軟件系統(tǒng)的架構(gòu)如圖3所示。
為了實(shí)現(xiàn)心音實(shí)時(shí)的顯示,需要對(duì)輸入緩存與輸出緩存進(jìn)行一些處理,在輸入端采用Ping-Pong Buffer模式,將數(shù)據(jù)的采集以及處理分開(kāi)來(lái),避免數(shù)據(jù)處理期間聲音信號(hào)的丟失。在輸出端將輸出緩存分為四個(gè)小的緩存,將數(shù)據(jù)進(jìn)出緩存區(qū)相互錯(cuò)開(kāi),解決了數(shù)據(jù)之間的沖突問(wèn)題。圖4為程序整體的流程圖。
4 DSP濾波
前文已經(jīng)提到DSP芯片的主要工作是進(jìn)行數(shù)字濾波以及心率計(jì)算。由于傳統(tǒng)的聽(tīng)診頭有膜型聽(tīng)診頭和鐘型聽(tīng)診頭兩種,鐘型聽(tīng)診頭對(duì)于低頻的聲音較敏感,而膜型聽(tīng)診頭會(huì)濾除一部分低頻的聲音對(duì)高頻的聲音較敏感,在此我們通過(guò)數(shù)字濾波來(lái)實(shí)現(xiàn)。為了實(shí)現(xiàn)更高的運(yùn)行效率,我們調(diào)用TMS320C5515 DSP庫(kù)中的FIR函數(shù),這樣我們只需要計(jì)算出滿足我們要求的FIR濾波器系數(shù)和階數(shù)傳遞給FIR函數(shù)即可。
鐘模式的頻率范圍20~220 Hz,膜模式的范圍為50~600 Hz。使用MATLAB中FDATOOL來(lái)進(jìn)行濾波器的設(shè)計(jì),然后對(duì)濾波器的系數(shù)量化后導(dǎo)出即可。在設(shè)計(jì)過(guò)程中,首先需要保證在通帶內(nèi)為線性相位防止相位失真,然后階數(shù)要適合在DSP的計(jì)算速度允許的情況下保證足夠的阻帶衰減。所以這里使用窗函數(shù)設(shè)計(jì)方法,窗函數(shù)為哈明窗,階數(shù)為161階。當(dāng)頻率范圍為20~220 Hz時(shí),縮放x軸后濾波器幅頻與相頻響應(yīng)如圖5所示。
當(dāng)頻率范圍為50~600 Hz時(shí),縮放x軸后濾波器幅頻與相頻響應(yīng)如圖6所示。
圖7是一段采樣心音信號(hào)等間隔抽取后得到的圖形,可以看出這段信用被干擾是比較嚴(yán)重的,尤其是第二心音,根據(jù)頻譜可以發(fā)現(xiàn)高頻的噪聲成分是比較多的。對(duì)以上信號(hào)使用所設(shè)計(jì)的FIR濾波器進(jìn)行濾波得到圖9。
濾波后信號(hào)從頻域圖中可以看出高頻信號(hào)得到了很好的抑制,基本能夠滿足設(shè)計(jì)需求。
5 心率算法
對(duì)于心率的計(jì)算,本方案采用的是自適應(yīng)心率求取。傳統(tǒng)的心率求取方法主要有兩種,一種是頻域的方法,即求出頻域尖峰間隔Δf,Δf說(shuō)明了信號(hào)的周期性,以此來(lái)求取心率,但是通過(guò)對(duì)采集的信號(hào)進(jìn)行頻域分析時(shí)發(fā)現(xiàn),噪聲干擾對(duì)心率的求取影響很大,計(jì)算的心率波動(dòng)大、準(zhǔn)確率低。在此采用第二種時(shí)域的方法,在已知的時(shí)間間隔Δt內(nèi)計(jì)算心音信號(hào)的峰值數(shù)量n,則心率為,實(shí)現(xiàn)簡(jiǎn)單且不失準(zhǔn)確性。由于不同的情況下人的心跳信號(hào)的強(qiáng)度會(huì)不一樣,所以要想求取準(zhǔn)確的心率對(duì)于峰值閥值TH的選取很重要。由于心音強(qiáng)度的變化,固定的閥值在強(qiáng)度過(guò)高或過(guò)低時(shí)不能滿足準(zhǔn)確性的要求,所以這里選擇自適應(yīng)閥值。在每次求取心率之前,對(duì)采集的一段信號(hào)先進(jìn)行分析,求出信號(hào)的峰值 MAX(i),然后將這個(gè)峰值的0.7倍作為心率計(jì)算的閥值即TH(i)=0.7MAX(i),每次在新閥值的基礎(chǔ)上進(jìn)行計(jì)算,當(dāng)采樣值從x[n]
6 結(jié)論
本文從硬件設(shè)計(jì)部分、軟件編寫(xiě)部分以及整體實(shí)現(xiàn)對(duì)數(shù)字聽(tīng)診系統(tǒng)進(jìn)行了具體的闡述。本系統(tǒng)是一套完整的基于DSP的數(shù)字聽(tīng)診器,集心音的采集、處理以及藍(lán)牙傳輸與一體,實(shí)現(xiàn)了心音的現(xiàn)代聽(tīng)診。心音信息更加完整的再現(xiàn)、心音實(shí)時(shí)的回放以及通過(guò)藍(lán)牙傳輸是本系統(tǒng)的特點(diǎn)。有了藍(lán)牙聽(tīng)診,本系統(tǒng)可以使用在醫(yī)學(xué)的教學(xué)當(dāng)中,醫(yī)師與學(xué)生同時(shí)聽(tīng)診,實(shí)時(shí)指導(dǎo),讓教學(xué)更加高效與方便。
當(dāng)然本系統(tǒng)還有需要提升的地方。未來(lái)數(shù)字聽(tīng)診器一定會(huì)取代傳統(tǒng)聽(tīng)診器,我們需要它發(fā)揮更加重要的作用,這就需要更加小的體積和非常強(qiáng)的抗干擾能力,且功耗和成本也需要合理控制。此外,隨著時(shí)代的發(fā)展,人工智能也將是大勢(shì)所趨,故本系統(tǒng)也需要進(jìn)一步完善,下一步打算根據(jù)希爾伯特黃變換取出的包絡(luò)進(jìn)行BP神經(jīng)網(wǎng)絡(luò)模式識(shí)別,從而實(shí)現(xiàn)適應(yīng)于時(shí)代發(fā)展的智能聽(tīng)診。
參考文獻(xiàn):
[1]TMS320C5515:心電圖(ECG)MDK開(kāi)發(fā)方案[J].世界電子元器件,2011,(02):11-14.
[2]胡泊.智能電子聽(tīng)診器設(shè)計(jì)與實(shí)現(xiàn)[D].天津大學(xué),2010.
[3]張家康.Android手機(jī)電子聽(tīng)診器系統(tǒng)的研究[D].沈陽(yáng)工業(yè)大學(xué),2016.
[4]陳晴.基于MSP430的電子聽(tīng)診器
的設(shè)計(jì)[J].現(xiàn)代經(jīng)濟(jì)信息,2015(15):369+371.
[5]駱懿,吳穎.便攜式藍(lán)牙電子聽(tīng)診器的研究[J].杭州電子科技大學(xué)學(xué)報(bào),2010,30(04):142-145.
[6]張虎軍.便攜式超低功耗心電聽(tīng)診儀的研制[D].第一軍醫(yī)大學(xué),2004.
[7]樊容.基于嵌入式平臺(tái)的智能電子聽(tīng)診器的研制[D].天津大學(xué),2014.
本文來(lái)源于《電子產(chǎn)品世界》2018年第7期第41頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評(píng)論