本發(fā)明涉及模擬信號測量,具體涉及一種時(shí)間序列異常值校正檢測方法及其系統(tǒng)。
背景技術(shù):
1、在工程應(yīng)用中,大量使用了模擬信號-數(shù)字信號轉(zhuǎn)換技術(shù)(adc),以便將電壓、電流等物理量信號轉(zhuǎn)換為對應(yīng)的時(shí)間序列數(shù)字信號,并傳輸數(shù)字信號到信號處理電路。信號處理電路中的數(shù)字信號處理電路(中央處理器或現(xiàn)場可編程門陣列芯片fpga)采集數(shù)字信號,按照設(shè)定程序?qū)?shù)字信號進(jìn)行進(jìn)一步的轉(zhuǎn)換與處理。隨著高速adc技術(shù)的普及應(yīng)用,在單位時(shí)間內(nèi)會(huì)有海量的由模擬信號轉(zhuǎn)換得到的數(shù)字信號需要得到處理。在電磁環(huán)境復(fù)雜、各類干擾嚴(yán)重、被測量模擬信號值較小的使用場景,如:飛機(jī)進(jìn)氣道的溫度檢測,adc的輸出數(shù)字信號往往因?yàn)槭艿礁蓴_而偏離正常測量值,且偏離值為隨機(jī)值,無規(guī)律可循。如果直接使用這些異常的原始數(shù)據(jù)信號,將會(huì)給計(jì)算與控制帶來不確定性,使最終的計(jì)算結(jié)果出現(xiàn)錯(cuò)誤。因此,數(shù)字信號處理電路在使用這些數(shù)字信號前,往往需要進(jìn)行數(shù)字信號清洗,即按照一定算法對原始的數(shù)字信號進(jìn)行計(jì)算,篩選并重新生成濾除了異常值的數(shù)字信號,然后才能開展下一步的數(shù)字信號處理工作。
2、為了濾除時(shí)間序列異常值數(shù)據(jù),通常使用濾波器算法。目前較為常見的濾波器算法包括:限幅濾波法、平均值濾波法、中位值濾波法、一階滯后濾波法等。平均值濾波法、中位值濾波法、一階滯后濾波法一般對偶發(fā)性的干擾信號或周期性出現(xiàn)的交流干擾信號有較好的濾波效果,應(yīng)用也較廣泛。這幾種方法在實(shí)際應(yīng)用中最突出的問題是魯棒性較差。當(dāng)異常值的變化范圍較小、變化較慢時(shí),濾波效果較好。如果異常值在發(fā)生大幅度的變化,導(dǎo)致數(shù)據(jù)信號劇烈改變,以上算法的濾波效果就難以滿足應(yīng)用的要求。
技術(shù)實(shí)現(xiàn)思路
1、針對現(xiàn)有技術(shù)中的上述不足,本發(fā)明提供的一種時(shí)間序列異常值校正檢測方法及其系統(tǒng)解決了現(xiàn)有對時(shí)間序列異常值的處理方法存在魯棒性較差,且無法處理當(dāng)異常值在發(fā)生大幅度的變化,導(dǎo)致數(shù)據(jù)信號劇烈改變的情況,滿足不了對測量結(jié)果的可靠性要求的問題。
2、為了達(dá)到上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為:
3、提供了一種時(shí)間序列異常值校正檢測方法,其包括以下步驟:
4、s1、獲取時(shí)間序列數(shù)據(jù);
5、s2、構(gòu)建時(shí)間序列異常值檢測模型;其中,時(shí)間序列異常值檢測模型包括時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊、中間值絕對偏差計(jì)算模塊、異常值判斷模塊、數(shù)據(jù)值校正模塊、離群值檢測模塊;
6、s3、通過時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊對時(shí)間序列數(shù)據(jù)進(jìn)行數(shù)據(jù)搜索,得到對應(yīng)的時(shí)間序列數(shù)據(jù)中間值數(shù)據(jù);
7、s4、通過中間值絕對偏差計(jì)算模塊對時(shí)間序列數(shù)據(jù)中間值數(shù)據(jù)和時(shí)間序列數(shù)據(jù)進(jìn)行處理,得到對應(yīng)的中間值絕對偏差數(shù)據(jù)、絕對偏差中間值數(shù)據(jù);
8、s5、基于中間值絕對偏差數(shù)據(jù)、絕對偏差中間值數(shù)據(jù),通過異常值判斷模塊對時(shí)間序列數(shù)據(jù)進(jìn)行判斷,得到對應(yīng)的判斷結(jié)果;
9、s6、判斷各時(shí)間序列數(shù)據(jù)對應(yīng)的判斷結(jié)果是否為正常;若是則得到正常時(shí)間序列數(shù)據(jù);反之則得到異常事件序列數(shù)據(jù)并進(jìn)入步驟s7;
10、s7、通過數(shù)據(jù)值校正模塊對異常時(shí)間序列數(shù)據(jù)進(jìn)行校正,得到校正后的時(shí)間序列數(shù)據(jù);
11、s8、通過離群值檢測模塊對校正后的時(shí)間序列數(shù)據(jù)進(jìn)行檢測,得到檢測結(jié)果。
12、進(jìn)一步地,步驟s3包括以下步驟:
13、s3-1、順序讀取三個(gè)時(shí)間序列數(shù)據(jù)并作為一個(gè)數(shù)據(jù)集合;
14、s3-2、對步驟s3-1讀取的三個(gè)時(shí)間序列數(shù)據(jù)進(jìn)行二進(jìn)制轉(zhuǎn)換,分別得到對應(yīng)的二進(jìn)制數(shù)據(jù);
15、s3-3、判斷各二進(jìn)制數(shù)據(jù)的最高位是否相同;若是則進(jìn)入步驟s3-4;反之則進(jìn)入步驟s3-5;
16、s3-4、將各二進(jìn)制數(shù)據(jù)的低位覆蓋高位,直至最高位被次高位覆蓋,更新二進(jìn)制數(shù)據(jù)并返回步驟s3-3;其中,最低位使用0覆蓋;
17、s3-5、判斷各二進(jìn)制數(shù)據(jù)的丟棄次數(shù)是否為1;若是則進(jìn)入步驟s3-9;反之則進(jìn)入步驟s3-6;
18、s3-6、判斷是否存在兩個(gè)二進(jìn)制數(shù)據(jù)的最高位均為1;若是則進(jìn)入步驟s3-7;反之則進(jìn)入步驟s3-8;
19、s3-7、丟棄最高位為0的二進(jìn)制數(shù)據(jù),丟棄次數(shù)加1并返回步驟s3-4;其中,丟棄次數(shù)的初始值為0;
20、s3-8、丟棄最高位為1的二進(jìn)制數(shù)據(jù),丟棄次數(shù)加1并返回步驟s3-4;
21、s3-9、判斷是否丟棄過最高位為1的二進(jìn)制數(shù)據(jù);若是則進(jìn)入步驟s3-10;反之則進(jìn)入步驟s3-11;
22、s3-10、將丟棄次數(shù)為1且最高位為1的二進(jìn)制數(shù)據(jù)對應(yīng)的步驟s3-2的二進(jìn)制數(shù)據(jù)作為時(shí)間序列數(shù)據(jù)中間值并輸入至中間值絕對偏差計(jì)算模塊,進(jìn)入步驟s3-12;
23、s3-11、將丟棄次數(shù)為1且最高位為0的二進(jìn)制數(shù)據(jù)對應(yīng)的步驟s3-2的二進(jìn)制數(shù)據(jù)作為時(shí)間序列數(shù)據(jù)中間值并分別輸入至中間值絕對偏差計(jì)算模塊,進(jìn)入步驟s3-12;
24、s3-12、判斷是否處理完所有時(shí)間序列數(shù)據(jù);若是則進(jìn)入步驟s4;反之則選取任一個(gè)時(shí)間序列數(shù)據(jù)并替換數(shù)據(jù)集合中選取的第一個(gè)時(shí)間序列數(shù)據(jù),更新數(shù)據(jù)集合重置丟棄次數(shù),并返回步驟s3-2。
25、進(jìn)一步地,步驟s4包括以下步驟:
26、s4-1、順序讀取一個(gè)時(shí)間序列數(shù)據(jù);
27、s4-2、實(shí)時(shí)獲取步驟s3-10或步驟s3-11輸出的時(shí)間序列數(shù)據(jù)中間值;
28、s4-3、計(jì)算該時(shí)間序列數(shù)據(jù)與時(shí)間序列中間值的中間值絕對偏差并輸入至異常值判斷模塊,進(jìn)入步驟s4-4;
29、s4-4、重復(fù)步驟s4-1至步驟s4-3,直至得到所有時(shí)間序列數(shù)據(jù)對應(yīng)的中間值絕對偏差;
30、s4-4、通過與步驟s3相同方法對所有中間值絕對偏差進(jìn)行處理,得到對應(yīng)的絕對偏差中間值,并進(jìn)入步驟s5。
31、進(jìn)一步地,步驟s5包括以下步驟:
32、s5-1、計(jì)算步驟s4-3的中間值絕對偏差與絕對偏差中間值的比值;
33、s5-2、基于比值,對步驟s4-1讀取的時(shí)間序列數(shù)據(jù)進(jìn)行判斷,得到對應(yīng)的判斷結(jié)果;其中,判斷結(jié)果分為正常和異常;
34、s5-3、重復(fù)步驟s5-1,直至計(jì)算所有時(shí)間序列數(shù)據(jù)對應(yīng)的中間值絕對偏差與絕對偏差中間值的比值;
35、s5-4、重復(fù)步驟s5-2,直至得到所有時(shí)間序列數(shù)據(jù)對應(yīng)的判斷結(jié)果。
36、進(jìn)一步地,步驟s5-2的具體過程為:
37、預(yù)設(shè)閾值范圍;判斷判斷結(jié)果是否處于閾值范圍中;若是則判斷結(jié)果為異常;反之則判斷結(jié)果為正常;其中,閾值范圍為2到50的實(shí)數(shù)區(qū)間。
38、進(jìn)一步地,步驟s7包括以下步驟:
39、s7-1、讀取一個(gè)異常時(shí)間序列數(shù)據(jù)及其對應(yīng)的時(shí)間序列數(shù)據(jù)中間值;
40、s7-2、將該異常時(shí)間序列數(shù)據(jù)替換為對應(yīng)的時(shí)間序列數(shù)據(jù)中間值;
41、s7-3、重復(fù)步驟s7-1和步驟s7-2,直至處理完所有的異常時(shí)間序列數(shù)據(jù),得到校正后的時(shí)間序列數(shù)據(jù)。
42、進(jìn)一步地,步驟s8包括以下步驟:
43、s8-1、計(jì)算校正后的時(shí)間序列數(shù)據(jù)對應(yīng)的絕對平均值;
44、s8-2、計(jì)算校正后的時(shí)間序列數(shù)據(jù)對應(yīng)的絕對標(biāo)準(zhǔn)差;
45、s8-3、計(jì)算各個(gè)校正后的時(shí)間序列數(shù)據(jù)的絕對值與絕對平均值的偏差;
46、s8-4、計(jì)算各個(gè)偏差與絕對標(biāo)準(zhǔn)差的絕對比值;
47、s8-5、計(jì)算各個(gè)絕對比值的平均差分值;
48、s8-6、判斷平均差分值是否大于閾值;若是則判定修正后的時(shí)間序列數(shù)據(jù)為異常數(shù)據(jù),即檢測結(jié)果;反之則判定修正后的時(shí)間序列數(shù)據(jù)為正常數(shù)據(jù),即檢測結(jié)果。
49、提供了一種時(shí)間序列異常值校正檢測系統(tǒng),其包括基準(zhǔn)信號產(chǎn)生模塊、時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊、中間值絕對偏差計(jì)算模塊、異常值判斷模塊、數(shù)據(jù)值校正模塊、離群值檢驗(yàn)?zāi)K;
50、基準(zhǔn)信號產(chǎn)生模塊的信號輸出端分別連接原始數(shù)據(jù)中間值計(jì)算模塊、中間值絕對偏差計(jì)算模塊、異常值判斷模塊、數(shù)據(jù)值校正模塊、離群值檢驗(yàn)?zāi)K的第一信號輸入端;時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊的第一信號輸出端、第二信號輸出端和第三信號輸出端分別連接中間值絕對偏差計(jì)算模塊、異常值判斷模塊、數(shù)據(jù)值校正模塊的第二信號輸入端;中間值絕對偏差計(jì)算模塊的第一信號輸出端、第二信號輸出端分別連接時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊的第二信號輸入端、異常值判斷模塊的第三信號輸入端;異常值判斷模塊的信號輸出端連接數(shù)據(jù)值校正模塊的第三信號輸入端;數(shù)據(jù)值校正模塊的信號輸出端連接離群值檢驗(yàn)?zāi)K;
51、其中:
52、基準(zhǔn)信號產(chǎn)生模塊,用于提供基準(zhǔn)信號,并以跳變沿驅(qū)動(dòng)各模塊按時(shí)序工作;
53、時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊,用于對時(shí)間序列數(shù)據(jù)進(jìn)行數(shù)據(jù)搜索,得到對應(yīng)的時(shí)間序列數(shù)據(jù)中間值數(shù)據(jù);
54、中間值絕對偏差計(jì)算模塊,用于對時(shí)間序列數(shù)據(jù)中間值數(shù)據(jù)和時(shí)間序列數(shù)據(jù)進(jìn)行處理,得到對應(yīng)的中間值絕對偏差數(shù)據(jù)、絕對偏差中間值數(shù)據(jù);
55、異常值判斷模塊,用于基于中間值絕對偏差數(shù)據(jù)、絕對偏差中間值數(shù)據(jù)對時(shí)間序列數(shù)據(jù)進(jìn)行判斷,得到對應(yīng)的判斷結(jié)果;
56、數(shù)據(jù)值校正模塊,用于對異常時(shí)間序列數(shù)據(jù)進(jìn)行校正,得到校正后的時(shí)間序列數(shù)據(jù);
57、離群值檢驗(yàn)?zāi)K,用于對校正后的時(shí)間序列數(shù)據(jù)進(jìn)行檢測,得到檢測結(jié)果。
58、進(jìn)一步地,基準(zhǔn)信號產(chǎn)生模塊采用兩種方式獲取基準(zhǔn)信號;第一種采用fpga的鎖相環(huán)或鎖延遲環(huán)技術(shù),產(chǎn)生穩(wěn)定的頻率測量基準(zhǔn)信號;第二種采用fpga的外部高精度頻率源信號,通過計(jì)數(shù)分頻方法產(chǎn)生頻率測試所需的頻率測量基準(zhǔn)信號
59、時(shí)間序列數(shù)據(jù)中間值計(jì)算模塊采用矩陣式逐位比較法。
60、本發(fā)明的有益效果為:
61、1、實(shí)現(xiàn)了對數(shù)據(jù)集合中間值的快速搜索;使用了逐位比較法實(shí)現(xiàn)對中間值的搜索,通過布爾邏輯而不是算術(shù)邏輯比較數(shù)據(jù)的大?。唤鉀Q了現(xiàn)有算法在比較數(shù)據(jù)大小時(shí)因?yàn)槭褂盟阈g(shù)邏輯帶來的對fpga內(nèi)部邏輯資源數(shù)量需求較多,導(dǎo)致在小容量fpga芯片中難以實(shí)現(xiàn)對較大量的數(shù)據(jù)進(jìn)行大小比較的問題;
62、2、實(shí)現(xiàn)對大幅度波動(dòng)數(shù)據(jù)的修正;利用數(shù)據(jù)異常值判斷與修正算法,可以對因各種外部原因?qū)е碌拇蠓炔▌?dòng)的原始數(shù)據(jù)進(jìn)行修正與檢測,克服了傳統(tǒng)算法只適于修正小幅度波動(dòng)數(shù)據(jù),對大幅度波動(dòng)的異常數(shù)據(jù)修正效果較差甚至無法修正導(dǎo)致大量數(shù)據(jù)丟棄的問題;解決因數(shù)據(jù)異常得不到有效修正而導(dǎo)致后續(xù)數(shù)字處理結(jié)果不理想的問題;對修正后的數(shù)據(jù)進(jìn)一步進(jìn)行異常值檢測,改善了數(shù)據(jù)質(zhì)量,排除了異常值的干擾,提高檢測結(jié)果的準(zhǔn)確性。