專利名稱:無線心電監(jiān)護(hù)儀的心電壓縮方法和解碼方法
技術(shù)領(lǐng)域:
本發(fā)明屬于生物醫(yī)學(xué)工程技術(shù)領(lǐng)域,具體涉及無線心電監(jiān)護(hù)儀的心電壓縮方法和解壓縮方法。
背景技術(shù):
近年來,隨著人們生活工作壓力的增大以及社會(huì)的老齡化發(fā)展,各類心臟疾病的發(fā)病率呈逐年上升趨勢。傳統(tǒng)的患者與醫(yī)生之間面對面的診斷模式已經(jīng)不能滿足人們對健康保健日益增長的巨大需求,醫(yī)療體系逐漸向以家庭為中心傾斜,人們也更加重視對疾病的預(yù)防。這些變化直接驅(qū)使心電監(jiān)護(hù)從非實(shí)時(shí)非在線監(jiān)護(hù)發(fā)展到基于移動(dòng)通信網(wǎng)絡(luò)的遠(yuǎn)程心電監(jiān)護(hù),穿戴式無線心電監(jiān)護(hù)儀由此應(yīng)運(yùn)而生。
穿戴式無線心電監(jiān)護(hù)儀作為遠(yuǎn)程醫(yī)療和移動(dòng)家庭保健系統(tǒng)的診斷監(jiān)護(hù)終端,不僅需要完成大量心電數(shù)據(jù)的記錄和存儲(chǔ),而且,為了實(shí)現(xiàn)對患者及時(shí)有效的監(jiān)護(hù),甚至是24小時(shí)全天候監(jiān)護(hù),更需要具備心電數(shù)據(jù)的實(shí)時(shí)傳輸能力。因此,為了達(dá)到上述目的,必須在監(jiān)護(hù)終端進(jìn)行心電數(shù)據(jù)的高效壓縮一方面通過提高數(shù)據(jù)壓縮比,增強(qiáng)心電監(jiān)護(hù)儀的數(shù)據(jù)存儲(chǔ)能力,并以此減少傳輸同等信息時(shí)所需要的數(shù)據(jù)量,提升心電數(shù)據(jù)的實(shí)時(shí)傳輸能力;另一方面,通過提高壓縮算法的執(zhí)行效率,大大縮短心電數(shù)據(jù)壓縮需要的耗時(shí),進(jìn)一步提升監(jiān)護(hù)終端的數(shù)據(jù)傳輸實(shí)時(shí)性。由此可見,實(shí)現(xiàn)適用于心電監(jiān)護(hù)終端的高效數(shù)據(jù)壓縮算法,是實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)心電監(jiān)護(hù)的關(guān)鍵技術(shù)。
目前心電數(shù)據(jù)壓縮算法主要分為兩大類,一類是時(shí)域壓縮算法,其中應(yīng)用最多的是折線擬合。該算法執(zhí)行效率高,壓縮比大,適合移植到系統(tǒng)資源緊張的監(jiān)護(hù)終端,但這種方法存在一個(gè)無法克服的問題,即解壓后有很大的信號(hào)失真。另一類是變換域壓縮算法,主要包括KL(Karhunen-Loeve)變換,離散余弦變換和傳統(tǒng)小波變換。其中KL變換和離散余弦變換具有很好的靜態(tài)壓縮性能,較早被引入心電壓縮中,但因?yàn)檫@兩種算法不能做局部分析與分層處理,無法實(shí)時(shí)地以逐步浮現(xiàn)方式傳送數(shù)據(jù),大大影響了數(shù)據(jù)傳輸效率。而另一方面,這兩種算法的復(fù)雜性程度高,要求占用較多的系統(tǒng)資源,因此很少用于監(jiān)護(hù)終端的心電數(shù)據(jù)壓縮。相對的,傳統(tǒng)小波變換則因其在時(shí)、頻域同時(shí)具有良好的局部化特性,可以采用子頻帶、層次編碼技術(shù)實(shí)現(xiàn)累進(jìn)傳輸編碼以解決傳輸實(shí)時(shí)性問題,由此產(chǎn)生了小波域嵌入式零樹編碼算法。該方法借助于小波變換的時(shí)頻分析優(yōu)勢已經(jīng)成功應(yīng)用于圖像壓縮JPEG2000中,而在心電信號(hào)壓縮方面,該算法的應(yīng)用也取得了一定的進(jìn)展,但到目前為止,該算法主要應(yīng)用于系統(tǒng)資源豐富的服務(wù)端心電存儲(chǔ)備份系統(tǒng),如果要應(yīng)用于監(jiān)護(hù)端的心電壓縮,該算法必須解決自身存在的兩大問題首先,小波域嵌入式零樹編碼算法存在壓縮結(jié)果有較大冗余的瓶頸問題從信息論角度看數(shù)據(jù)壓縮實(shí)質(zhì)是提取信號(hào)的有序性,去除冗余,也即是降低信息熵的過程。在信息論中,信息熵反映了信號(hào)的無序程度,信息熵越大,信號(hào)越無序。由于傳統(tǒng)小波域嵌入式零樹編碼采用固定頻帶分解方式往往會(huì)導(dǎo)致編碼流中高信息熵孤立零的產(chǎn)生,這必然會(huì)使得信息熵?zé)o法充分地降低、壓縮結(jié)果仍有較大冗余。其次,小波域嵌入式零樹編碼算法仍然存在較高的算法復(fù)雜性和資源占用率算法過程中采用浮點(diǎn)數(shù)計(jì)算,不僅占用大量資源,而且執(zhí)行效率低;算法過程中仍然存在很多冗余步驟,比如算法中采取先作各尺度變換,而后二抽取扔掉各尺度上的一半冗余數(shù)據(jù),大量浪費(fèi)了內(nèi)存空間,而且增加了運(yùn)算量。
發(fā)明內(nèi)容
本發(fā)明的主旨是提供一種適合于心電監(jiān)護(hù)終端進(jìn)行心電數(shù)據(jù)壓縮和解碼方法,以此提升遠(yuǎn)程心電監(jiān)護(hù)終端的數(shù)據(jù)存儲(chǔ)和實(shí)時(shí)傳輸能力。
為此,本發(fā)明采用如下的技術(shù)方案 一種無線心電監(jiān)護(hù)儀的心電壓縮方法,包括下列步驟 (1)對采集到的心電信號(hào)進(jìn)行預(yù)處理; (2)對預(yù)處理得到的心電信號(hào)進(jìn)行奇偶序列分裂,而后通過提升算法獲取一階細(xì)節(jié)信號(hào)節(jié)點(diǎn)和一階概貌信號(hào)節(jié)點(diǎn); (3)根據(jù)代價(jià)函數(shù)判斷一階細(xì)節(jié)和一階概貌父節(jié)點(diǎn)是否需要分解為子節(jié)點(diǎn),如果需要,則將其進(jìn)行奇偶序列分裂,而后通過提升算法獲取相應(yīng)的二階子節(jié)點(diǎn); (4)根據(jù)代價(jià)函數(shù)判斷二階子節(jié)點(diǎn)中是否有需要繼續(xù)分解為相應(yīng)的三階子節(jié)點(diǎn),采用提升算法將這些二階子節(jié)點(diǎn)進(jìn)行分解,以此類推,直到獲得最低信息熵的最優(yōu)小波包空間結(jié)構(gòu); (5)遍歷小波包所有系數(shù),求出系數(shù)絕對值的最大值,保留該數(shù)值二進(jìn)制位的最高位,將其余低位置零,而后將所得結(jié)果作為初始閾值;建立主表、輔表存儲(chǔ)空間,將上面獲得的心電信號(hào)小波包分解結(jié)果存入主表,開啟輔助掃描堆棧和編碼結(jié)果存儲(chǔ)空間;將初始閾值賦值給閾值(T); (6)對主表進(jìn)行掃描,把表上的每個(gè)節(jié)點(diǎn)都依據(jù)閾值(T)分為正重要系數(shù)、負(fù)重要系數(shù)、零樹根、孤立零,將掃描結(jié)果存入主表中; (7)將主表翻譯成二進(jìn)制碼流存進(jìn)編碼結(jié)果存儲(chǔ)空間中,將主表中標(biāo)記為正重要系數(shù)和負(fù)重要系數(shù)的節(jié)點(diǎn)移至輔助掃描堆棧; (8)對輔助掃描堆棧進(jìn)行輔助掃描,根據(jù)閾值(T)和節(jié)點(diǎn)大小關(guān)系來進(jìn)行“0”、“1”編碼,同時(shí)將數(shù)據(jù)流存入編碼結(jié)果存儲(chǔ)空間中; (9)更新閾值(T)為當(dāng)前閾值的1/2,返回步驟6,重復(fù)步驟(6)至(9)的主、輔掃描過程,直至閾值(T)為0; (10)建立無線傳輸數(shù)據(jù)包,在頭標(biāo)記里記錄最優(yōu)小波包樹結(jié)構(gòu)以及數(shù)據(jù)量大小和初始閾值信息,通過無線網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包。
本發(fā)明同時(shí)提供一種上述心電編碼的解碼方法,包括下來步驟 (1)接收經(jīng)過無線網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包; (2)讀取頭標(biāo)記,獲取最優(yōu)小波包樹結(jié)構(gòu),獲取數(shù)據(jù)量大小、初始閾值,將初始閾值賦值給閾值(T); (3)讀取主表數(shù)據(jù)流,對重構(gòu)數(shù)據(jù)位置進(jìn)行相應(yīng)標(biāo)記,重構(gòu)數(shù)據(jù),如果為正、負(fù)重要系數(shù),則初始重構(gòu)值為閾值(T)的正或負(fù)3/2倍,其余的位置均為零; (4)讀取輔表數(shù)據(jù)流,如果為“0”則重構(gòu)值絕對值在原系數(shù)絕對值的基礎(chǔ)上減去閾值(T)的1/4,否則在原來值的基礎(chǔ)上加上閾值(T)的1/4,逐步精確重構(gòu)值; (5)更新閾值(T)為當(dāng)前閾值的1/2,返回步驟(3)至(5)的掃描碼流過程,直到完成解碼。
發(fā)明人針對遠(yuǎn)程心電監(jiān)護(hù)終端系統(tǒng)中存在的數(shù)據(jù)存儲(chǔ)和心電實(shí)時(shí)傳輸?shù)膯栴},力圖從理論分析和實(shí)踐論證的角度找出一種高效的心電壓縮算法。首先通過分析傳統(tǒng)小波變換的特點(diǎn),找出它在心電監(jiān)護(hù)終端的數(shù)據(jù)壓縮應(yīng)用中存在的問題,而后分別從解決傳統(tǒng)小波壓縮方法的壓縮比瓶頸問題以及提升算法執(zhí)行效率、降低資源占用率方面著手,提出了基于最優(yōu)小波包空間進(jìn)行快速提升嵌入式零樹編碼算法實(shí)現(xiàn)心電數(shù)據(jù)的高效壓縮,同時(shí)實(shí)現(xiàn)了信源重構(gòu)質(zhì)量可伸縮的累進(jìn)傳輸編碼。經(jīng)過實(shí)驗(yàn)數(shù)據(jù)分析驗(yàn)證,本發(fā)明提供的基于快速提升小波包嵌入式零樹編碼方法,不僅充分利用了心電信號(hào)的頻域相關(guān)性,大大降低了心電信號(hào)的信息熵,而且通過引入蝶形算法原址操作和整數(shù)運(yùn)算的優(yōu)勢,有效的提高了算法執(zhí)行效率,實(shí)現(xiàn)了心電監(jiān)護(hù)終端的心電數(shù)據(jù)高效壓縮,從而能夠?qū)崿F(xiàn)客戶端心電監(jiān)護(hù)終端與服務(wù)器端的心電監(jiān)護(hù)專家系統(tǒng)實(shí)時(shí)準(zhǔn)確交互,使心臟病患者獲得全天候心電數(shù)據(jù)的有效監(jiān)控和記錄。
圖1小波分解示意圖,圖1(a)為小波分解樹結(jié)構(gòu),圖1(b)小波分解系數(shù)關(guān)系圖; 圖2小波包分解結(jié)構(gòu)示意圖; 圖3小波包變換中父子結(jié)點(diǎn)的代價(jià)曲線示意圖; 圖4Le_Gall 5/3小波提升結(jié)構(gòu)圖; 圖5三種算法的心電數(shù)據(jù)壓縮結(jié)果對比。
具體實(shí)施例方式 下面結(jié)合附圖、原理和實(shí)施例從幾個(gè)方面對本發(fā)明做進(jìn)一步詳述。
1.壓縮比瓶頸問題的突破-最優(yōu)小波包空間的心電數(shù)據(jù)零樹編碼 在多分辨率的理論框架下,S.Mallat設(shè)計(jì)出來基于正交濾波器組的小波分解和重構(gòu)算法,即所調(diào)的Mallat算法。Mallat算法下對心電信號(hào)s(n)的小波變換為 式中j為小波變換尺度;h(k)是低通濾波器,信號(hào)通過h(k)逐級(jí)平滑,反映出原始信號(hào)的概貌信息;而g(k)是高通濾波器,d(j)(n)是s(j-1)(n)和s(j)(n)之間的差異,反映了信號(hào)的細(xì)節(jié)部分。圖1(a)為小波分解示意圖,其中結(jié)點(diǎn)S代表原始信號(hào);結(jié)點(diǎn)Lj表示在尺度j上的概貌信息,即s(j)(n);結(jié)點(diǎn)Hj表示在尺度j上的細(xì)節(jié)信息,即d(j)(n)。
Shapiro發(fā)現(xiàn),在對信號(hào)做小波變換的過程中,跨頻帶的小波系數(shù)之間具有顯著的相關(guān)特性。如圖1(b)中所示,在Mallat算法下,采樣過程中得到的小波系數(shù)呈倒金字塔結(jié)構(gòu),且其總數(shù)不變,這些小波系數(shù)的相關(guān)性表現(xiàn)在兩個(gè)方面①對于每個(gè)細(xì)節(jié)信息系數(shù)Hj,k(j尺度上的第k個(gè)系數(shù))必可找到相鄰小尺度下與之對應(yīng)的兩個(gè)相關(guān)系數(shù)Hj-1,2k和Hj-1,2k+1。而概貌信息與同尺度的細(xì)節(jié)信息具有一一對應(yīng)的系數(shù)關(guān)系。②一般而言,如果小波系數(shù)Hj,k在給定編碼閾值下無意義,則其所對應(yīng)的相關(guān)系數(shù)Hj-1,2k和Hj-1,2k+1在該閾值下一般也無意義。
Shapiro利用小波變換的上述特性,實(shí)現(xiàn)信息熵的降低,提出了小波域嵌入式零樹編碼算法,特點(diǎn)②所對應(yīng)的小波系數(shù)Hj,k稱為零樹根,Hj,k與它的所有相關(guān)系數(shù)構(gòu)成了零樹,而零樹具有很低的信息熵,只需要非常少的比特流表示,這正是該方法實(shí)現(xiàn)壓縮的基本條件。但是由于一般的小波分解尚未實(shí)現(xiàn)充分的熵減,因此會(huì)存在冗余信息,使其小波系數(shù)可能出現(xiàn)一些特殊情況當(dāng)小波系數(shù)Hj,k在給定編碼閾值下無意義,而其所對應(yīng)的相關(guān)系數(shù)中卻出現(xiàn)有意義的情況,這種系數(shù)Hj,k被稱為孤立零。孤立零的存在,使得無法根據(jù)Hj,k直接判斷其相關(guān)系數(shù)的信息,因此不能僅僅編碼Hj,k還必須考查Hj,k所對應(yīng)的所有相關(guān)系數(shù),這必將增加所需編碼的系數(shù),同時(shí)也將增加運(yùn)算工作量,這些都不利于高效壓縮的實(shí)現(xiàn)。
為了克服小波域嵌入式零樹編碼壓縮算法的瓶頸,本發(fā)明首先通過數(shù)據(jù)測試和理論分析找出并驗(yàn)證了該算法無法突破瓶頸的關(guān)鍵因素,即在對心電數(shù)據(jù)降低信息熵的過程中,小波域嵌入式零樹編碼壓縮算法采取固定的頻帶分解方式,沒有充分考慮頻帶間的差異性,從而無法實(shí)現(xiàn)信息熵的進(jìn)一步降低。因此,本發(fā)明考慮采用新方法來取代傳統(tǒng)小波變換的固定頻帶分解方式,以減少傳統(tǒng)小波域嵌入式編碼中孤立零的出現(xiàn)以確保編碼壓縮后信號(hào)的熵減。而小波包變換正好能滿足這個(gè)需要,因?yàn)樗筛鶕?jù)心電信號(hào)的頻域自相關(guān)性,獲得相應(yīng)的最優(yōu)小波包頻帶分解結(jié)構(gòu),構(gòu)造對應(yīng)的最優(yōu)頻域結(jié)構(gòu)碼,達(dá)到信息熵的進(jìn)一步降低,這樣就可望解決信號(hào)壓縮的瓶頸。
為了獲得這種最優(yōu)頻域結(jié)構(gòu)碼,需將傳統(tǒng)小波變換(圖1(a))中的高頻細(xì)節(jié)也加以考慮,進(jìn)行適當(dāng)?shù)姆纸狻.?dāng)所有的結(jié)點(diǎn)都需要分解時(shí),可以得到如圖2所示的完整小波包分解結(jié)構(gòu)。
在實(shí)際應(yīng)用中,獲取最優(yōu)頻域結(jié)構(gòu)碼的過程是從頻域分解的根結(jié)點(diǎn)出發(fā),通過衡量每一層尺度上的結(jié)點(diǎn)是否值得進(jìn)行分解,將完整小波包結(jié)構(gòu)進(jìn)行逐層修剪以獲得最優(yōu)結(jié)構(gòu)。修剪過程中需借助適當(dāng)?shù)拇鷥r(jià)函數(shù)作為搜索最優(yōu)頻域結(jié)構(gòu)的依據(jù),即要從判斷壓縮性能優(yōu)劣的準(zhǔn)則出發(fā),充分協(xié)調(diào)失真率和壓縮比來構(gòu)建代價(jià)函數(shù)。
有了代價(jià)函數(shù)之后,就可以通過衡量分解代價(jià),獲取最優(yōu)的小波包空間結(jié)構(gòu)。如下給出了代價(jià)函數(shù)的推導(dǎo)過程。
定義D為數(shù)據(jù)失真率,R為經(jīng)量化后的數(shù)據(jù)量,則壓縮目的可以表達(dá)為在滿足失真要求前提下(D≤Db,Db為最大容許失真),達(dá)到最大程度的壓縮(minR)。綜合考慮失真率和數(shù)據(jù)量,可以得到相應(yīng)的拉格朗日代價(jià)函數(shù) J=D+λR(3) 式中J為壓縮代價(jià),λ為拉格朗日因子(λ≥0),表示將數(shù)據(jù)比特率轉(zhuǎn)換到失真率表述空間的質(zhì)量,定義λ=ΔD/ΔR,可以根據(jù)壓縮質(zhì)量要求來選取。由此,上述壓縮目的可轉(zhuǎn)換為在失真滿足要求的前提下,找到最小壓縮代價(jià)J所對應(yīng)的頻域分解結(jié)構(gòu)。如圖3所示,如果Dc1+λ2Rc1)+(Dc2+λ3Rc2)≤DP+λ1RP,則將父結(jié)點(diǎn)分解成為兩個(gè)子結(jié)點(diǎn)。
依據(jù)上面給出的最優(yōu)空間獲取準(zhǔn)則,對心電信號(hào)進(jìn)行小波包最優(yōu)空間分解,而后依照各頻帶空間之間對應(yīng)的相關(guān)性關(guān)系,進(jìn)行嵌入式零樹編碼,以此突破原有的壓縮比瓶頸,實(shí)現(xiàn)心電數(shù)據(jù)的高效壓縮。
2.算法執(zhí)行效率的突破-最優(yōu)小波包空間提升算法 通過將嵌入式零樹編碼算法引入到頻帶分解結(jié)構(gòu)靈活多變的小波包空間,本發(fā)明突破了小波空間零樹編碼算法的壓縮比瓶頸,大大減少了同等信息傳輸時(shí)所需的數(shù)據(jù)量。但是,相對小波域零樹編碼算法,影響小波包域的嵌入式零樹編碼執(zhí)行效率的核心算法沒有改變,而且編碼算法部分的復(fù)雜性增加了,這就使壓縮算法的執(zhí)行效率進(jìn)一步降低。因此,本發(fā)明在突破傳統(tǒng)方法的壓縮比瓶頸之后,為了研發(fā)出適合于心電監(jiān)護(hù)終端的高效數(shù)據(jù)壓縮方法,對壓縮算法的執(zhí)行過程進(jìn)一步分析,在通過不斷的理論分析和實(shí)踐論證過程中,最終找出了影響算法執(zhí)行效率的關(guān)鍵因素雖然在前面步驟中,通過將嵌入式零樹編碼算法引入到頻帶分解結(jié)構(gòu)靈活多變的小波包空間,突破了壓縮比瓶頸,但是核心算法仍然采用Mallet算法流程,即采用一種雙子帶變換方案來分步計(jì)算實(shí)現(xiàn),在每一步中,都把信號(hào)分解為高頻子帶和低頻子帶,然后對其進(jìn)行抽取采樣,對低頻子帶不斷進(jìn)行遞歸運(yùn)算,直到達(dá)到所需的分解級(jí)數(shù)。但如果應(yīng)用上述算法進(jìn)行監(jiān)護(hù)終端心電數(shù)據(jù)壓縮編碼,就會(huì)暴露出很多缺點(diǎn)和不足之處,主要包括如下幾個(gè)方面(1)每一級(jí)濾波后都將有一半的數(shù)據(jù)被丟棄,也就是說有一半的乘法計(jì)算是無效的;(2)因?yàn)楦↑c(diǎn)系數(shù)的存在,傳統(tǒng)小波幾乎不可能實(shí)現(xiàn)整數(shù)到整數(shù)的小波變換;(3)當(dāng)對心電數(shù)據(jù)進(jìn)行解壓縮時(shí),由于傳統(tǒng)小波的逆變換實(shí)現(xiàn)起來需要二插值后由重建濾波器獲得,使用起來麻煩,運(yùn)算量大;(4)在邊界的處理上會(huì)產(chǎn)生邊界效應(yīng),不同的延拓方式會(huì)有不同的結(jié)果,無法完全實(shí)現(xiàn)信號(hào)的無損重構(gòu);(5)每級(jí)變換用到多出低頻子帶一倍的數(shù)據(jù),數(shù)據(jù)的濾波操作前后相互關(guān)聯(lián),需要另外的存儲(chǔ)單元。
由此,針對算法中存在的上述缺點(diǎn),需要引入一種算法提升機(jī)制,提升壓縮編碼的執(zhí)行效率,即算法的提升思想。目前,在提升思想的運(yùn)用方面,快速傅立葉變換對傳統(tǒng)傅立葉變換的提升,提升小波變換對傳統(tǒng)小波變換的提升都在算法執(zhí)行效率的提高方面獲得了很大的成功,但是,提升思想在小波包空間的運(yùn)用至今未見報(bào)道,而為了保持本發(fā)明中已經(jīng)突破小波域零樹編碼壓縮比的優(yōu)勢,必須將提升思想引入到小波包空間,提出基于提升最優(yōu)小波包空間的嵌入式零樹編碼算法。
在進(jìn)行心電數(shù)據(jù)壓縮時(shí),為了獲取心電信號(hào)的無損編碼,本發(fā)明引入了目前JPEG2000推薦的無損編碼小波濾波器,Le_Gall 5/3小波,其中5代表低通濾波器長度,3代表高通濾波器長度,具體的小波系數(shù)如下表1所示。
表1Le_all 5/3小波濾波器系數(shù) 表1中的上述系數(shù)可以用矩陣形式表示,即 為了將提升思想應(yīng)用于小波包空間,首先需要將能夠上述FIR濾波器組計(jì)算分解成若干提升步驟,通過分解這些濾波器使得計(jì)算過程更加簡潔,以此將Mallet算法中先濾波后抽取的步驟替換為先抽取再濾波的新算法。因此,本發(fā)明根據(jù)提升思想(獲取各因子的主對角線為單位1)將P(z)進(jìn)行分解,得到如下由3部分因式(從左到右分別命名為奇偶分解因式、概貌因式、細(xì)節(jié)因式)組成的表達(dá)式 從第一個(gè)因式(奇偶分解因式)可以發(fā)現(xiàn),只要將心電信號(hào)分解成奇數(shù)序列和偶數(shù)序列,就可以省去后抽取步驟,直接獲得高頻細(xì)節(jié)和低頻概貌信號(hào),即可以采用合并過程替代分裂后再排除冗余數(shù)據(jù)的過程,降低算法的復(fù)雜性。因此,對于心電信號(hào)X(z),通過分解為奇序列Xe(z)和偶序列Xo(z),就可以采用提升方法分布實(shí)現(xiàn) 第一步,把信號(hào)分解成奇偶序列d(0,r)=xn(2r+1);s(0,r)=xn(2r); 第二步,實(shí)現(xiàn)細(xì)節(jié)因式的時(shí)域計(jì)算結(jié)果 d(j,r)=d(j,r)-[s(j,r)+s(j,r+1)+1]/2,j=1,即第一階尺度的細(xì)節(jié)信息。
第三步,實(shí)現(xiàn)概貌因式的時(shí)域計(jì)算結(jié)果 s(j,r)=s(j,r)-[d(j,r)+d(j,r-1)]/4,j=1,即第一階尺度的概貌信息。
上述步驟可以用蝶形變換結(jié)構(gòu)圖表示,如圖4所示。
從圖中我們可以看出原始數(shù)據(jù)分解成奇偶序列do0、so0后,經(jīng)過初次提升計(jì)算的結(jié)果為do1,它覆蓋存儲(chǔ)在do0的原址上,do1、so1(so1=so0)二次提升計(jì)算的結(jié)果為sl1,它覆蓋存儲(chǔ)在so0的原址上,兩者交替進(jìn)行,互不沖突,這就是所謂的原址操作。這種方法不用新開空間,原始數(shù)據(jù)逐步被小波系數(shù)所取代。上述算法因?yàn)槌霈F(xiàn)了因子1/2、1/4,計(jì)算結(jié)果很可能出現(xiàn)小數(shù),這在數(shù)據(jù)壓縮中就會(huì)導(dǎo)致截?cái)嘈?yīng),引入量化誤差,使得壓縮過程不可逆。為了解決這個(gè)問題,在已有小波的基礎(chǔ)上構(gòu)造了擁有“整數(shù)到整數(shù)變換性質(zhì)”的小波。即對每次乘法后的計(jì)算結(jié)果取整,由此,相應(yīng)的概貌信號(hào)和細(xì)節(jié)信號(hào)分別轉(zhuǎn)換為 概貌s(j,r)=s(j,r)-integral{[d(j,r)+d(j,r-1)]/4} 細(xì)節(jié)d(j,r)=d(j,r)-integral{[s(j,r)+s(j,r+1)+1]/2} 這種在提升過程中實(shí)現(xiàn)數(shù)“整數(shù)到整數(shù)變換”是完全可行的由于在提升過程中,總有一個(gè)分量保持不變,因此只要對此提升過程的最終結(jié)果取整即可保證每一步結(jié)果都是整數(shù),而且此過程完全可逆---一個(gè)整數(shù)集合通過整數(shù)提升小波變換得到的結(jié)果仍然是整數(shù)集合。反變換時(shí),只需要逐步從結(jié)果中減去integral{[d(j,r)+d(j,r-1)]/4}和integral{[s(j,r)+s(j,r+1)+1]/2}即可,整個(gè)過程不會(huì)出現(xiàn)小數(shù)。
當(dāng)需要進(jìn)行下一尺度的小波包變換時(shí),只需要將上一尺度的所有濾波輸出(包括概貌信號(hào)和細(xì)節(jié)信號(hào))再次進(jìn)行奇偶序列分裂,而后作為圖4中的輸入序列,即可獲得所需尺度的小波包變換結(jié)果。
3.算法與流程 在給出本發(fā)明的算法流程之前,首先對心電信號(hào)零樹編碼過程中的四類小波包系數(shù)給出定義。根據(jù)小波包系數(shù)與閾值T的關(guān)系,可以分為下面4類系數(shù) (1)POS,正重要系數(shù)(大于閾值T的正系數(shù)); (2)NEG,負(fù)重要系數(shù)(絕對值大于閾值T的負(fù)系數(shù)); (3)ZTR,零樹根(其后代均為次要系數(shù)的次要系數(shù)); (4)IZ,孤獨(dú)零(其后代中有重要系數(shù)的次要系數(shù))。
系數(shù)分類通過主掃描進(jìn)行。對一個(gè)系數(shù),將它和閾值相比較,按照上面的方法進(jìn)行分類,假如每一次掃描都不考慮前面已經(jīng)進(jìn)行的比較而單獨(dú)進(jìn)行,算法將執(zhí)行很多重復(fù)操作。為了減少運(yùn)算量,對每次掃描的結(jié)果都應(yīng)該進(jìn)行標(biāo)記如果是重要系數(shù)就按照符號(hào)標(biāo)記為POS或NEG,并將絕對值壓入堆棧供輔助掃描用,同時(shí)還要將相應(yīng)系數(shù)置零;如果是孤獨(dú)零則標(biāo)記IZ;如果是零樹則標(biāo)記為ZTR,其子孫都不再被掃描。
編碼的過程不但包括對系數(shù)進(jìn)行分類的主掃描,還要對重要系數(shù)逐次量化,針對入棧的每個(gè)重要系數(shù)進(jìn)行區(qū)間標(biāo)記,逐次量化的過程被稱為輔助掃描。所謂逐次量化是逐次使用閾值T(0),T(1),T(2)......T(n),來決定重要系數(shù)是屬于下半?yún)^(qū)[T,3T/2]還是上半?yún)^(qū)[3T/2,2T],如果在上半?yún)^(qū)就往輔表寫入“1”,否則就寫入“0”。其中,閾值序列的選取是按照下面的公式進(jìn)行 初始閾值是T(0)=2B,其中B=integral(log2(max|X|)),X為存放小波包系數(shù)的數(shù)組,max|X|為求數(shù)組中元素絕對值的最大值;integral為取整操作。其余由遞推公式T(i+1)=T(i)/2獲得。隨著逐次量化次數(shù)N的增加,編碼后輸出的比特?cái)?shù)也將隨之增加,小波包系數(shù)的重建值也越接近原始值,恢復(fù)心電信號(hào)的質(zhì)量也就越高。在解碼時(shí),可以根據(jù)需要隨時(shí)截?cái)啻a流,用盡可能少的比特?cái)?shù)來恢復(fù)心電信號(hào)。
下面給出本發(fā)明的算法流程,具體如下, (一)基于提升小波包嵌入式零樹編碼壓縮算法流程 (1)心電信號(hào)預(yù)處理濾除基線漂移和工頻干擾; (2)對預(yù)處理得到的心電信號(hào)進(jìn)行奇偶序列分裂,而后通過提升算法獲取一階細(xì)節(jié)信號(hào)節(jié)點(diǎn)和一階概貌信號(hào)節(jié)點(diǎn); (3)根據(jù)代價(jià)函數(shù)判斷一階細(xì)節(jié)和一階概貌父節(jié)點(diǎn)是否需要分解為子節(jié)點(diǎn),如果需要,則將其進(jìn)行奇偶序列分裂,而后通過提升算法獲取相應(yīng)的二階子節(jié)點(diǎn)。
(4)根據(jù)代價(jià)函數(shù)判斷二階子節(jié)點(diǎn)中是否有需要繼續(xù)分解為相應(yīng)的三階子節(jié)點(diǎn),采用提升算法將這些二階子節(jié)點(diǎn)進(jìn)行分解。以此類推,直到獲得最低信息熵的最優(yōu)小波包空間結(jié)構(gòu)。
(5)初始化閾值T,建立主表、輔表存儲(chǔ)空間,將上面獲得的心電信號(hào)小波包分解結(jié)果存入主表,開啟輔助掃描堆棧和編碼結(jié)果存儲(chǔ)空間。
(6)對主表進(jìn)行掃描,把表上的每個(gè)節(jié)點(diǎn)都依據(jù)閾值T分為正重要系數(shù)、負(fù)重要系數(shù)、零樹根、孤立零,將掃描結(jié)果存入主表中。
(7)將主表翻譯成二進(jìn)制碼流存進(jìn)編碼結(jié)果存儲(chǔ)文件中。將主表中標(biāo)記為正重要系數(shù)和負(fù)重要系數(shù)的節(jié)點(diǎn)移至輔助掃描堆棧。
(8)對輔助掃描堆棧進(jìn)行輔助掃描,根據(jù)閾值和節(jié)點(diǎn)大小關(guān)系來進(jìn)行“0”、“1”編碼,同時(shí)將數(shù)據(jù)流存入編碼結(jié)果存儲(chǔ)文件中。
(9)改變閾值,重復(fù)主、輔掃描(即返回步驟6),直至T=0。
(10)建立無線傳輸數(shù)據(jù)包,在頭標(biāo)記里記錄最優(yōu)小波包樹結(jié)構(gòu)以及數(shù)據(jù)量大小和初始閾值信息,通過無線網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包。
(二)基于提升小波包嵌入式零樹編碼解壓縮算法流程 (1)接收經(jīng)過無線網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包; (2)讀取頭標(biāo)記,獲取最優(yōu)小波包樹結(jié)構(gòu),獲取數(shù)據(jù)量大小、初始閾值等信息。
(3)讀取主表數(shù)據(jù)流,對重構(gòu)數(shù)據(jù)位置進(jìn)行相應(yīng)標(biāo)記,重構(gòu)數(shù)據(jù),如果為正、負(fù)重要系數(shù),則初始重構(gòu)值為正或負(fù)的3T/2,其余的位置均為零。
(4)讀取輔表數(shù)據(jù)流,如果為“0”則重構(gòu)值絕對值在原系數(shù)絕對值的基礎(chǔ)上減去T/4,否則在原來值的基礎(chǔ)上加上T/4,逐步精確重構(gòu)值。
(5)更新閾值,重復(fù)掃描碼流。直到完成解碼。
遠(yuǎn)程心電監(jiān)護(hù)終端包括DSP數(shù)據(jù)采集處理模塊、主控制器模塊和MC35無線發(fā)送模塊三大模塊。其中DSP模塊處于算法設(shè)計(jì)的核心,它一方面從采集模塊獲取數(shù)據(jù),另一方面又給上位機(jī)提供數(shù)據(jù)壓縮包。本發(fā)明將算法進(jìn)行DSP硬件平臺(tái)下的移植,而后利用CCS輔助開發(fā)軟件提供的函數(shù)來估計(jì)算法的時(shí)間和空間開銷。
實(shí)驗(yàn)數(shù)據(jù)取自MIT心率失常數(shù)據(jù)庫,由PC機(jī)通過JTAG口下載到系統(tǒng)中,共有十組數(shù)據(jù),每次處理數(shù)據(jù)段為12000字節(jié)。DSP外頻為20MHz,啟用內(nèi)部PLL=5,因此指令周期為10ns。利用TI提供的開發(fā)工具CCS,使用BIOS系統(tǒng)內(nèi)部的監(jiān)控模塊來探測程序,獲取運(yùn)行時(shí)間。因?yàn)锽IOS系統(tǒng)采用空閑周期對程序運(yùn)行進(jìn)行監(jiān)控,因此不會(huì)影響程序的正常運(yùn)行。
為了給出本發(fā)明的壓縮效果,我們對每一組數(shù)據(jù)都采用三種算法進(jìn)行計(jì)算傳統(tǒng)小波嵌入式零樹編碼算法,傳統(tǒng)小波包嵌入式零樹編碼算法以及本發(fā)明的提升小波包嵌入式零樹編碼算法,計(jì)算結(jié)果如圖5所示。
從圖5可以看出,通過將零樹編碼算法引入到傳統(tǒng)小波包空間,可以獲得更好的壓縮效果(傳統(tǒng)小波包零樹編碼獲得的平均壓縮比為13.9,相對于傳統(tǒng)小波零樹編碼的9.8,有了很大的提高),但是采用傳統(tǒng)小波包零樹編碼方法,所需要的壓縮時(shí)間卻增加了(平均壓縮時(shí)間為8.7秒,而采用小波零樹編碼算法只需要6.1秒)。
通過采用本發(fā)明提供的基于提升小波包空間的嵌入式零樹編碼算法,心電數(shù)據(jù)的平均壓縮比達(dá)到了16.3,而相應(yīng)所需要的平均壓縮時(shí)間減少到5.4秒。由此可見,本發(fā)明算法能夠?qū)崿F(xiàn)心電數(shù)據(jù)的實(shí)時(shí)高效壓縮。
權(quán)利要求
1.一種無線心電監(jiān)護(hù)儀的心電壓縮方法,包括下列步驟
(1)對采集到的心電信號(hào)進(jìn)行預(yù)處理;
(2)對預(yù)處理得到的心電信號(hào)進(jìn)行奇偶序列分裂,而后通過提升算法獲取一階細(xì)節(jié)信號(hào)節(jié)點(diǎn)和一階概貌信號(hào)節(jié)點(diǎn);
(3)根據(jù)代價(jià)函數(shù)判斷一階細(xì)節(jié)和一階概貌父節(jié)點(diǎn)是否需要分解為子節(jié)點(diǎn),如果需要,則將其進(jìn)行奇偶序列分裂,而后通過提升算法獲取相應(yīng)的二階子節(jié)點(diǎn);
(4)根據(jù)代價(jià)函數(shù)判斷二階子節(jié)點(diǎn)中是否有需要繼續(xù)分解為相應(yīng)的三階子節(jié)點(diǎn),采用提升算法將這些二階子節(jié)點(diǎn)進(jìn)行分解,以此類推,直到獲得最低信息熵的最優(yōu)小波包空間結(jié)構(gòu);
(5)遍歷小波包所有系數(shù),求出系數(shù)絕對值的最大值,保留該數(shù)值二進(jìn)制位的最高位,將其余低位置零,而后將所得結(jié)果作為初始閾值;建立主表、輔表存儲(chǔ)空間,將上面獲得的心電信號(hào)小波包分解結(jié)果存入主表,開啟輔助掃描堆棧和編碼結(jié)果存儲(chǔ)空間;將初始閾值賦值給閾值(T);
(6)對主表進(jìn)行掃描,把表上的每個(gè)節(jié)點(diǎn)都依據(jù)閾值(T)分為正重要系數(shù)、負(fù)重要系數(shù)、零樹根、孤立零,將掃描結(jié)果存入主表中;
(7)將主表翻譯成二進(jìn)制碼流存進(jìn)編碼結(jié)果存儲(chǔ)空間中,將主表中標(biāo)記為正重要系數(shù)和負(fù)重要系數(shù)的節(jié)點(diǎn)移至輔助掃描堆棧;
(8)對輔助掃描堆棧進(jìn)行輔助掃描,根據(jù)閾值(T)和節(jié)點(diǎn)大小關(guān)系來進(jìn)行“0”、“1”編碼,同時(shí)將數(shù)據(jù)流存入編碼結(jié)果存儲(chǔ)空間中;
(9)更新閾值(T)為當(dāng)前閾值的1/2,返回步驟6,重復(fù)步驟(6)至(9)的主、輔掃描過程,直至閾值(T)為0;
(10)建立無線傳輸數(shù)據(jù)包,在頭標(biāo)記里記錄最優(yōu)小波包樹結(jié)構(gòu)以及數(shù)據(jù)量大小和初始閾值信息,通過無線網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包。
2.一種無線心電監(jiān)護(hù)儀的解碼方法,用于解壓縮采用權(quán)利要求1所述的壓縮方法得到的編碼,其特征在于包括下列步驟
(1)接收經(jīng)過無線網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包;
(2)讀取頭標(biāo)記,獲取最優(yōu)小波包樹結(jié)構(gòu),獲取數(shù)據(jù)量大小、初始閾值,將初始閾值賦值給閾值(T);
(3)讀取主表數(shù)據(jù)流,對重構(gòu)數(shù)據(jù)位置進(jìn)行相應(yīng)標(biāo)記,重構(gòu)數(shù)據(jù),如果為正、負(fù)重要系數(shù),則初始重構(gòu)值為閾值(T)的正或負(fù)3/2倍,其余的位置均為零;
(4)讀取輔表數(shù)據(jù)流,如果為“0”則重構(gòu)值絕對值在原系數(shù)絕對值的基礎(chǔ)上減去閾值(T)的1/4,否則在原來值的基礎(chǔ)上加上閾值(T)的1/4,逐步精確重構(gòu)值;
(5)更新閾值(T)為當(dāng)前閾值的1/2,返回步驟(3)至(5)的掃描碼流過程,直到完成解碼。
全文摘要
本發(fā)明屬于生物醫(yī)學(xué)工程及計(jì)算機(jī)領(lǐng)域,涉及一種基于提升小波包最優(yōu)空間進(jìn)行嵌入式零樹編碼實(shí)現(xiàn)心電數(shù)據(jù)高效壓縮方法,對預(yù)處理得到的心電信號(hào)進(jìn)行奇偶序列分解,通過提升算法獲取一階概貌和一階細(xì)節(jié)節(jié)點(diǎn);根據(jù)代價(jià)函數(shù)分析一階父節(jié)點(diǎn)是否需要分解為子結(jié)點(diǎn),將需要分裂的一階父結(jié)點(diǎn)通過提升算法分解為二階子結(jié)點(diǎn);以此類推,直到獲取最低信息熵的提升小波包空間結(jié)構(gòu);最后依據(jù)上述獲取的最優(yōu)提升小波包基下的低冗余映射關(guān)系,進(jìn)行嵌入式零樹編碼算法實(shí)現(xiàn)心電數(shù)據(jù)的高效壓縮。本發(fā)明針對遠(yuǎn)程心電監(jiān)護(hù)終端的系統(tǒng)特性,實(shí)現(xiàn)了具有可移植入監(jiān)護(hù)終端的心電數(shù)據(jù)高效壓縮算法,從而解決了遠(yuǎn)程心電監(jiān)護(hù)中數(shù)據(jù)存儲(chǔ)和實(shí)時(shí)傳輸問題。
文檔編號(hào)G06F19/00GK101268936SQ20081005233
公開日2008年9月24日 申請日期2008年2月27日 優(yōu)先權(quán)日2008年2月27日
發(fā)明者張力新, 周仲興, 曹玉珍, 輝 余, 呂揚(yáng)生 申請人:天津大學(xué)