王逸群 葉燕語 張雪燕
重慶大學光電工程學院,重慶 400044
基于MATLAB的中醫(yī)脈診儀的設計與實現
王逸群 葉燕語 張雪燕
重慶大學光電工程學院,重慶 400044
脈診是中醫(yī)診斷中的瑰寶,但相比西醫(yī)診斷的發(fā)展,中醫(yī)脈診方法和理論發(fā)展還停留在主觀臆斷與經驗之中。筆者基于MATLAB設計了脈象實時采集系統(tǒng),建立了100-40-15-5的四層的BP神經網絡,對五種脈象進行識別。利用濾波、去基線漂移、歸一化等預處理,大大提高了脈象識別的準確性,使其準確率達到90.8%,為發(fā)展中醫(yī)脈診數字化、客觀化,脈診儀的小型化提供了一種行之有效的方法。
中醫(yī)脈診儀;實時;預處理;神經網絡
中醫(yī)博大精深,脈診于中醫(yī)也有著悠久的歷史, 《難經》就記載 “獨取寸口”候脈言病,所以寸口診脈是中醫(yī)診斷學中重要的內容。但是,脈診在一定程度上取決于醫(yī)生的主觀經驗判斷,有時導致很難客觀把握。為了研究脈象與診病的內在機理,本項目基于MATLAB設計了中醫(yī)脈診儀,結合中醫(yī)診斷理論與人工智能技術識別脈象,為脈診客觀研究提供了一種方法。
脈象是手指感覺脈搏跳動的形象,脈象的產生與心臟的搏動,心氣的盛衰,脈管的通利和氣血的盈虧及各臟腑的協(xié)調作用直接相關[1]。脈象的具體表現是脈搏信號,它是一種微弱的生理信號。本設計利用HK-2000H壓阻傳感器采集脈相,該傳感器集成了信號調理電路、A/D轉換電路、串行通信等電路,可以將脈象的模擬信號轉換為數字信號并通過USB與計算機通訊。
因脈搏信號具有復雜、易變等特點,本項目設計了定位系統(tǒng)與充氣加壓系統(tǒng)??梢苑乐挂颦h(huán)境與自身的振動而導致脈搏信號的畸變。
為了模仿浮、中、沉三種取脈壓力,在充氣加壓系統(tǒng)中加入了壓力表,為后續(xù)脈象分析打下基礎。
圖1 數字脈象采集系統(tǒng)
2.1 信號采集與動態(tài)顯示 該傳感器波特率為9600bps,采樣頻率200HZ,數據格式為8位數據位。當計算機向其發(fā)送2032H時,開始自動采樣,發(fā)送2033H時,停止采樣,這樣就可控制傳感器的采樣。
MATLAB數據采集工具箱是一個很好的平臺,本設計利用MATLAB的“serial”函數,對串口進行操作,設置與串口相對應的波特率、數據位、停止位等參數,向其發(fā)送采樣信號,并利用“callback”回調函數,以背景擦除模式動態(tài)繪制出數據圖像,這樣即得到實時的脈搏信號圖。
在繪圖中,把三個采集到的點平均為一個點畫出,這樣就使得原本200HZ的采樣頻率變?yōu)?6.6HZ,在后面的分析中,可以得知脈搏信號多集中在20HZ以下,這樣足以滿足香農采樣定理,也減少了計算機實時繪圖的負擔。
2.2 數據預處理與特征提取在時域波形方面,采集到的數據因呼吸、溫度和外界振動導致基線漂移。在查閱資料后,使用MATLAB編制帶阻濾波器進行去基線漂移,但因不同脈象的噪聲頻帶有所不同,濾波器衰減并非理想,去除效果不佳。改用擬合插值法,對波谷值識別,用樣條差值函數(‘spline’)插值并去除,這樣就使基線漂移的問題得到解決,并為歸一化與神經網絡的識別打下了基礎。因脈象的個體差異,在時域中很難尋找脈搏跳動的頻率,并且精度不能滿足要求。利用快速傅立葉變換 (FFT)對脈搏信號進行分析,可以發(fā)現,脈搏的圖像大多集中在0~20HZ。并且脈象是一種周期性極強的生理信號,所以可以從頻域中提取基波的頻率,這也就是脈率。在實際的操作中,因采樣頻率為66.6HZ,數據量為1024個脈象點,所以選擇4×1024點的FFT可以達到脈率精度為1/min的要求,從而實現了脈率的精確獲取。
圖2 基線漂移去除前后脈象對比圖
2.3 人工智能方法進行脈象識別 BP神經網絡是把高維向量做多次變換,映射到輸出空間,并根據設定的判決門限,在輸出空間中進行劃分的方法。在一個具有無限 “隱層”節(jié)點的單隱層BP網絡可以實現任意從輸入到輸出的非線性映射[2],本設計用神經網絡對脈象進行模式識別,需要結合中醫(yī)脈診要素進行輸入輸出樣本的選取。
圖3 神經網絡示意圖
脈象要素特征的界定十分模糊,中醫(yī)文獻常從位、次、形、勢四個方面加以分析。脈位,主要是脈搏跳動的部位,通過壓力表,將取脈的最佳壓力作為特征量,來區(qū)分浮、中、沉三個位置。脈次,即脈率,將頻域中提取的頻率作為其特征量。脈型與脈勢,即脈搏跳動的形態(tài)與趨勢,設計提取單次脈搏跳動的圖像,來表現其特征。
對于脈象的種類,本項目參考標準脈象圖[3],并咨詢專業(yè)醫(yī)師,在人群中廣泛尋找典型脈象,并提取特征量作為神經網絡的訓練樣本。經過大量的實驗與計算,采用100-40-15-5的四層神經網絡(動量BP算法)進行脈象識別的效果較好,并用采集到的多組測試樣本進行系統(tǒng)的驗證。
2.4 人機交互界面設計 為使用戶能夠友好、便捷的操作,本項目設計了MATLAB的圖形用戶界面(GUI)。只需按操作點擊按鈕,即可將實時圖像、數據、分析結果和診斷建議顯示在界面上,方便人機交互。
圖4 GUI界面的設計
最后,利用VC++編譯器將MATLAB的GUI文件編譯成EXE可執(zhí)行文件。這樣,沒有MATLAB的用戶也能夠操作與使用,擴大了受眾群體。
本項目設計了小型化的便捷脈診儀,基本滿足了脈象采集、分析與識別的要求,并五種脈象 (常、沉、促、滑、弦)進行分析和識別。其中,訓練樣本的識別率達到了100%,其余的65個測試樣本中,正確識別59個,識別率達到90.8%,辨識效果與一致性較好。
未來中醫(yī)脈象診斷將努力朝著客觀化、數字化的方向發(fā)展。本文通過脈象采集系統(tǒng)的硬件設計,信號處理與模式識別的軟件仿真,展現了基于MATLAB的中醫(yī)脈診儀。設計重點在于找尋一種方法,讓中醫(yī)脈診有更為客觀的診斷標準。但還有許多問題,如復合脈象、年齡、時節(jié)的影響并沒有考慮,還需要對此進一步地探討與研究。
[1]朱文鋒.中醫(yī)診斷學[M].北京:中國中醫(yī)藥出版社,2002:8.
[2]周開利.神經網絡模型及其MATLAB仿真程序設計[M].北京:清華大學出版社,2005:7.
[3]張文娟.常見二十九種脈象圖的臨床研究 [C].云南:第二次全國中西醫(yī)結合診斷學術研討會論文集,2008:7.
R197.39
A
1007-8517(2015)17-0062-02
2015.06.30)
第八屆國家級大學生創(chuàng)新訓練項目(項目編號:201410611026)。
王逸群(1994-),男,漢族,陜西藍田人,本科。