蘇瑜蓉,顧 濤
(1.華北科技學(xué)院 安全工程學(xué)院,北京 東燕郊 065201; 2.華北科技學(xué)院 計(jì)算機(jī)學(xué)院,北京 東燕郊 065201)
隨著變電站數(shù)據(jù)監(jiān)控逐漸遠(yuǎn)程化,監(jiān)測點(diǎn)大量監(jiān)測數(shù)據(jù)如何進(jìn)行壓縮傳輸已經(jīng)變得十分重要。電場數(shù)據(jù)是電能質(zhì)量監(jiān)控方面的重要數(shù)據(jù)之一,在線路發(fā)生故障時(shí),數(shù)據(jù)范圍會(huì)發(fā)生巨大波動(dòng),這一數(shù)據(jù)特征可以通過有損壓縮來實(shí)現(xiàn)。目前國內(nèi)外針對(duì)電力領(lǐng)域監(jiān)控?cái)?shù)據(jù)比較著名的壓縮方式是以色列的基于PQzip技術(shù)[1-2]的數(shù)據(jù)壓縮方式,該壓縮技術(shù)是由Elspec公司提出的一種基于快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)的有損壓縮算法,現(xiàn)主要用于該公司開發(fā)的電能質(zhì)量檢測裝置中,其壓縮比能夠達(dá)到1000:1。但該技術(shù)所使用的FFT變換主要針對(duì)如正弦變化的平穩(wěn)波形壓縮,而電場監(jiān)測數(shù)據(jù)中包含大量突變值,屬于非平穩(wěn)信號(hào),無法使用PQzip技術(shù)進(jìn)行壓縮。因此,需要采用新的壓縮方法壓縮電場數(shù)據(jù)。小波變換壓縮算法其獨(dú)特的時(shí)頻局部特性能夠針對(duì)電場數(shù)據(jù)的突變信號(hào),通過閾值處理,將原始信號(hào)中的主要信息進(jìn)行保留,忽略一部分細(xì)節(jié),進(jìn)而實(shí)現(xiàn)數(shù)據(jù)壓縮。離散余弦變換(Discrete Cosine Transform,DCT)中,二維DCT變換[3-4]能夠有效地將數(shù)據(jù)集中在矩陣的左上角區(qū)域,進(jìn)而提取重要信息,實(shí)現(xiàn)數(shù)據(jù)壓縮。本文通過將一維電場監(jiān)測數(shù)據(jù)轉(zhuǎn)換為128×128的二維矩陣,對(duì)矩陣進(jìn)行二維單尺度haar小波提升變換,生成4個(gè)64×64的子系數(shù)矩陣:低頻系數(shù)矩陣、高頻系數(shù)矩陣、垂直方向系數(shù)矩陣、對(duì)角方向系數(shù)矩陣。將得到的系數(shù)矩陣進(jìn)行二維DCT變換,根據(jù)壓縮比,確定合適的篩選矩陣,將篩選出的非零系數(shù)通過一維單尺度haar小波變換進(jìn)行壓縮,進(jìn)一步調(diào)整誤差系數(shù),實(shí)現(xiàn)電場數(shù)據(jù)的合理壓縮。使用該方法進(jìn)行數(shù)據(jù)壓縮,解決了單一DCT變換算法中出現(xiàn)的邊緣效應(yīng),將壓縮后數(shù)據(jù)質(zhì)量維持在技術(shù)指標(biāo)要求范圍內(nèi),減輕了電力系統(tǒng)數(shù)據(jù)傳輸和存儲(chǔ)壓力。
小波提升變換[5-10]也稱為二代小波變換,其相較于一代小波變換有計(jì)算速度快,操作步驟簡單,逆變換易于實(shí)現(xiàn)等特點(diǎn),該算法的基本思想是,將現(xiàn)有小波濾波器分解成多個(gè)構(gòu)造模塊,按照步驟完成對(duì)信號(hào)的頻率分解。步驟主要分為三個(gè)階段:分裂、預(yù)測、更新,具體實(shí)現(xiàn)流程如下:
(1) 分裂。將原始信號(hào)分裂成兩個(gè)互不相交的子集,通常會(huì)將信號(hào)分裂成偶子集和奇子集兩部分,即,
Split(sj)=(ej-1,oj-1)
(1)
其中,原始信號(hào)為sj={sj,k},ej-1={ej-1,k=sj,2k},oj-1={oj-1,k=sj,2k+1}.
(2) 預(yù)測。通過偶子集和奇子集之間的相關(guān)性進(jìn)行預(yù)測,一般是通過偶子集來預(yù)測奇子集,并通過奇偶子集之間的差值來反映兩者之間的相關(guān)程度,這一近似度被稱為小波系數(shù),對(duì)應(yīng)于原始信號(hào)中的高頻部分,相關(guān)程度越高,小波系數(shù)幅值越小。預(yù)測過程如下所示。
dj-1=oj-1-P(ej-1)
(2)
其中,P(ej-1)為預(yù)測值,dj-1為真實(shí)值與預(yù)測值之間的差值。預(yù)測算子P也可用預(yù)測函數(shù)Pk來代替,預(yù)測函數(shù)可以為偶子集中對(duì)應(yīng)的數(shù)據(jù)本身,即:
Pk(ej-1,k)=ej-1,k=sj,2k
(3)
也可以是偶子集數(shù)據(jù)中相鄰數(shù)據(jù)的平均值,
Pk(ej-1)=(ej-1,k+ej-1,k+1)/2=(sj,2k+sj,2k+1)/2
(4)
或是其他復(fù)雜函數(shù)。
(3) 更新。經(jīng)過第一步分裂后的子集可能與原始數(shù)據(jù)集有不同的整體特性,需要通過更新使現(xiàn)有集合與原始數(shù)據(jù)集保持整體特性的一致,更新過程如下:
sj-1=ej-1+U(dj-1)
(5)
其中,U為更新算子,sj-1為sj的低頻部分。與預(yù)測函數(shù)相同,更新算子也可以取不同的更新函數(shù):
Uk(dj-1)=dj-1,k/2
(6)
或是,
Uk(dj-1)=(dj-1,k-1+dj-1,k)/4+1/2
(7)
通過取不同的預(yù)測算子P和更新算子U可得到不同的小波變換。進(jìn)行haar小波變換時(shí),取預(yù)測函數(shù)為:
Pk(ej-1)=ej-1,k=sj,2k
(8)
更新函數(shù)為:
Uk(dj-1)=dj-1,k/2
(9)
得分解式如下:
Split(sj)=(ej-1,oj-1)
(10)
dj-1,k=oj-1,k-Pk(ej-1)=oj-1,k-ej-1,k=sj,2k1-sj,2k
(11)
sj-1,k=ej-1,k+Uk(dj-1)=sj,2k+dj-1,k/2=(sj,2k+1+sj,2k)/2
(12)
重構(gòu)式如下:
ej-1,k=sj-1,k-Uk(dj-1)=sj-1,k-dj-1,k/2
(13)
oj-1,k=dj-1,k+Pk(ej-1)=dj-1,k-ej-1,k
(14)
sj=Merge(ej-1,oj-1)
(15)
其中,Merge表示將子集ej-1與oj-1重構(gòu)為sj。
DCT變換[11]通常用于信號(hào)處理與圖像處理中,該變換與離散傅里葉變換相關(guān),是一種限定了輸入信號(hào)的離散傅里葉變換。在信號(hào)處理中,DCT變換能夠?qū)⒃夹盘?hào)中的重要信息轉(zhuǎn)換為一組主要集中于矩陣左上角的系數(shù)矩陣,進(jìn)而方便下一步操作。其中二維DCT正變換公式如公式(16)所示:
(16)
其中,x,y,u,v=0,1,…,N-1。
二維DCT逆變換公式如公式(17)所示:
(17)
其中,x,y,u,v=0,1,…,N-1。
在第一節(jié)中,經(jīng)過一次二維小波提升變換后得到4個(gè)64×64的系數(shù)矩陣,需要將4個(gè)系數(shù)矩陣分別進(jìn)行二維DCT變換,公式(16)(17)中的N可取64.
小波提升-DCT變換壓縮算法[12]具體步驟如下,步驟流程圖如圖1所示:
圖1 壓縮算法步驟流程圖
第一步,DTU接收傳感器采集到的一維電場數(shù)據(jù)后,將其轉(zhuǎn)化為128×128大小的矩陣A;
第二步,通過單尺度二維haar小波變換將128×128的原始數(shù)據(jù)轉(zhuǎn)換為4個(gè)64×64的系數(shù)矩陣,4個(gè)系數(shù)矩陣所構(gòu)成的128×128的矩陣記作矩陣B;
第三步,將4個(gè)系數(shù)矩陣分別做二維DCT變換,將系數(shù)有效集中至矩陣左上角,經(jīng)DCT變換后構(gòu)成的128×128矩陣記作矩陣C;
第四步,構(gòu)建篩選矩陣。由于經(jīng)過DCT變換后的矩陣,主要信息都集中在左上角。因此,在進(jìn)行系數(shù)篩選時(shí),矩陣行(或列)下標(biāo)較為靠后的元素在構(gòu)建篩選矩陣時(shí)被置零的優(yōu)先級(jí)要大于矩陣行(或列)下標(biāo)較為靠前的元素;
第五步,將篩選后的系數(shù)矩陣D中非零元素轉(zhuǎn)換為一維數(shù)組,進(jìn)行一維haar小波變換,將數(shù)據(jù)壓縮,得到壓縮數(shù)據(jù)DATA1;
第六步,將壓縮數(shù)據(jù)還原后的系數(shù)矩陣E與矩陣B做差值得到誤差系數(shù)矩陣F;
第七步,將誤差系數(shù)矩陣F執(zhí)行三至五步,得到壓縮數(shù)據(jù)DATA2;
第八步,將誤差系數(shù)矩陣F執(zhí)行第二步,第四步,第五步,得到壓縮數(shù)據(jù)DATA3;
第九步,通過壓縮數(shù)據(jù)調(diào)整誤差系數(shù)矩陣,重構(gòu)原始數(shù)據(jù),得到矩陣B′。矩陣B′計(jì)算方式如下:
B′=E+F
(18)
其中,
E=IDCT2(ILWT(DATA1))
(19)
F=α(IDCT2(ILWT(DATA2)))+β(ILWT2(ILWT(DATA3)))
(20)
其中,α,β分別為DCT系數(shù)調(diào)節(jié)因子,小波系數(shù)調(diào)節(jié)因子,當(dāng)確定壓縮比后,可計(jì)算得出壓縮后的數(shù)據(jù)個(gè)數(shù)S,按照矩陣C篩選4個(gè)系數(shù),矩陣F通過小波變換和DCT變換的矩陣分別篩選出(S-4)/2個(gè)系數(shù)的方式構(gòu)建篩選矩陣,獲得壓縮數(shù)據(jù);
第十步,通過游程編碼將壓縮數(shù)據(jù)進(jìn)一步壓縮,在使用游程編碼時(shí),規(guī)定當(dāng)壓縮數(shù)據(jù)小數(shù)點(diǎn)后兩位數(shù)據(jù)相同時(shí)即為相等數(shù)據(jù);
第十一步,以上壓縮步驟在DTU中實(shí)現(xiàn),將壓縮后的數(shù)據(jù)經(jīng)CAN總線傳輸?shù)胶笈_(tái)接收端,最終存入數(shù)據(jù)庫。
通過小波提升-DCT變換壓縮算法得到壓縮數(shù)據(jù)后,需要設(shè)定CAN總線傳輸協(xié)議,確保壓縮數(shù)據(jù)的正常傳輸。按照CAN總線通信協(xié)議每幀傳送8個(gè)字節(jié)的要求制定具體傳輸協(xié)議見表1。
表1 CAN總線傳輸協(xié)議
第一字節(jié):支路號(hào)。如1,2 ……
第二字節(jié):最高兩位為相序,01******為A相,10******為B相,11******為C相,低6位為狀態(tài)位,**000000為正常狀態(tài),**000001為接地狀態(tài),**000010為短路狀態(tài),**000100為電流變化狀態(tài),**001000為電場變化狀態(tài), **010000為弧光接地,**100000為斷線
第三字節(jié):矩陣號(hào)。如1,2 ……
第四字節(jié):幀號(hào)。根據(jù)壓縮比,壓縮數(shù)據(jù)共需傳輸1024字節(jié),因此共需要傳送256幀數(shù)據(jù),即幀號(hào)為1-256.
第四字節(jié)至第八字節(jié):電場壓縮數(shù)據(jù)。
實(shí)驗(yàn)通過設(shè)定壓縮比,確定壓縮數(shù)據(jù)大小,進(jìn)行參數(shù)α,β的調(diào)整。當(dāng)壓縮比確定為819.2:1,546.13:1,327.68:1時(shí),對(duì)應(yīng)DCT系數(shù)調(diào)節(jié)因子分別為α=3.10,1.93,1.73,小波系數(shù)調(diào)節(jié)因子分別為β=0.79,1.2,1.0,原始數(shù)據(jù)與解壓縮數(shù)據(jù)之間數(shù)據(jù)恢復(fù)百分比誤差范圍分別維持在8.6571~0,8.3657~0,8.5354~0之間,小于百分之五的誤差占比分別達(dá)到76.21%,82.35%,88.79%。最終確定當(dāng)壓縮比為16.603:1時(shí),原始數(shù)據(jù)與解壓縮數(shù)據(jù)之間數(shù)據(jù)恢復(fù)百分比誤差范圍維持在0~6.0374之間,其中,小于百分之五的誤差占比可達(dá)92.86%,能夠達(dá)到電場技術(shù)指標(biāo)誤差范圍不超過±10%的要求。壓縮前后數(shù)據(jù)局部放大對(duì)比圖如圖2所示。
圖2 壓縮前后數(shù)據(jù)局部放大對(duì)比圖
圖2 壓縮前后數(shù)據(jù)局部放大對(duì)比圖(續(xù))
根據(jù)文獻(xiàn)[13]中通過DFT正交基作為系數(shù)分解字典的壓縮采樣,實(shí)現(xiàn)壓縮比為168:1,文獻(xiàn)[14]中采用壓縮感知稀疏向量特征提取的方式進(jìn)行數(shù)據(jù)壓縮,壓縮比為34.13:1,文獻(xiàn)[13-14]中的壓縮結(jié)果與小波提升-DCT變換壓縮算法相比,后者能夠?qū)崿F(xiàn)更好的壓縮效果。
(1) 提出將小波提升-DCT變換壓縮算法應(yīng)用于10 kV電纜電場數(shù)據(jù)的壓縮,將一維電場數(shù)據(jù)轉(zhuǎn)換為二維矩陣,引用圖像壓縮方式對(duì)電場數(shù)據(jù)進(jìn)行壓縮處理。
(2) 將電場數(shù)據(jù)進(jìn)行二維小波提升變換和DCT變換,尋找合適壓縮比,調(diào)整誤差參數(shù),并對(duì)算法進(jìn)一步改進(jìn),使用游程編碼對(duì)數(shù)據(jù)進(jìn)行二次壓縮,確定最終壓縮方案,通過壓縮比制定CAN總線傳輸協(xié)議,提高了變電站監(jiān)測點(diǎn)在電場數(shù)據(jù)通信過程中的傳輸效率,減輕了數(shù)據(jù)庫存儲(chǔ)海量電場數(shù)據(jù)壓力。
(3) 通過實(shí)驗(yàn)結(jié)果能夠看出,小波提升-DCT變換壓縮算法針對(duì)非平穩(wěn)信號(hào)壓縮方面具有較好的適用性,接下來將繼續(xù)深化壓縮算法設(shè)計(jì),在提升壓縮質(zhì)量的同時(shí),增大壓縮比,提高變電站監(jiān)測數(shù)據(jù)的通信與存儲(chǔ)能力。