周俊華,雷孟飛,梁曉東
(湖南聯(lián)智科技股份有限公司,湖南 長沙 410000)
在物聯(lián)網(wǎng)傳感技術(shù)領(lǐng)域,經(jīng)常需要用到各種各樣的傳感器對物理世界進(jìn)行感知,傳感器的一般原理是將現(xiàn)實(shí)世界的物理量通過各種手段變?yōu)殡妼W(xué)量,通過標(biāo)定物理量和電學(xué)量之間的對應(yīng)關(guān)系后,則可以通過測量電學(xué)量的值反推出被測物理量。
現(xiàn)實(shí)世界中的很多物理量在一定的條件限制下,具有限定的變化趨勢,如隨著時(shí)間的變化,松軟地面的沉降呈現(xiàn)出遞增趨勢,混合液體中易揮發(fā)組分的含量會(huì)呈現(xiàn)遞減趨勢。對于這些具有明確呈遞增或遞減變化趨勢的物理量,其真實(shí)值只有可能在變化趨勢內(nèi)單向變化,而因傳感器的原理及其精度等因素的制約,會(huì)出現(xiàn)部分測量的原始數(shù)據(jù)不符合已知的變化趨勢的問題,這種明顯的錯(cuò)誤在數(shù)據(jù)展示的時(shí)候是不能出現(xiàn)的。
常用的處理方法為通過多個(gè)同類型的傳感器一起測量,然后采用數(shù)據(jù)融合的算法得到融合結(jié)果[1],但是目前針對不同信息的融合算法仍然缺乏合適的評價(jià)體系[2];另外基于成本考慮,單傳感器的系統(tǒng)目前仍然在大量采用[3];廣大學(xué)者對單傳感器的數(shù)據(jù)處理方法也進(jìn)行了很多研究,一般的處理技術(shù)可分為基于統(tǒng)計(jì)、基于最近鄰、基于聚類等方法[4];另外也可基于傳感器的系統(tǒng)誤差原理,通過濾波的方式進(jìn)行處理[5],比如曾金芳提出了基于最大熵方法的數(shù)據(jù)處理[3],宋強(qiáng)提出了極大似然法的數(shù)據(jù)處理等[6]。
筆者認(rèn)為對于該類原始數(shù)據(jù),其處理具有一定的特殊性。由于事物的“真值”是不可得的,只能通過不斷地提高測量精度逼近,所以對于傳感器所測量的每一個(gè)原始數(shù)據(jù),都不能隨意地篡改或者剔除,更不能簡單地采用擬合或者其他的算法對整個(gè)原始數(shù)據(jù)做替換處理。本文基于可信傳感器測量得到的每一個(gè)數(shù)據(jù),以及使曲線符合限定的變化趨勢的原則提出一種數(shù)據(jù)處理方法,該方法能夠通過剔除最少的數(shù)據(jù)個(gè)數(shù)來滿足上述需求。
在原始數(shù)據(jù)中選取n(n≥3)個(gè)連續(xù)的原始數(shù)據(jù)作為一個(gè)處理窗口進(jìn)行數(shù)據(jù)處理,窗口隨時(shí)間依次往后推移,最終實(shí)現(xiàn)對所有數(shù)據(jù)的處理。
假設(shè)處理窗口內(nèi)原始數(shù)據(jù)滿足函數(shù)關(guān)系式Y(jié)=F(xi),其中i=1, 2,...,n,n為處理窗口內(nèi)原始數(shù)據(jù)的總數(shù)量。找出處理窗口內(nèi)不符合已知限定變化趨勢的個(gè)別原始數(shù)據(jù)記為問題數(shù)據(jù)點(diǎn),且問題數(shù)據(jù)對應(yīng)的序號(hào)為jk,其中k=1, 2,...,m,m為問題數(shù)據(jù)的總數(shù)量;如果有連續(xù)p個(gè)數(shù)據(jù)不符合變化趨勢的則只記錄為一個(gè)問題數(shù)據(jù)點(diǎn),同時(shí)引入?yún)?shù)tk,tk=p-1。
對于序號(hào)為jk的問題數(shù)據(jù)點(diǎn)分別判斷其前后相鄰的原始數(shù)據(jù)是否符合處理窗口內(nèi)原始數(shù)據(jù)的變化趨勢,若在序號(hào)為jk的問題數(shù)據(jù)之前相鄰的原始數(shù)據(jù)有不符合的,記為事件Jk1并統(tǒng)計(jì)事件包含的問題數(shù)據(jù)個(gè)數(shù),若在序號(hào)為jk的問題數(shù)據(jù)之后相鄰的原始數(shù)據(jù)有不符合的,記為事件并統(tǒng)計(jì)事件包含的問題數(shù)據(jù)個(gè)數(shù)。
變化趨勢受限定則說明數(shù)據(jù)滿足呈遞增變化趨勢或遞減變化趨勢,遞增量(即后一個(gè)大數(shù)減去前一個(gè)小數(shù)的值)或遞減量(即前一個(gè)大數(shù)減去后一個(gè)小數(shù)的值)大于等于0。
(1)若處理窗口內(nèi)的原始數(shù)據(jù)的變化趨勢為遞增變化趨勢,則:
如果F(xj)≥F(xj-2),則處理窗口內(nèi)序號(hào)jk之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢,事件Jk1包含的問題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量加上tk。
如果F(xj)<F(xj-2),取jk=jk-1,若jk-1>jk-2,則返回步驟①;若jk-1≤jk-2,則結(jié)束,刪除小于等于jk且大于jk-1之間的所有數(shù)據(jù)。
如果F(xj+1)≥F(xj-1),則處理窗口內(nèi)序號(hào)jk之后且序號(hào)jk+1之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢,事件包含的問題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量。
如果F(xj+1)<F(xj-1),取jk=jk+1,若jk+1<jk+1,則返回步驟①;若jk+1≥jk+1,則結(jié)束,刪除大于等于jk且小于jk+1之間的所有數(shù)據(jù)。
(2)若處理窗口內(nèi)的原始數(shù)據(jù)的變化趨勢為遞減變化趨勢,則:
①對于Jk1事件,具體是:剔除序號(hào)為jk-1的問題數(shù)據(jù);判斷序號(hào)為jk-2的原始數(shù)據(jù)Y=F(xj-2)與序號(hào)為jk原始數(shù)據(jù)Y=F(xj)的關(guān)系。
如果F(xj)≤F(xj-2),則處理窗口內(nèi)序號(hào)jk之前的原始數(shù)據(jù)已經(jīng)符合遞減變化趨勢,事件包含的問題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量加上tk;
如果F(xj)>F(xj-2),取jk=jk-1,若jk-1>jk-1,則返回步驟①;若jk-1≤jk-1,則結(jié)束,刪除小于等于jk且大于jk-1之間的所有數(shù)據(jù)。
如果F(xj+1)≤F(xj-1),則處理窗口內(nèi)序號(hào)jk之后且序號(hào)jk+1之前的原始數(shù)據(jù)已經(jīng)符合遞減變化趨勢,事件包含的問題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量;
如果F(xj+1)>F(xj-1),取jk=jk+1,若jk+1<jk+1,則返回步驟①;若jk+1≥jk+1,則結(jié)束,刪除大于等于jk且小于jk+1之間的所有數(shù)據(jù)。
若上述不存在多組A值相等的情況,則所得數(shù)據(jù)為最終保留數(shù)據(jù);若上述存在至少兩組A值相等的情況,則分別記為Ap,p為1, 2,...,q,q為A值相等的總組數(shù)。對多組A值相等的數(shù)據(jù)采用線性方程最小二乘法進(jìn)行數(shù)據(jù)擬合,結(jié)合偏差平方和來進(jìn)行輔助判斷,如下:
對原始數(shù)據(jù)函數(shù)Y=F(xi)進(jìn)行擬合,得到擬合函數(shù)Yi=f(xi)=a'xi+b',其中i=1, 2,...,n,求出a'和b'的值。
比較σ2p值之間的大小,選取數(shù)值最小的偏差平方和作為最優(yōu)解,所述最優(yōu)解對應(yīng)的數(shù)據(jù)剔除方案為最優(yōu)方案,采用最優(yōu)方案剔除數(shù)據(jù)后得到最終保留數(shù)據(jù)為最佳處理結(jié)果。
采用激光測距儀測量一處具有沉降趨勢的淤泥堆積場的表面高度變化情況,由于淤泥具有沉降趨勢,所以測量數(shù)據(jù)應(yīng)該呈現(xiàn)限定的遞增變化趨勢。原始數(shù)據(jù)見表1所列。
表1 原始數(shù)據(jù)表
在原始數(shù)據(jù)中選取n=24(n≥3)個(gè)連續(xù)的原始數(shù)據(jù)作為一個(gè)處理窗口進(jìn)行處理,窗口內(nèi)不符合原始數(shù)據(jù)變化趨勢的數(shù)據(jù)點(diǎn)為j1=7,j2=15和j3=20,且t1=0,t2=0,t3=1。
(1)對于J11事件,剔除序號(hào)為j1-1=7-1=6的問題數(shù)據(jù)之后,判斷序號(hào)為j1-2=7-2=5的原始數(shù)據(jù)Y=F(xj-2)=F(x5)與序號(hào)為j1=7的原始數(shù)據(jù)Y=F(xj)=F(x7)的關(guān)系。
因F(x7)≥F(x5),所以處理窗口內(nèi)序號(hào)j1=7之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢,事件包含的問題數(shù)據(jù)個(gè)數(shù)為1。
(2)對于J12事件,剔除序號(hào)為j1=7的問題數(shù)據(jù)之后,判斷序號(hào)為j1+1=7+1=8的原始數(shù)據(jù)Y=F(xj+1)=F(x8)與序號(hào)為j1-1=7-1=6的原始數(shù)據(jù)Y=F(xj-1)=F(x6)的關(guān)系。
因F(x8)<F(x6),所以繼續(xù)剔除序號(hào)為j1+1=7+1=8的問題數(shù)據(jù),判斷序號(hào)為j1+2=7+2=9的原始數(shù)據(jù)Y=F(xj+2)=F(x9)與序號(hào)為j1-1=7-1=6的原始數(shù)據(jù)Y=F(xj-1)=F(x6)的關(guān)系。
因F(x9)≥F(x6),則處理窗口內(nèi)序號(hào)j1=7之后且序號(hào)j2=15之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢,事件J12包含的問題數(shù)據(jù)個(gè)數(shù)為2。
依此類推,分別判斷序號(hào)為j2和j3的問題數(shù)據(jù)的情況,求得 :J11=1,J12=2,J21=1,J22=1,J31=3,J32=2。
將上述的事件J11,J12,J21,J22,J31和J32包含的問題數(shù)據(jù)個(gè)數(shù)按照表達(dá)式A=min(J11,J12)+min(J21,J22)+min(J31,J32)=min(J11,J21,J32)=min(J11,J22,J32)=1+1+2=4計(jì)算出最少問題數(shù)據(jù)個(gè)數(shù)A,得到相應(yīng)的剔除問題數(shù)據(jù)最少的方案。由于有兩種方案得到的A值相等,所以繼續(xù)進(jìn)行后續(xù)的處理判斷。
對處理窗口內(nèi)的原始數(shù)據(jù)采用線性方程最小二乘法進(jìn)行數(shù)據(jù)擬合,得到擬合函數(shù)Yi=f(xi)=a'xi+b',其中i=1, 2,..., 24;求出a'=0.133 7和b'=5.378 3。
上述兩組A值相等的情況分別記為。
比較σ12和σ22值的大小,選取數(shù)值最小的偏差平方和σ22作為最優(yōu)解,所述最優(yōu)解對應(yīng)的數(shù)據(jù)剔除方案為最優(yōu)方案,采用最優(yōu)方案剔除數(shù)據(jù)后得到最終保留數(shù)據(jù)為最佳處理結(jié)果,如圖1所示。
基于剔除最小數(shù)據(jù)量的原則進(jìn)行受特定變化趨勢限制的單傳感器的數(shù)據(jù)處理,通過采用平滑窗口的方法依次處理所有數(shù)據(jù),采用直觀選取不符合變化趨勢的數(shù)據(jù)并通過窮舉法結(jié)合排列組合選出剔除數(shù)據(jù)量最小的方案,對于存在多種情況得到剔除同樣數(shù)據(jù)量的方法,則繼續(xù)利用線性方程最小二乘法擬合并分別求取偏差平方和的方法,比較其離散程度,選取較小的值對應(yīng)的方案作為最佳處理方法。結(jié)果表明,使用該方法能夠通過剔除較少的誤差數(shù)據(jù)使受特定變化趨勢限制的傳感器數(shù)據(jù)符合變化趨勢,并且曲線整體變化平穩(wěn),可信度較高。本文方法能有效地解決現(xiàn)有技術(shù)中存在的因傳感器測量得到的部分?jǐn)?shù)據(jù)不符合已知變化趨勢的問題。