周克良 王佳佳
(江西理工大學電氣工程與自動化學院,贛州,341000)
據(jù)相關(guān)數(shù)據(jù)統(tǒng)計,全世界每年約1750萬人死于心臟病,占總死亡人數(shù)的30%。每年心臟病和中風幸存者至少有2000萬人,且多數(shù)存在復發(fā)和死亡的風險。中國每年大約有260萬人死于心血管疾病,死亡人數(shù)居世界第2位。據(jù)世界衛(wèi)生組織統(tǒng)計,到2020年中國每年因心血管疾病死亡人數(shù)將達400萬人。對于心臟健康狀況的監(jiān)測成為國內(nèi)外相關(guān)領域較重視的問題。而心臟最直觀的監(jiān)測對象便是心電圖和心音,醫(yī)生可以根據(jù)心電圖判斷心臟跳動的頻率是否正常,而心音可輔助判斷心臟是何處異?;驌p壞,及時了解病人的病情,挽救病人的生命。因此研究心音的識別與預測具有重要意義。
心音的雜音是一組歷時較長、頻率及振幅均不同的振動,既可與心音分離,也可連續(xù),或完全覆蓋心音。目前對于心音降噪分析采用的是經(jīng)驗模態(tài)分解(Empirical mode decomposition,EMD)、小波包分析、Mel頻譜倒譜系數(shù)等方法,這些算法可以提取出異常心音與正常心音的特征數(shù)據(jù),并根據(jù)這些特征數(shù)據(jù),以及心音的訓練樣本,采用BP神經(jīng)網(wǎng)絡、支持向量機(Support vector machine,SVM)、徑向基函數(shù)(Radial basis function,RBF)神經(jīng)網(wǎng)絡等進行訓練,達到識別及其預測的效果。文獻[1]利用主成分分析對心音特征進行降維,采取自組織映射神經(jīng)網(wǎng)絡進行聚類分析,并對各種異常和正常心音進行分類識別。文獻[2]在EMD的基礎上,引入了單通道奇異值分解(Singular value decomposition,SSVD)方法,在心音降噪方面取得了良好效果。文獻[3]將概率神經(jīng)網(wǎng)絡(Probabilistic neural network,PNN)引入電控發(fā)動機故障診斷,診斷結(jié)果無誤。
PNN具有較強的泛化性和實用性,故本文對傳統(tǒng)PNN進行優(yōu)化,用于心音數(shù)據(jù)分類。運用Matlab 2013a軟件,采用LMS-PNN對心音數(shù)據(jù)去噪,提取降噪后的特征數(shù)據(jù)進行訓練,降低了傳統(tǒng)PNN的誤差,提高了識別的準確率,改善了心音預測效果。
由于心音信號的短時平穩(wěn)性[4],本文采用最小均方(Least mean square,LMS)方法[5]進行心音去噪。對于心音信號的時間序列x(n),利用窗函數(shù)分幀后得到第i幀語音信號xi(m),幀長設置為200,對每幀心音信號做離散傅里葉(Discrete Fourier transform,DFT)變換后可得
式中Xiangle為第i幀的相角。
式中:NIS為幀數(shù),D(k)為無話段的平均能量。
式(4)為譜減公式,其中a和b為常數(shù),a為過減因子,b為增益補償因子為譜減后的時間系列。
然后提取降噪后數(shù)據(jù)的特征值,本文提取降噪心音的短時自相關(guān)系數(shù)和短時能量譜密度[6-8]。對降噪后的x(k)分幀后,每幀的短時自相關(guān)函數(shù)為
采用Matlab軟件中的pwelch函數(shù)求得心音每幀的短時能量譜密度,并保存計算數(shù)據(jù)。
PNN于1989年由Specht博士首先提出,是基于統(tǒng)計原理的神經(jīng)網(wǎng)絡模型,在分類功能上與最優(yōu)貝葉斯分類器等價。PNN的實質(zhì)是基于貝葉斯最小風險準則發(fā)展而來的一種并行算法[9,10],由輸入層、模式層、求和層和輸出層(決策層)組成。第1層為輸入層,用于輸入特征數(shù)據(jù),將數(shù)據(jù)傳遞跟隱含層;模式層為徑向基層,計算輸入向量與中心之間的距離,并返回一標量。向量x輸入到模式層,模式層中第i類模式的第j神經(jīng)元所確定的關(guān)系式為
式中:i=1,2,…,M,M為訓練樣本總類數(shù);d為樣本空間數(shù)據(jù)維數(shù);xij為第i類樣本的第j個中心。求和層把隱含層中屬于同一類的神經(jīng)元的輸出做加權(quán)平均
式中:vi為第i類別的輸出,L為第i類神經(jīng)元的個數(shù)。輸出層取求和層中最大的一個作為輸出的類別
輸入層的向量先于加權(quán)系數(shù)相乘,由輸入RBF計算
本文采集的心音信息來自贛州某醫(yī)院的臨床數(shù)據(jù),包括:心室舒張期額外音(正常)心室舒張期額外音(嚴重)、收縮早期喀啦音(嚴重)等心音。運用LMS算法對上述3種心音進行降噪與分析,采樣頻率為44100Hz,采樣信號和采樣數(shù)據(jù)分別以wav和mat格式保存。采用本文的觀察數(shù)據(jù)與觀察圖像可得:IS為0.4 s,a取值為10,b取值為0.01。通過LMS降噪后,降噪結(jié)果如圖1、2所示。圖1為心室舒張期額外音(正常)的帶噪心音波形,圖2為經(jīng)LMS濾波后心室舒張期額外音(正常)的去噪波形,由圖1、2對比可知,LMS算法濾波明顯去除了心室舒張期額外音(正常)的雜音。
再對去噪后的心音進行特征提取、短時域時域處理和短時域頻域處理,得到各心音的短時自相關(guān)數(shù)據(jù)及短時功率譜密度,將得到的數(shù)據(jù)以mat格式保存。圖3、4分別為心室舒張期額外音(正常)正常自相關(guān)系數(shù)及短時功率譜密度圖。
圖1 帶噪心音波形Fig.1 Noisy heart sound waveform
圖2 LMS譜減后的心音信號波形Fig.2 Heart sound signal waveform after LMS spectrum reduction
對于PNN,輸入層輸入短時自相關(guān)數(shù)據(jù)及短時功率譜密度數(shù)據(jù),加上模式層輸入訓練數(shù)據(jù),共有40000個訓練樣本數(shù)據(jù),其中心室舒張期額外音(正常)樣本數(shù)據(jù)10000個,心室舒張期額外音(嚴重)樣本數(shù)據(jù)10000個,收縮早期喀啦音(嚴重)樣本數(shù)據(jù)10000個和測試數(shù)據(jù)10000個。輸出層將輸出數(shù)據(jù)進行等級劃分:“1”代表心室舒張期額外音(正常),“2”代表心室舒張期額外音(嚴重),“3”代表收縮早期喀啦音(嚴重)。當模式層中出現(xiàn)錯誤的心音數(shù)據(jù)時,PNN通過計算心音特征數(shù)據(jù)與各個心音等級的匹配度。訓練過程中出現(xiàn)相似度不強時,會直接剔除錯誤數(shù)據(jù),而不會對其進行分類。實驗數(shù)據(jù)驗證結(jié)果如圖5~7所示。
圖3 正常心音自相關(guān)系數(shù)Fig.3 Normal heart sound autocorrelation coefficient
圖4 正常心音的短時功率譜密度圖Fig.4 Short-time power spectral density map of normal heart sounds
圖5 LMS-PNN的測試準確率Fig.5 Test accuracy rate of LMS-PNN
圖6 LMS-PNN和傳統(tǒng)PNN的預測結(jié)果Fig.6 Prediction results of LMS-PNN and traditional PNN
本文將所采集的心音信號數(shù)據(jù)轉(zhuǎn)換100×100的矩陣,在這個矩陣中,利用雙重循環(huán)語句,將不同行列之間心音信號數(shù)據(jù)進行模型編號,并采用LMS-PNN算法對模型數(shù)據(jù)測試訓練。由圖5可得,模型1,5所采用的數(shù)據(jù)測試準確率比較低,在多次模型的訓練結(jié)果下,LMS-PNN通過不斷自我學習與反饋,總體模型測試結(jié)果呈現(xiàn)升上趨勢,其測試正確率在模型6~9保持穩(wěn)定,準確率可達96.66%。
圖7 LMS-PNN的訓練時間Fig.7 Training time of LMS-PNN
圖6為30個測試樣本集的測試數(shù)據(jù),由實驗數(shù)據(jù)驗證可得,LMS-PNN對心音數(shù)據(jù)分類的準確性高于傳統(tǒng)PNN,準確率高出10%。
由圖7仿真結(jié)果可知,LMS-PNN神經(jīng)網(wǎng)絡算法在數(shù)據(jù)矩陣不同行列之間所組成的10個數(shù)據(jù)模型中不斷進行自我學習與訓練,其訓練時間由0.155 s逐漸穩(wěn)定至0.062 s,實驗結(jié)果證明,LMS-PNN神經(jīng)網(wǎng)絡算法在心音測試模型中效果表現(xiàn)良好,訓練時間呈現(xiàn)逐步縮短到穩(wěn)定的趨勢訓練時間短、不易產(chǎn)生局部最優(yōu),收斂速度比較快,而且其分類準確率也較高。
對于上述仿真結(jié)果,LMS-PNN神經(jīng)網(wǎng)絡算法的平滑因子N是LMS-PNN算法的關(guān)鍵。令平滑因子N分別取值為20和2,其測試集預測結(jié)果對比如圖8所示。圖8(a)是N=20時LMS-PNN算法得到的預測結(jié)果;圖8(b)是N=2時LMS-PNN算法得到的預測結(jié)果。由圖8可知,N=20時,LMS-PNN預測準確率為90%;N=2時,LMS-PNN預測準確率為93.33%,準確率高出了3.33%。不同的平滑因子得到的結(jié)果也有所不同,因此選取合適的平滑因子能提高預測準確率。由表1可知,當平滑因子N=10時,LMS-PNN算法的預測準確率最高,為最優(yōu)值。
圖8 LMS-PNN的預測結(jié)果(N=20,2)Fig.8 Prediction results of LMS-PNN(N=20 and N=2)
表1 平滑因子N的影響Tab.1 Influence of smooth factor N
測試心音通常會受到噪聲影響,LSM-PNN算法運用LSM方法進行去噪,采用雙門限法估計出無話幀即噪音幀IS的值,調(diào)整參數(shù)a,b的值,觀察數(shù)據(jù)及其波形,優(yōu)化去噪效果;然后使用PNN,采用貝葉斯決策理論對心音的信號進行區(qū)分與預測。對LSM-PNN算法,無論分類問題多么復雜,只要有足夠多的訓練數(shù)據(jù),均可保證獲得貝葉斯準則下的最優(yōu)解。