本發(fā)明涉及數(shù)據(jù)處理分析領(lǐng)域,具體涉及一種數(shù)據(jù)處理方法。
背景技術(shù):
當(dāng)前社會發(fā)展環(huán)境下,在線監(jiān)測系統(tǒng)的使用越來越廣泛,對于檢測精度的要求也是越來越高,而國內(nèi)有相當(dāng)一部分產(chǎn)品僅僅是滿足國標(biāo)的最低要求,而對特定場合提出的特殊要求則很難達標(biāo)。這其中當(dāng)然有系統(tǒng)硬件本身性能指標(biāo)的原因,但好的數(shù)據(jù)處理方法更能有效地提高系統(tǒng)的整體性能。
現(xiàn)行主流的對于樣本數(shù)據(jù)的處理方式有低通濾波、小波分析、傅立葉變換等,相關(guān)產(chǎn)品中一般采用的就是其中一種或者幾種方法交叉使用,雖然能夠使數(shù)據(jù)源變得穩(wěn)定下來,但對于長期穩(wěn)定效果并不好。
基本的低通濾波方法就是取平均值,這種方法雖然在一定程度是取到相對平穩(wěn)的信號,但對于數(shù)據(jù)走勢基本上沒有任何的修正,反而使得數(shù)據(jù)滯后了;小波分析方法效果要明顯好上許多,能夠有效地剔除雜波的影響,同樣地也會將一部分的有效信號去除,雖然波形看上去承規(guī)律性,但是并不能完全真實的反應(yīng)實際情況;而對于傅里葉變換來說,其使用場合的局限性就限制了其廣泛使用,特別是有棱角信號的場合。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種數(shù)據(jù)處理方法,本發(fā)明直接從樣本空間入手,分部采用不同的處理方法,按類分析處理結(jié)果的方式,以達到同步跟蹤數(shù)據(jù)變化趨勢又能得到平穩(wěn)信號的目的。
背景技術(shù)提到的方法大多是對一個樣本,或者幾個樣本進行處理分析,而本發(fā)明則是首先將獲取到的樣本存儲形成樣本空間,然后對樣本空間進行分部處理,即將樣本空間分成n個子空間,對每個子空間分別進行數(shù)據(jù)分析、處理、計算,這樣的處理方式可以在一個計算周期內(nèi)分析、處理更多的數(shù)據(jù),再加上對計算得到的n個中間結(jié)果的分類處理,對于在線監(jiān)測系統(tǒng)來說輸出結(jié)果更加準(zhǔn)確穩(wěn)定,這就是本發(fā)明最主要的目的。
本發(fā)明的目的是這樣實現(xiàn)的:本發(fā)明公開了一種數(shù)據(jù)處理方法,包括如下步驟:
1)將獲取到的樣本數(shù)據(jù)存儲,形成樣本空間A;
2)將樣本空間A分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù));
3)對各個子樣本空間分別進行數(shù)據(jù)分析、處理、計算,得到n個中間計算結(jié)果r(i)(1≤i≤n,i為整數(shù));
4)對n個中間計算結(jié)果r(i)(1≤i≤n,i為整數(shù))進行進一步的判斷分析,計算得到最終輸出結(jié)果R,一個計算周期結(jié)束;
5)一個計算周期結(jié)束后,獲取新的樣本數(shù)據(jù)更新樣本空間,重復(fù)步驟2)、3)、4)。
本發(fā)明還公開了另外一種數(shù)據(jù)處理方法,包括如下步驟:
1)將獲取到的樣本數(shù)據(jù)存儲,形成樣本空間A;
2)將樣本空間分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù));
3)對第一個子樣本空間s(1)進行數(shù)據(jù)分析、處理、計算,得到第一個中間計算結(jié)果r(1);
對第一個中間計算結(jié)果r(1)進行判定,若第一個中間計算結(jié)果r(1)滿足條件C1,則樣本空間A的最終計算結(jié)果R=r(1),一個計算周期結(jié)束;
若第一個中間計算結(jié)果r(1)不滿足條件C1,則對第二個子樣本空間s(2)進行數(shù)據(jù)分析、處理、計算,得到第二個中間計算結(jié)果r(2);
對第一個中間計算結(jié)果r(1)、第二個中間計算結(jié)果r(2)進行進一步的判斷分析,計算得到結(jié)果f(r(1),r(2)),對結(jié)果f(r(1),r(2))進行判定,若結(jié)果f(r(1),r(2))滿足條件C2,則樣本空間A的最終計算結(jié)果R=f(r(1),r(2)),一個計算周期結(jié)束;
若結(jié)果f(r(1),r(2))不滿足條件C2,則需要對第三個子樣本空間s(3)進行數(shù)據(jù)分析、處理、計算,得到第三個中間計算結(jié)果r(3);
如此下去,直至需要對第n個子樣本空間s(n)進行數(shù)據(jù)分析、處理、計算,得到第n個中間計算結(jié)果r(n);
對第一個中間計算結(jié)果r(1)、第二個中間計算結(jié)果r(2)…第n個中間計算結(jié)果r(n)進行進一步的判斷分析,計算得到結(jié)果f(r(1),…,r(n)),則樣本空間A的最終計算結(jié)果R=f(r(1),…,r(10)),一個計算周期結(jié)束;
4)一個計算周期結(jié)束后,獲取新的樣本數(shù)據(jù)更新樣本空間,重復(fù)步驟2)、3)。
步驟1)中采用鏈表的方式存儲樣本數(shù)據(jù),形成樣本空間A。
采用滑動更新的方式更新樣本空間,每次滑動更新替換之前最早獲取到的樣本數(shù)據(jù),每次滑動更新的個數(shù)不大于樣本空間大小的十分之一。
根據(jù)預(yù)先設(shè)定的相鄰的兩個子樣本空間之間的分部區(qū)間跨度以及最小子樣本空間的大小,即可以得出各個子樣本空間的大小。相鄰的兩個子樣本空間之間的分部區(qū)間跨度即為相鄰的兩個子樣本空間之間的大小差(絕對值)。
將樣本空間A分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù))的規(guī)則為:最小子樣本空間的大小不小于整個樣本空間大小的十分之一,并且相鄰的兩個子樣本空間之間的分部區(qū)間跨度不大于整個樣本空間大小的十分之一。
將樣本空間A分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù))的規(guī)則為:如果將子樣本空間看成一個集合,則子樣本空間s(i)是子樣本空間s(i+1)的真子集。
樣本空間A的大小大于或等于100。
本發(fā)明的有益效果為:由于本數(shù)據(jù)處理方法首先將獲取到的樣本存儲形成樣本空間,然后對樣本空間進行分部處理,即將樣本空間分成n個子空間,對每個子空間分別進行數(shù)據(jù)分析、處理、計算,這樣的處理方式可以在一個計算周期內(nèi)分析、處理更多的數(shù)據(jù),再加上對計算得到的n個中間結(jié)果的分類處理,對于在線監(jiān)測系統(tǒng)來說輸出結(jié)果更加準(zhǔn)確穩(wěn)定。本發(fā)明分部樣本空間同樣能夠簡化數(shù)據(jù)分析\處理算法的設(shè)計與實現(xiàn),因為可以處理更多的樣本數(shù)據(jù),也就是說隨著樣本空間的增大,不需要對每個樣本做更精細的處理,犧牲一點計算時間降低算法難度,同樣能夠得到需要的結(jié)果。
且本發(fā)明只是提供一種數(shù)據(jù)處理的模式,具體使用的何種算法、原理,可以根據(jù)實際項目需要進行調(diào)整。因為絕大多數(shù)的分析儀器計算過程都是歷經(jīng)獲取樣本數(shù)據(jù)、分析處理樣本數(shù)據(jù)、中間計算結(jié)果、最終計算結(jié)果這樣的流程,而本發(fā)明就是對這個流程加以梳理規(guī)范并提出了切實可行的方法。因此該數(shù)據(jù)處理模式通用性可移植性強,適合絕大多數(shù)的分析儀器。
本發(fā)明每一次計算周期開始時都是獲取樣本數(shù)據(jù)更新樣本空間,以實例來說明。子空間s(1)是本周期內(nèi)剛剛獲取到的樣本數(shù)據(jù),而s(i)(i=2,3,…,10)中除了新獲取到的數(shù)據(jù)還有之前的數(shù)據(jù)也就是歷史數(shù)據(jù),而相應(yīng)的計算結(jié)果r(1)r(2)…r(10)與上一輪最終計算結(jié)果R0相比較就能確定數(shù)據(jù)的變化趨勢,這比較方法也就是判斷條件Ci。同樣的由于樣本空間相比與傳統(tǒng)方法來說要大得多,則對于程序的計算算法要求就相對簡單得多,不需要對樣本數(shù)據(jù)做更精細的處理,從而提高執(zhí)行效率,因為越是精細的處理方法就意味著更復(fù)雜的算法還有更有難度的代碼編寫,因此本發(fā)明結(jié)合歷史數(shù)據(jù)趨勢,獲取最終結(jié)果的算法設(shè)計更加簡單,提高系統(tǒng)的執(zhí)行效率。
至于樣本空間的更新則采用滑動更新,滑動更新就是每次替換之前最早獲取到的樣本數(shù)據(jù),這樣做的好處就是每次不需要獲取太多的數(shù)據(jù),獲取數(shù)據(jù)的時間與其他方法沒有增加甚至?xí)p少。
對于樣本空間的分部規(guī)則則是建議最小分部不小于樣本空間的十分之一,而分部區(qū)間跨度不大于樣本空間的十分之一,這樣既可以保證有計算結(jié)果的實時性,又能滿足中間結(jié)果處理所需的樣本個數(shù)。
術(shù)語解釋
樣本:在絕大多數(shù)的在線分析儀器中,首先要做的就是獲取需要的數(shù)據(jù),可能是一條曲線,亦可能是一組離散數(shù)字等,這樣的一條(組)數(shù)據(jù)就是一個樣本。
樣本空間:在線儀器獲取多條(組)數(shù)據(jù)用于分析,該N條(組)數(shù)據(jù)就組成一個樣本空間,而N就是樣本空間的大小。
附圖說明
圖1為本發(fā)明的數(shù)據(jù)處理方法的實施例一的方法流程圖;
圖2為本發(fā)明的數(shù)據(jù)處理方法的實施例二的方法流程圖。
具體實施方式
實施例一
參見圖1,本發(fā)明公開了一種數(shù)據(jù)處理方法,包括如下步驟:
1)將獲取到的樣本數(shù)據(jù)存儲,形成樣本空間A。當(dāng)前絕大多數(shù)的在線檢測系統(tǒng)采用的分析儀器,無論采用何種分析理論,其首先要做的就是獲取樣本空間,而為了滿足實時性要求,在一次計算周期內(nèi)獲取的樣本數(shù)據(jù)并不會很多,樣本空間必定不是很大,否則,就要影響儀器的性能指標(biāo)了,這就是理論指標(biāo)與現(xiàn)實的悖論。本發(fā)明中同樣也是在有限的時間內(nèi)獲取到有限的樣本空間,但是本發(fā)明要求保存且使用的樣本空間卻是比較大的,其大小一般取值不小于100,也就是說在每個計算周期內(nèi)需要保存且能夠使用的樣本數(shù)據(jù)一般不低于100條(組),這就要求應(yīng)用程序有足夠的內(nèi)存空間保存樣本數(shù)據(jù)。
本實施例采用鏈表的方式存儲樣本數(shù)據(jù),形成樣本空間A。本實施例采用滑動更新的方式更新樣本空間,每次滑動更新替換之前最早獲取到的樣本數(shù)據(jù),每次滑動更新的個數(shù)不大于樣本空間大小的十分之一。
2)將樣本空間A分成n個不同大小的子樣本空間s(i)(1≤i≤n,i為整數(shù))。根據(jù)預(yù)先設(shè)定的相鄰的兩個子樣本空間之間的分部區(qū)間跨度以及最小子樣本空間的大小,即可以得出各個子樣本空間的大小。相鄰的兩個子樣本空間之間的分部區(qū)間跨度即為相鄰的兩個子樣本空間之間的大小差(絕對值)。將樣本空間A分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù))的規(guī)則為:最小子樣本空間的大小不小于整個樣本空間大小的十分之一,并且相鄰的兩個子樣本空間之間的分部區(qū)間跨度不大于整個樣本空間大小的十分之一。將樣本空間A分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù))的規(guī)則為:如果將子樣本空間看成一個集合,則子樣本空間s(i)是子樣本空間s(i+1)的真子集。
假設(shè)樣本空間為A,大小為100,則可以將其分成s(1),s(2)…s(10)等10個部分,即n=10,其中s(1)=A(1:10),s(2)=A(1:20),…,s(10)=A(1:100)。其中A(1:20)意思是指樣本空間中的第1個樣本到第20個樣本這樣連續(xù)的共20個樣本組成第二個子空間s(2)。而s(2)的大小或長度就是20,同理s(1)的大小是10,s(10)的大小是100,這里的s(10)也就相當(dāng)于整個樣本空間A了。子空間s(1)的大小為10,s(2)的大小為20,它們的分部區(qū)間跨度即長短跨度就是20-10=10,不大于整個空間A(100)大小的十分之一。本實施例采用上述s(1)=A(1:10),s(2)=A(1:20)…s(10)=A(1:100)的分部方法,當(dāng)然也可以是其他的分部方法,比如s(1)=A(1:11),s(2)=A(1:15),s(3)=A(1:19),s(4)=A(1:23)…只要滿足最小分部子空間的大小不小于整個樣本空間大小的十分之一,并且分部子空間的長短跨度不大于整個樣本空間大小的十分之一即可。
3)對各個子樣本空間分別進行數(shù)據(jù)分析、處理、計算,得到n個中間計算結(jié)果r(i)(1≤i≤n,i為整數(shù))。對每一部分s(i)單獨處理計算,其具體處理計算過程就要根據(jù)不同類型的分析儀器設(shè)計選用不同的實現(xiàn)方法,且對于每一部分的處理計算方式應(yīng)該是一樣的。如本步驟使用的處理方法可以有數(shù)據(jù)歸一、位移補償、DOAS算法、最小二乘等算法。本發(fā)明可以將涉及到的方法封裝在一起,以樣本子空間為形參,即可得到該子空間數(shù)據(jù)所對應(yīng)的計算結(jié)果r(1),r(2)…r(10)。
4)對n個中間計算結(jié)果r(i)(1≤i≤n,i為整數(shù))進行進一步的判斷分析,計算得到最終輸出結(jié)果R,一個計算周期結(jié)束。每一部分s(i)計算后均會得到一個計算結(jié)果r(i)(i≦n),即一個樣本空間得出n個計算結(jié)果,繼而再通過判定算法輸出一個最終結(jié)果,即是由該樣本空間得到的一個最終計算結(jié)果。判定算法是對以上提到的每個子空間所計算出來的結(jié)果r(1),r(2)…r(10),做進一步的判斷分析,可以采用的方法有很多,比如取低頻,多項式擬合,相關(guān)系數(shù)法等等。本發(fā)明只是提供一種數(shù)據(jù)處理的模式,具體使用的何種算法、原理,可以根據(jù)實際項目需要進行調(diào)整。
5)一個計算周期結(jié)束后,獲取新的樣本數(shù)據(jù)更新樣本空間,重復(fù)步驟2)、3)、4)。
在本發(fā)明中第4步驟的判定算法可以與第3步驟的子空間算法計算結(jié)合在一起使用的,所以本發(fā)明中雖然有10個子空間,但第二、三步驟交叉進行,參見實施例二。實際上大多數(shù)情況下參與計算的子空間個數(shù)比較少,一般2到3個,甚至只有1個就能夠滿足要求,這也是這種數(shù)據(jù)處理模式的優(yōu)勢。
實施例二
參見圖2,本發(fā)明還公開了另外一種數(shù)據(jù)處理方法,包括如下步驟:
1)將獲取到的樣本數(shù)據(jù)存儲,形成樣本空間A;
2)將樣本空間分成n個子樣本空間s(i)(1≤i≤n,i為整數(shù))。實施例二的步驟1)、2)與實施例一的步驟1)、2)相同。
3)對第一個子樣本空間s(1)進行數(shù)據(jù)分析、處理、計算,得到第一個中間計算結(jié)果r(1);
對第一個中間計算結(jié)果r(1)進行判定,若第一個中間計算結(jié)果r(1)滿足條件C1,則樣本空間A的最終計算結(jié)果R=r(1),一個計算周期結(jié)束;
若第一個中間計算結(jié)果r(1)不滿足條件C1,則對第二個子樣本空間s(2)進行數(shù)據(jù)分析、處理、計算,得到第二個中間計算結(jié)果r(2);
對第一個中間計算結(jié)果r(1)、第二個中間計算結(jié)果r(2)進行進一步的判斷分析,計算得到結(jié)果f(r(1),r(2)),對結(jié)果f(r(1),r(2))進行判定,若結(jié)果f(r(1),r(2))滿足條件C2,則樣本空間A的最終計算結(jié)果R=f(r(1),r(2)),一個計算周期結(jié)束;
若結(jié)果f(r(1),r(2))不滿足條件C2,則需要對第三個子樣本空間s(3)進行數(shù)據(jù)分析、處理、計算,得到第三個中間計算結(jié)果r(3);
如此下去,直至需要對第n個子樣本空間s(n)進行數(shù)據(jù)分析、處理、計算,得到第n個中間計算結(jié)果r(n);
對第一個中間計算結(jié)果r(1)、第二個中間計算結(jié)果r(2)…第n個中間計算結(jié)果r(n)進行進一步的判斷分析,計算得到結(jié)果f(r(1),…,r(n)),則樣本空間A的最終計算結(jié)果R=f(r(1),…,r(10)),一個計算周期結(jié)束。本發(fā)明如果直至需要計算第n個子空間得到r(n),就是說前面的計算結(jié)果都不能滿足C1,C2至Cn-1,則就是Cn,而最終結(jié)果就是R=f(r(1),…,r(n)),不存在不滿足Cn的情況??梢岳斫鉃椤癷f(C1)–else if(C2)-…else if(Cn-1)-else”中最后的一個else,而f(r(1),…,r(10))就是最終計算結(jié)果R,一個計算周期結(jié)束。條件C1,C2,…,Cn可以由程序設(shè)計人員根據(jù)產(chǎn)品研發(fā)過程中測試數(shù)據(jù)自行設(shè)定,不同的產(chǎn)品肯定會有所區(qū)別。如條件C1可以為結(jié)果r(1)相比于上一輪的最終計算結(jié)果R0變大或者減少超過5%,即|r(1)-R0|/R0>5%。
4)一個計算周期結(jié)束后,獲取新的樣本數(shù)據(jù)更新樣本空間,重復(fù)步驟2)、3)。
舉例說明:
為描述方便ai代表一個樣本數(shù)據(jù),可以是一個數(shù)字,也可以是一個數(shù)組,亦可以是一個數(shù)據(jù)表,i越大表示越早獲取到,a110先于a109獲取到,a1表示最近剛剛獲取到的數(shù)據(jù)。
原有的數(shù)據(jù)空間A=[a110,a109,a108,…,a12,a11],共100個樣本數(shù)據(jù)組成樣本空間,將其分成10個部分,第一子樣本空間s(1)=[a20,a19,…,a12,a11]共10個樣本數(shù)據(jù),第二子樣本空間s(2)=[a30,a29,…,a12,a11]共20個樣本數(shù)據(jù),…,第十子樣本空間s(10)=[a110,a109,…,a12,a11]共100個樣本數(shù)據(jù),假設(shè)每個樣本子空間都有計算結(jié)果,則分別為r(1),r(2),…,r(10),計算最終輸出結(jié)果為R;
新一輪獲取樣本數(shù)據(jù)為a10,a9,…,a1共10個樣本數(shù)據(jù),則新的樣本空間AA=[a100,a99,a98,…,a2,a1]共100個樣本數(shù)據(jù),將其分成10個部分,第一子樣本空間ss(1)=[a10,a9,…,a2,a1]共10個樣本數(shù)據(jù),第二子樣本空間ss(2)=[a20,a19,…,a2,a1]共20個樣本數(shù)據(jù),…,第十子樣本空間ss(10)=[a100,a99,…,a2,a1]共100個樣本數(shù)據(jù),首先計算ss(1),得結(jié)果rr(1),若滿足條件C1,本實施例C1就是|rr(1)-R|/R是否大于5%,R為上一輪的最終計算結(jié)果;則該AA樣本空間的最終結(jié)果RR=rr(1),且ss(2)ss(3)…ss(10)不再進行分析計算,若不滿足條件C1,則計算ss(2)得結(jié)果rr(2),若(rr(1),rr(2))滿足條件C2則該樣本空間AA的最終結(jié)果RR則是rr(1)與rr(2)的某種運算結(jié)果,即RR=f(rr(1),rr(2)),若不滿足C2,則計算ss(3)得結(jié)果rr(3),…直至需要計算ss(10),則該樣本空間AA的最終結(jié)果RR就是rr(1)、rr(2)…rr(10)的某種運算結(jié)果,即RR=f(rr(1),…,rr(10));
一般情況下只需要計算到第二、三子樣本空間結(jié)果即可得出樣本空間的最終結(jié)果,少數(shù)情況只需計算第一樣本空間即可,極少數(shù)情況才需對第五子空間甚至更多的子空間進行計算。
本發(fā)明雖然并未給出具體的分析\計算方法和結(jié)果處理方法,但其主旨便是提出或者發(fā)現(xiàn)一種數(shù)據(jù)的處理模式,該模式適用于絕大多數(shù)的在線監(jiān)測系統(tǒng),亦可根據(jù)不同的使用條件進行適當(dāng)?shù)卣{(diào)整,并且按照具體需要將計算方法與結(jié)果處理方法進行不同的組合。在本發(fā)明中特別要注意的是,樣本空間的保存和合適的樣本空間分部方法。對于樣本空間的保存不同的開發(fā)語言實現(xiàn)方式雖有不同,但主體思想大同小異,也就是采用鏈表的方式較為合適,即
I表示樣本空間,ai表示單個樣本
至于樣本空間的更新則主要分兩種情況,一是滑動更新,滑動更新就是每次替換之前最早獲取到的樣本數(shù)據(jù),這樣做的好處就是每次不需要獲取太多的數(shù)據(jù),獲取數(shù)據(jù)的時間與其他方法沒有增加甚至?xí)p少。一般來說每次滑動更新的個數(shù)不大于樣本空間大小的十分之一;二是完全更新,即一次性完全替換現(xiàn)有樣本空間中的數(shù)據(jù)。兩種方式各有優(yōu)劣,本實施例結(jié)合中間結(jié)果處理方法優(yōu)選采用滑動更新方式。
對于樣本空間的分部規(guī)則則是建議最小分部不小于樣本空間的十分之一,而分部區(qū)間跨度不大于樣本空間的十分之一,這樣既可以保證有計算結(jié)果的實時性,又能滿足中間結(jié)果處理所需的樣本個數(shù)。分部區(qū)間跨度在前面說過,就是相鄰子空間的大小之間的差異,如s(1)的大小10,s(2)的大小為20,則分部區(qū)間跨度為10。樣本空間的大小在前面定義過,就是每個分部子空間中包含的樣本數(shù)據(jù)個數(shù),如上面例子中提到的分部子空間s(1)的大小為10,分部子空間s(10)的大小為100。
對于分析\計算方法則是由不同現(xiàn)場決定不同類型的分析儀器,其采用的方法自然也就各不相同。對于中間結(jié)果的處理方法則是有通用性的,不管是較為簡單的低通濾波還是較為復(fù)雜的分類補償均可使用,這里就不再贅述了。
本發(fā)明不僅僅局限于上述實施例,在不背離本發(fā)明技術(shù)方案原則精神的情況下進行些許改動的技術(shù)方案,應(yīng)落入本發(fā)明的保護范圍。