2023年Matlab筆記數據預處理剔除異常值及平滑處理_第1頁
2023年Matlab筆記數據預處理剔除異常值及平滑處理_第2頁
2023年Matlab筆記數據預處理剔除異常值及平滑處理_第3頁
2023年Matlab筆記數據預處理剔除異常值及平滑處理_第4頁
2023年Matlab筆記數據預處理剔除異常值及平滑處理_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

012.數據預解決(1)——剔除異常值及平滑解決測量數據在其采集與傳輸過程中,由于環(huán)境干擾或人為因素有也許導致個別數據不切合實際或丟失,這種數據稱為異常值。為了恢復數據的客觀真實性以便將來得到更好的分析結果,有必要先對原始數據(1)剔除異常值;此外,無論是人工觀測的數據還是由數據采集系統(tǒng)獲取的數據,都不可避免疊加上“噪聲”干擾(反映在曲線圖形上就是一些“毛刺和尖峰”)。為了提高數據的質量,必須對數據進行(2)平滑解決(去噪聲干擾);(一)剔除異常值。注:若是有空缺值,或導入Matlab數據顯示為“NaN”(非數),需要①忽略整條空缺值數據,或者②填上空缺值。填空缺值的方法,通常有兩種:A.使用樣本平均值填充;B.使用鑒定樹或貝葉斯分類等方法推導最也許的值填充(略)。一、基本思想:規(guī)定一個置信水平,擬定一個置信限度,凡是超過該限度的誤差,就認為它是異常值,從而予以剔除。二、常用方法:拉依達方法、肖維勒方法、一階差分法。注意:這些方法都是假設數據依正態(tài)分布為前提的。拉依達方法(非等置信概率)假如某測量值與平均值之差大于標準偏差的三倍,則予以剔除。其中,為樣本均值,為樣本的標準偏差。注:適合大樣本數據,建議測量次數≥50次。代碼實例(略)。肖維勒方法(等置信概率)在n次測量結果中,假如某誤差也許出現的次數小于半次時,就予以剔除。這實質上是規(guī)定了置信概率為1-1/2n,根據這一置信概率,可計算出肖維勒系數,也可從表中查出,當規(guī)定不很嚴格時,還可按下列近似公式計算:Tab1.肖維勒系數表n3456789101112ωn1.381.531.651.731.801.861.921.962.002.03n13141520304050100200500ωn2.072.102.132.242.392.492.582.813.023.20假如某測量值與平均值之差的絕對值大于標準偏差與肖維勒系數之積,則該測量值被剔除。運用肖維勒方法對下列數據的異常值(2.5000)進行剔除:1.50341.50621.50341.50241.49852.50001.50071.50671.49931.4969上述數據保存于文獻erro.dat代碼:x=load('error.dat');n=length(x);subplot(2,1,1);plot(x,'o');title('原始數據')axis([0,n+1,min(x)-1,max(x)+1]);w=1+0.4*log(n);yichang=abs(x-mean(x))>w*std(x);%若用拉依達方法,把w改成3即可,但本組數據將不能成功剔除異常值。x(yichang)=[];saveerrornew.datx-ASCIIsubplot(2,1,2);plot(x,'rs');title('異常值剔除后數據');axis([0,n+1,min(x)-1,max(x)+1]);運營結果:x=1.50341.50621.50341.50241.49852.50001.50071.50671.49931.4969y=1.50341.50621.50341.50241.49851.50071.50671.49931.4969一階差分法(預估比較法)用前兩個測量值來預估新的測量值,然后用預估值與實際測量值比較,若大于事先給定的允許差限值,則剔除該測量值。預估值比較判別:注:該方法的特點是(1)適合于實時數據采集與解決過程;(2)精度除了與允許誤差限的大小有關外,還與前兩點測量值的精確度有關;(3)若被測物理量的變化規(guī)律不是單調遞增或單調遞減函數,這一方法將在函數的拐點處產生較大的誤差,嚴重時將無法使用。(二)數據的平滑解決對于一組測量數據(xi,yi)i=1,…,n,不要直接就想著求出的擬合多項式的線性參數,而是要先平滑解決去掉“噪聲”。平滑解決在科學研究中廣泛使用,它可以減少測量中記錄誤差帶來的影響,特別被用于無法運用多次反復測量來得到其平均值的情況和當yi隨xi有徒然變化的那些測量段?!埃?n+1點)單純移動平均”平滑濾波取出以yi為中心的前后各n個數據(yi-n,…,yi-1,yi,…yi+n)求平均值代替yi,即優(yōu)點:方法簡樸,計算方便。缺陷:方法產生誤差會導致信號失真;前后各n個數據無法平滑。合用性:合用于變化緩慢的數據。注:n越大平滑效果越好,但失真也越大?!?點單純移動平均”平滑濾波代碼:%建立“n點單純移動平均”的濾波函數%注意函數要單獨保存為與函數名同名的.m文獻functionY=smooth_data(y,n)m=length(y);j=1;fori=(n-1)/2+1:(m-(n-1)/2)p=i-(n-1)/2;q=i+(n-1)/2;Y(j)=sum(y(p:q))/n;j=j+1;endend%主程序clccleart=-15:0.5:15;n=length(t);Y=5./(1+t.^2);%原始測試數據y=Y+(0.5-rand(1,n));%給測試數據加上噪聲干擾y1=smooth_data(y,9);%調用函數作9點濾波解決plot(1:n,Y,1:n,y,'-o',5:n-4,y1,'-*');legend('無噪聲','含噪聲','9點平滑后');運營結果:“加權移動平均”平滑濾波加權的基本思想:作平均的區(qū)間內中心處數據的權值最大,愈遠離中心處的數據權值越小小。這樣就減小了對真實信號自身的平滑作用。權重系數可以采用最小二乘原理,使平滑后的數據以最小均方差逼近原始數據。即令通常采用“五點二次平滑”(n=5,k=-2,-1,0,1,2)五點二次平滑權重系數表:歸一系數y-2y-1y0y1y2y-2’35319-3-53y-1’35913126-5y0’35-3121712-3y1’35-5612139y2’353-5-3931用“smooth函數”平滑濾波調用格式:Z=smooth(Y,span,method)說明:Z:平滑后的數據向量Y:被平滑的數據向量span:平滑點數,缺省為5點method:平滑方法,缺省為移動平滑,其它尚有‘moving’——Movingaverage(default)單純移動平均‘lowess’——Lowess(linearfit)線性加權平滑‘loess’——Loess(quadraticfit)二次加權平滑'sgolay'——Savitzky-Golay'rlowess'——RobustLowess(linearfit)'rloess'——RobustLoess(quadraticfit)用matlab自帶的平滑函數作平滑濾波實例。代碼:t=-10:0.5:10;n=length(t);y=5./(1+t.^2);%原始測試數據y1=y+0.5*(0.5-rand(1,n));%給測試數據加上噪聲干擾%調用多個濾波函數作濾波解決y2=smooth(y1,3);y3=smooth(y1,9);y4=smooth(y1,3,'lowess');y5=smooth(y1,9,'lowess');y6=smooth(y1,3,'loess');y7=smooth(y1,9,'loess');y8=smooth(y1,3,'rloess');y9=smooth(y1,9,'rloess');figure(1);%第一張圖subplot(3,2,1);plot(t,y);axis([-1010-16]);gridontitle('無噪聲信號');subplot(3,2,2);plot(t,y1,'-*');axis([-1010-16]);gridontitle('含噪聲信號');subplot(3,2,3);plot(t,y2,'-*');axis([-1010-16]);gridontitle('3點單純移動平均');subplot(3,2,4);plot(t,y3,'-*');axis([-1010-16]);gridontitle('9點單純移動平均');subplot(3,2,5);plot(t,y4,'-*');axis([-1010-16]);gridontitle('3點線性加權平滑');subplot(3,2,6);plot(t,y5,'-*');axis([-1010-16]);gridontitle('9點線性加權平滑');figure(2);%第二張圖subplot(3,2,1);plot(t,y);axis([-1010-16]);gridontitle('無噪聲信號');subplot(3,2,2);plot(t,y1,'-*');axis([-1010-16]);gridontitle('含噪聲信號');subplot(3,2,3);plot(t,y6,'-*');axis([-1010-16]);gridontitle('3點二次加權平滑');subplot(3,2,4);plot(t,y7,'-*');axis([-1010-16]);gridontitle('9點二次加權平滑');subplot(3,2,5);plot(t,y8,'-*');axis([-1010-16]);gridontitle('3點rloess平滑');subplot(3,2,6);plot(t,y9,'-*');axis([-1010-16]);gridontitle('9點rloess平滑');運營結果:Figure1Figure2用“smoothts函數”(盒子法、高斯窗法、指數法)平滑濾波調用格式:output=smoothts(input)output=smoothts(input,‘b’,wsize)%盒子法output=smoothts(input,‘g’,wsize,stdev)%高斯窗方法output=smoothts(input,‘e’,n)%指數法讀取股市數據,對開盤價的240條數據,調用smoothts函數進行平滑解決。代碼:x=xlsread('D:\ProgramFiles\MATLAB\MyWorks\gupiaoshuju01.xls');%讀取數據文獻p0=x(1:240,1)';%用開盤價所在列的前240條數據%注意若不轉置也許導致后面解決結果異常subplot(2,2,1);plot(p0,'k','LineWidth',1.5);%繪制平滑后曲線圖,黑色實線,線寬1.5xlabel('觀測序號');ylabel('股市日開盤價');axis([025010001400]);p1=smoothts(p0,'b',30);%用盒子法平滑數據,窗寬為30subplot(2,2,2);plot(p0,'.');%繪制日開盤價散點圖plot(p0,'.','markersize',3);可以改變點的大小holdonplot(p1,'k','LineWidth',1.5);xlabel('觀測序號');ylabel('盒子法');legend('原始散點','平滑曲線','location','northwest');axis([025010001400]);p2=smoothts(p0,'g',30);%高斯窗方法,窗寬為30,標準差為默認值0.65subplot(2,2,3);plot(p0,'.');holdonplot(p2,'k','LineWidth',1.5);xlabel('觀測序號');ylabel('高斯窗方法');legend('原始散點','平滑曲線','location','northwest');axis([025010001400]);p3=smoothts(p0,'e',30);%用指數法平滑數據,窗寬為30subplot(2,2,4);plot(p0,'.');holdonplot(p3,'k','LineWidth',1.5);xlabel('觀測序號');ylabel('指數方法');legend('原始散點','平滑曲線','location','northwest');axis([025010001400]);gridontitle('9點rloess平滑');運營結果:用medfilt1函數(一維

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論