Ett enkelt (ad hoc) sätt är att bara ta ett vägt genomsnitt (avstämbart av alfa) vid varje punkt med sina grannar: eller en viss variation därav. Ja, för att vara mer sofistikerad kan du Fourier förvandla dina data först och avklippa sedan högfrekvenserna. Något som: Detta skär ut de högsta 20 frekvenserna. Var försiktig med att klippa ut dem symmetriskt, annars är den omvända transformen inte längre riktig. Du måste noggrant välja cutoff-frekvensen för rätt nivå av utjämning. Detta är en mycket enkel typ av filtrering (boxfiltrering i frekvensdomänen), så du kan försiktigt försöka dämpa högfrekventa frekvenser om distorsionen är oacceptabel. svarade 4 okt 09 kl 9:16 FFT är inte en dålig idé, men det är förmodligen överkill här. Löpande eller rörliga medelvärden ger generellt dåliga resultat och bör undvikas för något förutom läxläxa (och vitt brus). Id använder Savitzky-Golay filtrering (i Matlab sgolayfilt (.)). Detta ger dig de bästa resultaten för vad du letar efter - lite lokal utjämning samtidigt som du håller kurvens form. Flyttande medel och exponentiella utjämningsmodeller Som ett första steg för att flytta bortom genomsnittliga modeller, slumpmässiga gångmodeller och linjära trendmodeller, nonseasonal mönster och trender kan extrapoleras med hjälp av en rörlig genomsnitts - eller utjämningsmodell. Det grundläggande antagandet bakom medelvärdes - och utjämningsmodeller är att tidsserierna är lokalt stationära med ett långsamt varierande medelvärde. Därför tar vi ett rörligt (lokalt) medelvärde för att uppskatta det nuvarande värdet av medelvärdet och sedan använda det som prognosen för den närmaste framtiden. Detta kan betraktas som en kompromiss mellan medelmodellen och slumpmässig-walk-without-drift-modellen. Samma strategi kan användas för att uppskatta och extrapolera en lokal trend. Ett rörligt medelvärde kallas ofta en quotsmoothedquot-version av den ursprungliga serien, eftersom kortsiktig medelvärde har en effekt att utjämna stötarna i originalserien. Genom att justera graden av utjämning (bredden på glidande medelvärdet) kan vi hoppas att hitta någon form av optimal balans mellan prestandan hos medel och slumpmässiga gångmodeller. Den enklaste typen av medelvärdesmodell är. Enkelt (lika viktat) Flyttande medelvärde: Prognosen för värdet på Y vid tiden t1 som görs vid tid t motsvarar det enkla medelvärdet av de senaste m-observationerna: (Här och på annat håll använder jag symbolen 8220Y-hat8221 för att stå för en prognos av tidsserie Y som gjordes så tidigt som möjligt enligt en given modell.) Detta medel är centrerat vid period-t (m1) 2, vilket innebär att uppskattningen av det lokala medelvärdet tenderar att ligga bakom den sanna värdet av det lokala medelvärdet med ca (m1) 2 perioder. Således säger vi att medelåldern för data i det enkla glidande medlet är (m1) 2 i förhållande till den period för vilken prognosen beräknas: det här är hur lång tid prognoserna tenderar att ligga bakom vändpunkter i data . Om du till exempel medger de senaste 5 värdena, kommer prognoserna att vara cirka 3 perioder sent för att svara på vändpunkter. Observera att om m1 är den enkla glidande genomsnittsmodellen (SMA) motsvarar den slumpmässiga gångmodellen (utan tillväxt). Om m är mycket stor (jämförbar med längden på uppskattningsperioden), motsvarar SMA-modellen den genomsnittliga modellen. Precis som med vilken parameter som helst av en prognosmodell, är det vanligt att justera värdet på k för att få den bästa kvotkvoten till data, dvs de minsta prognosfelen i genomsnitt. Här är ett exempel på en serie som verkar utgöra slumpmässiga fluktuationer runt ett långsamt varierande medelvärde. Först kan vi försöka passa den med en slumpmässig promenadmodell, vilket motsvarar ett enkelt glidande medelvärde på 1 term: Slumpmässig gångmodell svarar väldigt snabbt på förändringar i serien, men därmed väljer den mycket av kvotenhetskvoten i data (de slumpmässiga fluktuationerna) samt quotsignalquot (det lokala medelvärdet). Om vi istället försöker ett enkelt glidande medelvärde på 5 termer får vi en snyggare uppsättning prognoser: Det 5-åriga enkla glidande medlet ger betydligt mindre fel än den slumpmässiga promenadmodellen i det här fallet. Medelåldern för data i denna prognos är 3 ((51) 2), så att den tenderar att ligga bakom vändpunkter med cirka tre perioder. (Till exempel verkar en nedgång ha skett i period 21, men prognoserna vänder inte om till flera perioder senare.) Notera att de långsiktiga prognoserna från SMA-modellen är en horisontell rak linje, precis som i slumpmässig promenad modell. Således antar SMA-modellen att det inte finns någon trend i data. Men medan prognoserna från den slumpmässiga promenadmodellen helt enkelt motsvarar det senast observerade värdet är prognoserna från SMA-modellen lika med ett vägt genomsnitt av de senaste värdena. De konfidensbegränsningar som beräknas av Statgraphics för de långsiktiga prognoserna för det enkla glidande genomsnittet blir inte större eftersom prognostiseringshorisonten ökar. Det här är uppenbarligen inte korrekt Tyvärr finns det ingen underliggande statistisk teori som berättar hur förtroendeintervallen borde utvidgas för denna modell. Det är emellertid inte så svårt att beräkna empiriska uppskattningar av konfidensgränserna för prognosen för längre tid. Du kan till exempel skapa ett kalkylblad där SMA-modellen skulle användas för att prognostisera två steg framåt, 3 steg framåt etc. i det historiska dataprov. Därefter kan du beräkna felfunktionens avvikelser vid varje prognoshorisont och sedan konstruera konfidensintervaller för längre siktprognoser genom att lägga till och subtrahera multiplar med lämplig standardavvikelse. Om vi försöker ett 9-sikt enkelt glidande medelvärde får vi ännu smidigare prognoser och mer av en långsammare effekt: Medelåldern är nu 5 perioder (91) 2). Om vi tar ett 19-årigt glidande medel ökar medeltiden till 10: Observera att prognoserna nu försvinner nu bakom vändpunkter med cirka 10 perioder. Vilken mängd utjämning är bäst för denna serie Här är en tabell som jämför deras felstatistik, inklusive ett 3-årigt genomsnitt: Modell C, det 5-åriga glidande genomsnittet, ger det lägsta värdet av RMSE med en liten marginal över 3 term och medellång sikt, och deras andra statistik är nästan identiska. Så, bland modeller med mycket liknande felstatistik kan vi välja om vi föredrar lite mer lyhördhet eller lite mer jämnhet i prognoserna. (Return to top of page.) Browns Enkel exponentiell utjämning (exponentiellt viktad glidande medelvärde) Den enkla glidande medelmodellen beskriven ovan har den oönskade egenskapen som den behandlar de senaste k-observationerna lika och fullständigt ignorerar alla föregående observationer. Intuitivt bör tidigare data diskonteras på ett mer gradvis sätt - till exempel bör den senaste observationen få lite mer vikt än 2: a senast, och den 2: a senaste bör få lite mer vikt än den 3: e senaste, och så vidare. Den enkla exponentiella utjämningens (SES) - modellen åstadkommer detta. Låt 945 beteckna en quotsmoothing constantquot (ett tal mellan 0 och 1). Ett sätt att skriva modellen är att definiera en serie L som representerar den nuvarande nivån (dvs lokal medelvärde) för serien som uppskattad från data fram till idag. Värdet på L vid tid t beräknas rekursivt från sitt eget tidigare värde så här: Således är det nuvarande utjämnade värdet en interpolation mellan det tidigare jämnda värdet och den aktuella observationen, där 945 styr närheten av det interpolerade värdet till det senaste observation. Prognosen för nästa period är helt enkelt det nuvarande utjämnade värdet: Likvärdigt kan vi uttrycka nästa prognos direkt i form av tidigare prognoser och tidigare observationer, i någon av följande ekvivalenta versioner. I den första versionen är prognosen en interpolation mellan föregående prognos och tidigare observation: I den andra versionen erhålls nästa prognos genom att justera föregående prognos i riktning mot det föregående felet med en bråkdel av 945. Är felet gjort vid tid t. I den tredje versionen är prognosen ett exponentiellt vägt (dvs. rabatterat) glidande medelvärde med rabattfaktor 1-945: Interpolationsversionen av prognosformuläret är det enklaste att använda om du genomför modellen på ett kalkylblad: det passar in i en encell och innehåller cellreferenser som pekar på föregående prognos, föregående observation och cellen där värdet 945 lagras. Observera att om 945 1 motsvarar SES-modellen en slumpmässig gångmodell (utan tillväxt). Om 945 0 motsvarar SES-modellen den genomsnittliga modellen, förutsatt att det första släta värdet sätts lika med medelvärdet. (Återgå till början av sidan.) Medelåldern för data i prognosen för enkel exponentiell utjämning är 1 945 i förhållande till den period som prognosen beräknas för. (Detta är inte tänkt att vara uppenbart, men det kan enkelt visas genom att utvärdera en oändlig serie.) Den enkla, snabba genomsnittliga prognosen tenderar därför att ligga bakom vändpunkter med cirka 1 945 perioder. Till exempel, när 945 0,5 är fördröjningen 2 perioder när 945 0,2 är fördröjningen 5 perioder när 945 0,1 är fördröjningen 10 perioder, och så vidare. För en given genomsnittlig ålder (dvs mängden fördröjning) är prognosen för enkel exponentiell utjämning (SES) något överlägsen SMA-prognosen (Simple Moving Average) eftersom den lägger relativt större vikt vid den senaste observationen, dvs. det är något mer quotresponsivequot för förändringar som inträffade under det senaste förflutna. Exempelvis har en SMA-modell med 9 villkor och en SES-modell med 945 0,2 båda en genomsnittlig ålder på 5 för data i sina prognoser, men SES-modellen lägger mer vikt på de sista 3 värdena än SMA-modellen och vid Samtidigt gör det inte helt 8220forget8221 om värden som är mer än 9 perioder gamla, vilket visas i det här diagrammet. En annan viktig fördel med SES-modellen över SMA-modellen är att SES-modellen använder en utjämningsparameter som kontinuerligt varierar, så att den lätt kan optimeras genom att använda en kvotsolverquot-algoritm för att minimera det genomsnittliga kvadratfelet. Det optimala värdet på 945 i SES-modellen för denna serie visar sig vara 0,2961, som visas här: Medelåldern för data i denna prognos är 10,2961 3,4 perioder, vilket liknar det för ett 6-sikt enkelt glidande medelvärde. De långsiktiga prognoserna från SES-modellen är en horisontell rak linje. som i SMA-modellen och den slumpmässiga promenadmodellen utan tillväxt. Observera dock att de konfidensintervaller som beräknas av Statgraphics avviker nu på ett rimligt sätt, och att de är väsentligt smalare än konfidensintervallen för slumpmässig promenadmodell. SES-modellen förutsätter att serien är något mer förutsägbar än den slumpmässiga promenadmodellen. En SES-modell är egentligen ett speciellt fall av en ARIMA-modell. så ger den statistiska teorin om ARIMA-modeller en bra grund för beräkning av konfidensintervall för SES-modellen. I synnerhet är en SES-modell en ARIMA-modell med en icke-säsongsskillnad, en MA (1) term och ingen konstant term. annars känd som en quotARIMA (0,1,1) modell utan constantquot. MA (1) - koefficienten i ARIMA-modellen motsvarar kvantiteten 1-945 i SES-modellen. Om du till exempel passar en ARIMA (0,1,1) modell utan konstant till serien som analyseras här, visar den uppskattade MA (1) - koefficienten sig att vara 0.7029, vilket är nästan exakt en minus 0,2961. Det är möjligt att lägga till antagandet om en icke-noll konstant linjär trend till en SES-modell. För att göra detta, ange bara en ARIMA-modell med en icke-sekundär skillnad och en MA (1) term med en konstant, dvs en ARIMA (0,1,1) modell med konstant. De långsiktiga prognoserna kommer då att ha en trend som är lika med den genomsnittliga trenden som observerats under hela estimeringsperioden. Det går inte att göra detta i samband med säsongjustering, eftersom säsongsjusteringsalternativen är inaktiverade när modelltypen är inställd på ARIMA. Du kan emellertid lägga till en konstant långsiktig exponentiell trend till en enkel exponentiell utjämningsmodell (med eller utan säsongsjustering) genom att använda inflationsjusteringsalternativet i prognosproceduren. Den lämpliga quotinflationen (procentuell tillväxt) per period kan beräknas som lutningskoefficienten i en linjär trendmodell som är anpassad till data i samband med en naturlig logaritmtransformation, eller det kan baseras på annan oberoende information om långsiktiga tillväxtutsikter . (Återgå till början av sidan.) Browns Linear (ie double) Exponentiell utjämning SMA-modellerna och SES-modellerna antar att det inte finns någon trend av något slag i data (vilket vanligtvis är OK eller åtminstone inte för dåligt för 1- stegprognoser när data är relativt bullriga), och de kan modifieras för att införliva en konstant linjär trend som visas ovan. Vad sägs om kortsiktiga trender Om en serie visar en växande växthastighet eller ett konjunkturmönster som uppenbarar sig klart mot bruset, och om det finns behov av att prognostisera mer än en period framåt, kan uppskattningen av en lokal trend också vara en fråga. Den enkla exponentiella utjämningsmodellen kan generaliseras för att erhålla en linjär exponentiell utjämning (LES) - modell som beräknar lokala uppskattningar av både nivå och trend. Den enklaste tidsvarierande trendmodellen är Browns linjära exponentiell utjämningsmodell, som använder två olika slätmade serier som centreras vid olika tidpunkter. Prognosformeln baseras på en extrapolering av en linje genom de två centra. (En mer sofistikerad version av denna modell, Holt8217s, diskuteras nedan.) Den algebraiska formen av Brown8217s linjär exponentiell utjämningsmodell, som den enkla exponentiella utjämningsmodellen, kan uttryckas i ett antal olika men likvärdiga former. Den här kvotens kvotstandardkvot uttrycks vanligtvis enligt följande: Låt S beteckna den singeljämnade serien som erhållits genom att applicera enkel exponentiell utjämning till serie Y. Dvs, värdet på S vid period t ges av: (Minns att, under enkel exponentiell utjämning, detta skulle vara prognosen för Y vid period t1.) Låt sedan Squot beteckna den dubbelsidiga serien erhållen genom att applicera enkel exponentiell utjämning (med samma 945) till serie S: Slutligen prognosen för Y tk. för vilken kgt1 som helst, ges av: Detta ger e 1 0 (det vill säga lura lite och låt den första prognosen motsvara den faktiska första observationen) och e 2 Y 2 8211 Y 1. varefter prognoser genereras med hjälp av ekvationen ovan. Detta ger samma monterade värden som formeln baserad på S och S om de senare startades med användning av S1S1Y1. Denna version av modellen används på nästa sida som illustrerar en kombination av exponentiell utjämning med säsongsjustering. Holt8217s linjär exponentiell utjämning Brown8217s LES-modell beräknar lokala uppskattningar av nivå och trend genom att utjämna de senaste uppgifterna, men det faktum att det gör det med en enda utjämningsparameter ställer in en begränsning av de datamönster som den kan passa: nivån och trenden får inte variera till oberoende priser. Holt8217s LES-modell adresserar problemet genom att inkludera två utjämningskonstanter, en för nivån och en för trenden. När som helst t, som i Brown8217s modell, finns det en uppskattning L t på lokal nivå och en uppskattning T t av den lokala trenden. Här rekryteras de rekursivt från värdet av Y observerat vid tid t och de tidigare uppskattningarna av nivån och trenden med två ekvationer som applicerar exponentiell utjämning till dem separat. Om den beräknade nivån och trenden vid tiden t-1 är L t82091 och T t-1. respektive prognosen för Y tshy som skulle ha gjorts vid tid t-1 är lika med L t-1 T t-1. När det verkliga värdet observeras beräknas den uppdaterade uppskattningen av nivån rekursivt genom interpolering mellan Y tshy och dess prognos L t-1 T t 1 med vikter av 945 och 1- 945. Förändringen i beräknad nivå, nämligen L t 8209 L t82091. kan tolkas som en bullrig mätning av trenden vid tiden t. Den uppdaterade uppskattningen av trenden beräknas sedan rekursivt genom interpolering mellan L t 8209 L t82091 och den tidigare uppskattningen av trenden, T t-1. Användning av vikter av 946 och 1-946: Tolkningen av trendutjämningskonstanten 946 är analog med den för nivåutjämningskonstanten 945. Modeller med små värden av 946 förutsätter att trenden ändras endast mycket långsamt över tiden, medan modeller med större 946 antar att det förändras snabbare. En modell med en stor 946 tror att den avlägsna framtiden är väldigt osäker, eftersom fel i trendberäkning blir ganska viktiga vid prognoser mer än en period framåt. (Återgå till början av sidan.) Utjämningskonstanterna 945 och 946 kan beräknas på vanligt sätt genom att minimera medelkvadratfelet i de 1-stegs-prognoserna. När detta görs i Statgraphics visar uppskattningarna att vara 945 0.3048 och 946 0.008. Det mycket lilla värdet av 946 innebär att modellen antar mycket liten förändring i trenden från en period till nästa, så i grunden försöker denna modell att uppskatta en långsiktig trend. I analogi med begreppet medelålder för de data som används för att uppskatta den lokala nivån i serien, är medelåldern för de data som används för att uppskatta den lokala trenden proportionell mot 1 946, men inte exakt lika med den . I detta fall visar det sig att vara 10.006 125. Detta är ett mycket exakt nummer eftersom precisionen av uppskattningen av 946 är verkligen 3 decimaler, men den har samma generella storleksordning som provstorleken på 100, så denna modell är medeltal över ganska mycket historia för att beräkna trenden. Prognosplotten nedan visar att LES-modellen beräknar en något större lokal trend i slutet av serien än den ständiga trenden som beräknas i SEStrend-modellen. Det uppskattade värdet på 945 är också nästan identiskt med det som erhållits genom att montera SES-modellen med eller utan trend, så det är nästan samma modell. Nu ser dessa ut som rimliga prognoser för en modell som beräknas beräkna en lokal trend. Om du 8220eyeball8221 ser det här, ser det ut som om den lokala trenden har vänt sig nedåt i slutet av serien. Vad har hänt Parametrarna i denna modell har uppskattats genom att minimera det kvadrerade felet i 1-stegs-prognoser, inte längre prognoser, i vilket fall trenden gör inte en stor skillnad. Om allt du tittar på är 1 steg framåt, ser du inte den större bilden av trender över (säg) 10 eller 20 perioder. För att få denna modell mer i linje med vår ögonbolls extrapolering av data kan vi manuellt justera trendutjämningskonstanten så att den använder en kortare baslinje för trendberäkning. Om vi till exempel väljer att ställa in 946 0,1, är medelåldern för de data som används vid uppskattning av den lokala trenden 10 perioder, vilket innebär att vi medeltar trenden över de senaste 20 perioderna eller så. Here8217s vad prognosplottet ser ut om vi sätter 946 0,1 samtidigt som ni håller 945 0.3. Detta ser intuitivt rimligt ut för denna serie, men det är troligen farligt att extrapolera denna trend mer än 10 perioder i framtiden. Vad sägs om felstatistik Här är en modelljämförelse för de två modellerna ovan och tre SES-modeller. Det optimala värdet på 945. För SES-modellen är ungefär 0,3, men liknande resultat (med något mer eller mindre responsivitet) erhålls med 0,5 och 0,2. (A) Hål linjär exp. utjämning med alfa 0,3048 och beta 0,008 (B) Hål linjär exp. utjämning med alfa 0,3 och beta 0,1 (C) Enkel exponentiell utjämning med alfa 0,5 (D) Enkel exponentiell utjämning med alfa 0,3 (E) Enkel exponentiell utjämning med alfa 0,2 Deras statistik är nästan identisk, så vi kan verkligen göra valet på grundval av prognosfel i 1 steg före proverna. Vi måste falla tillbaka på andra överväganden. Om vi starkt tror att det är vettigt att basera den nuvarande trendberäkningen på vad som hänt under de senaste 20 perioderna eller så kan vi göra ett ärende för LES-modellen med 945 0,3 och 946 0,1. Om vi vill vara agnostiska om det finns en lokal trend, kan en av SES-modellerna vara enklare att förklara och skulle också ge fler mitten av vägtrafikprognoserna för de kommande 5 eller 10 perioderna. (Tillbaka till början av sidan.) Vilken typ av trend-extrapolation är bäst: Horisontell eller linjär. Empiriska bevis tyder på att om uppgifterna redan har justerats (om det behövs) för inflationen, kan det vara oskäligt att extrapolera kortsiktiga linjära trender mycket långt in i framtiden. Tendenser som uppenbaras idag kan sänkas i framtiden på grund av olika orsaker som produktförstörelse, ökad konkurrens och konjunkturnedgångar eller uppgångar i en bransch. Av denna anledning utför enkel exponentiell utjämning ofta bättre utom provet än vad som annars skulle kunna förväntas, trots sin kvotiv kvot horisontell trend extrapolering. Dämpade trendmodifieringar av den linjära exponentiella utjämningsmodellen används också i praktiken för att införa en konservatismedel i sina trendprognoser. Den demoniserade trenden LES-modellen kan implementeras som ett speciellt fall av en ARIMA-modell, i synnerhet en ARIMA-modell (1,1,2). Det är möjligt att beräkna konfidensintervaller kring långsiktiga prognoser som produceras av exponentiella utjämningsmodeller, genom att betrakta dem som speciella fall av ARIMA-modeller. (Var försiktig: inte alla mjukvaror beräknar konfidensintervall för dessa modeller korrekt.) Bredden på konfidensintervallet beror på (i) modellens RMS-fel, (ii) utjämningstypen (enkel eller linjär) (iii) värdet (er) av utjämningskonstanten (erna) och (iv) antalet perioder framåt du prognoserar. I allmänhet sprids intervallet snabbare, eftersom 945 blir större i SES-modellen och de sprider sig mycket snabbare när linjär snarare än enkel utjämning används. Detta ämne diskuteras vidare i avsnittet ARIMA-modeller i anteckningarna. (Tillbaka till början av sidan.) I många experiment i vetenskap förändras de sanna signalamplituderna (y-axelvärdena) ganska smidigt som en funktion av x-axelvärdena, medan många typer av brus ses som snabba, slumpmässiga förändringar i amplitud från punkt till punkt inom signalen. I den senare situationen kan det vara användbart att försöka minska bullret genom en process som kallas utjämning. Vid utjämning ändras datapunkterna för en signal så att individuella punkter som är högre än de omedelbart intilliggande punkterna (förmodligen på grund av brus) reduceras och punkter som är lägre än de intilliggande punkterna ökas. Detta leder naturligtvis till en mjukare signal (och ett långsammare stegsvar vid signalförändringar). Så länge den sanna underliggande signalen faktiskt är mjuk, blir den sanna signalen inte mycket snedvridd genom utjämning, men högfrekvent brus kommer att minskas. När det gäller frekvenskomponenterna hos en signal fungerar en utjämningsoperation som ett lågpassfilter. reducera högfrekventa komponenter och passera lågfrekventa komponenter med liten förändring. Utjämningsalgoritmer. De flesta utjämningsalgoritmer är baserade på skift - och multipliceringsmetoden, där en grupp av intilliggande punkter i de ursprungliga data multipliceras punkt för punkt med en uppsättning tal (koefficienter) som definierar den släta formen, produkterna läggs upp och dividerat med summan av koefficienterna, som blir en punkt av jämndat data, skiftas uppsättningen av koefficienter en punkt nedom de ursprungliga data och processen upprepas. Den enklaste utjämningsalgoritmen är den rektangulära boxvagnen eller det obetydda glidande medelglattet. Det ersätter helt enkelt varje punkt i signalen med medeltalet av m intilliggande punkter, där m är ett positivt heltal som kallas den smidiga bredden. Till exempel, för en 3-punkts jämna (m 3): för j 2 till n-1, där S j j j pekar i den jämna signalen, Y j j den punkten i den ursprungliga signalen och n är den totala antal poäng i signalen. Liknande släta operationer kan konstrueras för önskad slät bredd, m. Vanligtvis är m ett udda nummer. Om bruset i data är vitt brus (det vill säga jämnt fördelat över alla frekvenser) och dess standardavvikelse är D. då kommer standardavvikelsen för det brus som återstår i signalen efter det första passet av en obestruket glidgods, att vara ungefär s över kvadratroten av m (D sqrt (m)), där m är den släta bredden. Trots sin enkelhet är detta smidigt faktiskt optimalt för det vanliga problemet med att reducera vitt brus samtidigt som det skarpaste stegsvaret hålls. Svaret på en stegförändring är faktiskt linjär. så det här filtret har fördelen av att reagera helt utan någon återstående effekt med sin responstid. vilket är lika med den släta bredden dividerad med samplingsfrekvensen. Den triangulära släta är som den rektangulära släta ovanför, förutom att den genomför en viktad utjämningsfunktion. För en 5-punkts slät (m 5): för j 3 till n-2 och på liknande sätt för andra jämna bredder (se kalkylbladet UnitGainSmooths. xls). I båda dessa fall är heltalet i nämnaren summan av koefficienterna i täljaren, vilket resulterar i en enhetstegning som inte har någon effekt på signalen där den är en rak linje och som bevarar området under toppar. Det är ofta användbart att applicera en utjämningsoperation mer än en gång, det vill säga att släta en redan jämn signal, för att bygga längre och mer komplicerade slätningar. Till exempel motsvarar den 5-punkts triangulära släta ovan två passager med en 3-punkts rektangulär slät. Tre pass av ett 3-punkts rektangulärt jämnt resultat i en 7-punkts pseudo-gaussisk eller höackack, för vilken koefficienterna är i förhållandet 1: 3: 6: 7: 6: 3: 1. Den generella regeln är att n-passager med en w-bredd ger en jämn resultat i en kombinerad jämn bredd av n w-n 1. Exempelvis resulterar 3 pass av en 17-punkts slät i en 49-punkts slät. Dessa multi-pass-smidningar är mer effektiva när det gäller att reducera högfrekventa ljud i signalen än en rektangulär slät, men uppvisar långsammare stegsvar. I alla dessa slätningar väljes bredden på den släta mn för att vara ett udda heltal, så att de släta koefficienterna är symmetriskt balanserade runt centralpunkten, vilket är viktigt eftersom det bevarar x-axelns position av toppar och andra egenskaper i signal. (Detta är särskilt kritiskt för analytiska och spektroskopiska tillämpningar eftersom toppositionerna ofta är viktiga mätmål). Observera att vi antar här att signalens x-axelintervall är likformig, det vill säga att skillnaden mellan x-axelvärdena hos intilliggande punkter är densamma i hela signalen. Detta antas också i många av de andra signalbehandlingstekniker som beskrivs i denna uppsats, och det är en mycket vanlig (men inte nödvändig) egenskap hos signaler som förvärvas av automatiserad och datoriserad utrustning. Savitzky-Golay släta är baserad på minsta kvadrera montering av polynomier till segment av data. Algoritmen diskuteras i wire. tu-bs. deOLDWEBmameyercmrsavgol. pdf. Jämfört med glidgodsens smidighet är Savitzky-Golay slät mindre effektiv vid minskning av ljud, men effektivare för att behålla formen på den ursprungliga signalen. Det är kapabelt att differentiera såväl som utjämning. Algoritmen är mer komplex och beräkningstiderna är större än de smidiga typerna som diskuteras ovan, men med moderna datorer är skillnaden inte signifikant och kod på olika språk är allmänt tillgänglig online. Se SmoothingComparison. html. Formen av någon utjämningsalgoritm kan bestämmas genom att applicera den släta till en delta-funktion. en signal som består av alla nollor utom för en punkt, vilket demonstreras av det enkla MatlabOctave-skriptet DeltaTest. m. Brusreducering . Utjämning minskar vanligtvis bruset i en signal. Om bruset är vitt (det vill säga jämnt fördelat över alla frekvenser) och dess standardavvikelse är D. då kommer standardavvikelsen för bruset som återstår i signalen efter ett pass av en rektangulär slät att vara approximativt D kvadrat (m), där m är den släta bredden. Om en triangulär slät används istället blir bruset något mindre, ungefär D 0,8sqrt (m). Utjämningsoperationer kan appliceras mer än en gång: det vill säga en tidigare jämn signal kan slätas igen. I vissa fall kan detta vara användbart om det finns mycket högfrekventa ljud i signalen. Dock är brusreduceringen för vitt brus mindre i varje på varandra följande slät. Till exempel reducerar tre passager med en rektangulär slät vitstrål med en faktor på ungefär D 0,7sqrt (m), endast en liten förbättring över två passager. Frekvensfördelningen av ljud, betecknad med ljudfärg. påverkar kraftigt utjämningsförmågan för att minska bruset. MatlabOctave-funktionen NoiseColorTest. m jämför effekten av en 20-punkts boxbil (obesvikt glidande medelvärde) jämn på standardavvikelsen för vitt, rosa och blått brus, som alla har en ursprunglig ojämn standardavvikelse på 1,0. Eftersom utjämning är en lågpassfiltreringsprocess, påverkar det lågfrekventa (rosa och röda) ljud och påverkar högfrekventa (blå och violett) ljud mer än det gör vitt brus. Observera att beräkningen av standardavvikelsen är oberoende av dataens ordning och sålunda av sin frekvensdistributionssortering av en uppsättning data ändras inte dess standardavvikelse. Standardavvikelsen för en sinusvåg är oberoende av dess frekvens. Utjämning ändrar emellertid både frekvensfördelningen och standardavvikelsen för en datamängd. Slutverk och problem med borttappad poäng. I ekvationerna ovan definieras den 3-punkts rektangulära släta endast för j2 till n-1. Det finns inte tillräckligt med data i signalen för att definiera en komplett 3-punkts slät för den första punkten i signalen (j 1) eller för den sista punkten (j n). eftersom det inte finns några datapunkter före den första punkten eller efter sista punkten. (På samma sätt definieras en 5-punkts smidig endast för j 3 till n-2, och därför kan en smidig inte beräknas för de två första punkterna eller för de sista två punkterna). I allmänhet kommer en m-breddsläge att vara (m -1) 2 punkter vid signalets början och (m -1) 2 punkter vid slutet av signalen för vilken en fullständig m-breddsläge inte kan beräknas på vanligt sätt. Vad man ska göra Det finns två tillvägagångssätt. En är att acceptera förlusten av poäng och trimma bort dessa punkter eller ersätta dem med nollor i den släta signalen. (Det är den metod som tas i de flesta siffrorna i detta dokument). Det andra tillvägagångssättet är att använda progressivt mindre jämnheter vid signalens ändar, till exempel för att använda 2, 3, 5, 7-punktsjämna för signalpunkterna 1, 2, 3 och 4. För punkterna n, n-1 , n-2, n-3. respektive. Det senare tillvägagångssättet kan vara att föredra om signalets kanter innehåller kritisk information, men det ökar körtiden. Den snabbsmooth-funktion som diskuteras nedan kan använda någon av dessa två metoder. Exempel på utjämning. Ett enkelt exempel på utjämning visas i Figur 4. Den vänstra halvan av denna signal är en högljudd topp. Den högra halvan är samma topp efter att ha genomgått en triangulär utjämningsalgoritm. Bullret är kraftigt minskat medan toppen själv knappast ändras. Det reducerade bruset gör att signalegenskaperna (toppläge, höjd, bredd, yta etc.) kan mätas mer noggrant genom visuell inspektion. Figur 4. Den vänstra halvan av denna signal är en högljudd topp. Den högra halvan är samma topp efter att ha genomgått en utjämningsalgoritm. Bullret reduceras kraftigt medan toppunkten knappast ändras, vilket gör det enklare att mäta toppositionen, höjden och bredden direkt genom grafisk eller visuell uppskattning (men det förbättrar inte mätningar gjorda med minsta kvadratmetoder se nedan). Ju större den släta bredden desto större bullerreduktion men desto större är risken för att signalen förvrängs av utjämningsoperationen. Det optimala valet av jämn bredd beror på bredden och formen på signalen och digitaliseringsintervallet. För topptypsignaler är den kritiska faktorn det släta förhållandet. förhållandet mellan den släta bredden m och antalet punkter i toppens halvbredd. I allmänhet förbättrar utjämningsförhållandet signal-brusförhållandet men orsakar en minskning av amplituden och ökningen av toppens bandbredd. Observera att den släta bredden kan uttryckas på två olika sätt: (a) som antalet datapunkter eller (b) som x-axelintervallet (för spektroskopiska data vanligtvis i nm eller i frekvensenheter). De två är helt enkelt relaterade: antalet datapunkter är helt enkelt intervallet x-axel gånger ökningen mellan intilliggande x-axelvärden. Det släta förhållandet är detsamma i båda fallen. Figurerna ovan visar exempel på effekten av tre olika släta bredder på bullriga Gauss-formade toppar. I figuren till vänster har toppen en (sann) höjd av 2,0 och det finns 80 poäng i halvbredden på toppen. Den röda linjen är den ursprungliga ojämna toppen. De tre överlagda gröna linjerna är resultatet av att utjämna denna topp med en triangulär jämn bredd (från topp till botten) 7, 25 och 51 poäng. Eftersom toppbredden är 80 poäng, är de smidiga förhållandena för dessa tre jämnheter 780 0,09, 2580 0,31 respektive 5180 0,64. När den smidiga bredden ökar minskar bruset gradvis men topphöjden minskar också något. För den största släta ökar toppbredden något. I figuren till höger har den ursprungliga toppen (i rött) en sann höjd på 1,0 och en halv bredd på 33 poäng. (Det är också mindre bullrigt än exemplet till vänster.) De tre överlagda gröna linjerna är resultatet av samma tre triangulära jämnheter i bredd (från topp till botten) 7, 25 och 51 poäng. Men eftersom toppbredd i detta fall bara är 33 poäng är de smidiga förhållandena för dessa tre slätningar större - 0,21, 0,76 respektive 1,55. Du kan se att toppdistorsionseffekten (minskning av topphöjd och ökning i toppbredd) är större för den smalare toppen eftersom de smidiga förhållandena är högre. Smidiga förhållanden större än 1,0 används sällan på grund av överdriven toppförvrängning. Observera att även i värsta fall inte topplägena uppnås (förutsatt att de ursprungliga topparna var symmetriska och inte överlappade av andra toppar). Om du behåller toppens form är viktigare än att optimera signal-brusförhållandet, har Savitzky-Golay fördelen över glidgods. I samtliga fall förblir det totala arealet under toppen oförändrat. Om toppbredderna varierar väsentligt, en adaptiv slät. som tillåter den smidiga bredden att variera över signalen, kan användas. Problemet med utjämning är att det ofta är mindre fördelaktigt än du kanske tror. Det är viktigt att påpeka att utjämningsresultat som illustreras i figuren ovan kan vara bedrägligt imponerande eftersom de använder ett enda prov av en högljudd signal som mjukas i olika grader. Detta medför att betraktaren underskattar bidraget från lågfrekventa brus, vilket är svårt att uppskatta visuellt eftersom det finns så få lågfrekventa cykler i signalrekordet. Detta problem kan visualiseras genom att spela in ett antal oberoende prover av en högljudd signal bestående av en enkel topp, som illustreras i de två figurerna nedan. Dessa siffror visar tio överlagda tomter med samma topp men med självständigt vitt brus, varje plottat med en annan linjefärg, osmoothed till vänster och jämnas till höger. Inspektion av de släta signalerna till höger visar tydligt variationen i toppläge, höjd och bredd mellan de 10 proverna som orsakas av det lågfrekventa bruset kvar i de släta signalerna. Utan ljudet skulle varje topp ha en topphöjd på 2, toppcentret 500 och en bredd på 150. Bara för att en signal ser mjuk ut betyder det inte att det finns något ljud. Lågfrekventa brus kvar i signalerna efter utjämning kommer fortfarande att störa precist mätning av topposition, höjd och bredd. (Den generering av skript under varje figur kräver att funktionerna Gaussian. m, whitenoise. m och fastsmooth. m laddas ner från Tinyurlcey8rwh.) Det bör vara klart att utjämning sällan helt kan eliminera brus, eftersom det flesta ljudet sprider sig över ett brett frekvensomfång och utjämning minskar bara bullret i en del av sitt frekvensområde. Endast för vissa mycket specifika typer av brus (t. ex. diskret frekvensbrus eller enpunktspinnar) finns det hopp om någonting nära fullständig bruseliminering. Figuren till höger nedan är en annan exempelsignal som illustrerar några av dessa principer. Signalen består av två gaussiska toppar, en lokaliserad vid x50 och den andra vid x150. Båda toppar har en topphöjd på 1,0 och en topphalvbredd på 10 och ett normalt distribuerat slumpmässigt vitt brus med en standardavvikelse på 0,1 har lagts till hela signalen. X-axelprovtagningsintervallet är emellertid annorlunda för de två toppar sin 0,1 för den första toppen (från x0 till 100) och 1,0 för den andra toppen (från x100 till 200). Det innebär att den första toppen karakteriseras av tio gånger fler poäng än den andra toppen. Det kan verka som att den första toppen är bullrigare än den andra, men det är bara en illusion. Signalförhållandet för båda toppar är 10. Den andra toppen ser mindre bullriga bara för att det finns färre ljudprover där och vi tenderar att underskatta dispersionen av småprover. Resultatet av detta är att när signalen släpas, är den andra toppen mycket mer sannolikt att den snedvrids av det släta (det blir kortare och bredare) än den första toppen. Den första toppen kan tolerera en mycket bredare jämn bredd, vilket resulterar i en större grad av brusreducering. (På samma sätt, om båda toppar mäts med minsta kvadratkurvanpassningsmetoden är passformen för den första toppen stabilare med bruset och de uppmätta parametrarna för den toppen kommer att vara ungefär 3 gånger mer exakta än den andra toppen eftersom det finns är 10 gånger mer datapunkter i den toppen, och mätmåttets precision förbättras ungefär med kvadratroten på antalet datapunkter om bruset är vitt). Du kan ladda ner datafilen utx i TXT-format eller i Matlab MAT-format. Optimering av utjämning. När jämn bredd ökar ökar utjämningsförhållandet, bruset minskar snabbt först, då långsammare, och topphöjden reduceras också, långsamt först, sedan snabbare. Bullerreduktionen beror på den släta bredden, den släta typen (t ex rektangulär, triangulär osv.) Och ljudfärgen, men topphöjdsminskningen beror också på toppbredd. Resultatet är att signal-brusen (definierad som förhållandet mellan topphöjden av brusets standardavvikelse) ökar snabbt först och når sedan ett maximum. Detta illustreras i animationen till vänster för en Gaussisk topp med vitt brus (producerat av detta MatlabOctave-skript). Den maximala förbättringen i signal-brusförhållandet beror på antalet punkter i toppen: ju fler punkter i toppen, desto större släta bredder kan användas och desto större bullerreduktion. Denna figur illustrerar också att det mesta av brusreduceringen beror på högfrekventa komponenter i bruset, medan mycket av lågfrekvent brus kvarstår i signalen, även när det slätas. Vilket är det bästa släta förhållandet Det beror på syftet med toppmätningen. Om det ultimata målet med mätningen är att mäta topphöjd eller bredd, ska smidiga förhållanden under 0,2 användas och Savitzky-Golay-slätan är föredragen. Men om målsättningen med mätarna t är att mäta toppläget (x-axelvärdet av toppen) kan större glatta förhållanden användas om så önskas, eftersom utjämning har liten effekt på toppläget (såvida inte toppen är asymmetrisk eller ökningen i toppbredd är så mycket att det medför att närliggande toppar överlappar varandra). Om toppen faktiskt bildas av två underliggande toppar som överlappar så mycket att de verkar vara en topp, är kurvanpassning det enda sättet att mäta parametrarna för de underliggande topparna. Tyvärr motsvarar det optimala signal-brusförhållandet ett jämnt förhållande som väsentligt snedvrider toppen, varför kurvanpassning av de osmälta data ofta föredras. I kvantitativa kemiska analysapplikationer baserade på kalibrering med standardprover är topphöjdreduktionen som orsakas av utjämning inte så viktig. Om samma signalbehandlingsoperationer tillämpas på proverna och till standarderna, kommer topphöjdsreduktionen av standardsignalerna att vara exakt densamma som för provsignalerna och effekten avbryter exakt. I sådana fall kan smidiga bredder från 0,5 till 1,0 användas om det behövs för att ytterligare förbättra signal-brusförhållandet, som visas i figuren till vänster (för en enkel glidande medelrektangulär släthet). I praktisk analytisk kemi behövs sällan absoluta topphöjdmätningar. Kalibrering mot standardlösningar är regeln. (Kom ihåg att målet med kvantitativ analys inte är att mäta en signal utan snarare att mäta koncentrationen av det okända.) Det är emellertid väldigt viktigt att tillämpa exakt samma signalbehandlingssteg till standardsignalerna med avseende på provsignalerna, annars kan ett stort systematiskt fel uppstå. För en mer detaljerad jämförelse av alla fyra utjämningstyper som beskrivs ovan, se SmoothingComparison. html. (a) av kosmetiska skäl, förbereda en snyggare eller mer dramatisk bild av en signal för visuell inspektion eller publikationer, särskilt för att betona långsiktigt beteende på kort sikt. eller (b) om signalen därefter analyseras med ett förfarande som skulle nedbrytas genom närvaron av för högt högfrekvent brus i signalen, exempelvis om topparnas höjder ska bestämmas visuellt eller grafiskt eller genom att använda MAX-funktionen, av bredden av topparna mäts av halvbreddsfunktionen, eller om läget av maxima, minima eller böjpunkter i signalen bestäms automatiskt genom detektering av nollkorsningar i derivat av signalen. Optimering av mängden och typen av utjämning är viktig i dessa fall (se Differentiation. htmlSmothing). Men i allmänhet, om en dator är tillgänglig för att göra kvantitativa mätningar, är det bättre att använda minsta kvadreringsmetoder på de ojämna data, i stället för grafiska uppskattningar av jämn data. Om ett kommersiellt instrument har möjlighet att släta ut data för dig, är det bäst att inaktivera utjämningen och spela in och spara ojämna data, du kan alltid släta det själv senare för visuell presentation och det är bättre att använda de osmoothed data för minst - squares montering eller annan behandling som du kanske vill göra senare. Utjämning kan användas för att lokalisera toppar men det ska inte användas för att mäta toppar. Vård måste användas vid utformning av algoritmer som utnyttjar utjämning. Till exempel i en populär teknik för toppfynd och mätning. toppar lokaliseras genom att detektera nedåtriktade nollkorsningar i det slätade första derivatet. men positionen, höjden och bredden av varje topp bestäms av minsta kvadratkurvanpassning av ett segment av ursprungliga osmälta data i närheten av nollkorsningen. På så sätt, även om kraftig utjämning är nödvändig för att åstadkomma tillförlitlig diskriminering av bullertoppar, förvrängs toppparametrarna som extraheras genom kurvanpassning inte genom utjämningen. (a) utjämning kommer inte avsevärt att förbättra noggrannheten hos parametermätningen med minsta kvadratmätningar mellan separata oberoende signalprover, (b) alla utjämningsalgoritmer är åtminstone något förlustiga, vilket medför åtminstone viss förändring i signalform och amplitud, (c) Det är svårare att utvärdera passformen genom att inspektera resterna om data smutsas, eftersom jämna ljud kan misstas för en verklig signal. och (d) utjämning av signalen undervärderar allvarligt parametervärdena som förutspås av utbredning av felberäkningar och bootstrap-metoden. Hantera spikar och outliers. Ibland är signalerna kontaminerade med mycket långa, smala spikar eller utjämnare som förekommer i slumpmässiga intervaller och med slumpmässiga amplitud, men med bredder på endast en eller några punkter. Det ser inte bara grimt ut, men det gör också antagandena om minsta kvadrater beräkningar eftersom det inte är normalt distribuerat slumpmässigt brus. Denna typ av störning är svår att eliminera med användning av ovanstående utjämningsmetoder utan att förvränga signalen. Ett medianfilter, som ersätter varje punkt i signalen med medianen (i stället för medelvärdet) av m intilliggande punkter, kan emellertid helt eliminera smala spikar med liten förändring i signalen om spetsens bredd bara är en eller en få poäng och lika med eller mindre än m. Se en. wikipedia. orgwikiMedianfilter. Funktionen killspikes. m använder ett annat tillvägagångssätt som den lokaliserar och eliminerar spikarna med patchar över dem med linjär interpolering från signalen före och efter. Till skillnad från konventionella smidningar kan dessa funktioner användas lönsamt före minsta kvadratiska fittingfunktioner. (Å andra sidan, om dess spikar som faktiskt är signalen av intresse och andra komponenter i signalen stör varandra, se CaseStudies. htmlG). Ett alternativ till utjämning för att minska bruset i uppsättningen av tio ojämna signaler som används ovan är ensemble-medelvärdet. vilket kan utföras i det här fallet helt enkelt genom MatlabOctave-koden plot (x, medelvärde (y)) visar resultatet en minskning av vitt brus med cirka sqrt (10) 3.2. Detta räcker för att döma att det finns en enda topp med gaussisk form, som sedan kan mätas med kurvmontering (täckt i ett senare avsnitt) med hjälp av MatlabOctave-kodens toppfit (xmean (y), 0,0,1). med resultatet visar utmärkt överenskommelse med positionen (500), höjden (2) och bredden (150) av Gauss-toppen skapad i den tredje raden av genereringsskriptet (ovanför vänster). En stor fördel med ensemble-medelvärdet är att bruset vid alla frekvenser minskar. inte bara högfrekvent bruset som vid utjämning. Con densing oversampled signaler. Ibland registreras signaler tätare (det vill säga med mindre x-axelintervaller) än vad som verkligen behövs för att fånga upp alla viktiga egenskaper hos signalen. Detta resulterar i större än nödvändiga datamängder, vilket fördröjer signalbehandlingsprocedurer och kan skatta lagringskapaciteten. För att korrigera detta kan överförda signaler minskas i storlek, antingen genom att eliminera datapunkter (t ex släppa varje annan punkt eller varje tredje punkt) eller genom att ersätta grupper av intilliggande punkter med sina medelvärden. Den senare tillvägagångssättet har fördelen av att använda snarare än att slänga bort oöverträffade datapunkter, och det fungerar som utjämning för att ge en viss grad av brusreducering. (Om bruset i den ursprungliga signalen är vit och signalen kondenseras genom att medelvärdet av varje n-punkt reduceras, sänks bruset i den kondenserade signalen med kvadratroten av n. Men utan förändring i frekvensfördelning av bruset). Video Demonstration. Denna 18 sekunders, 3 MByte-video (Smooth3.wmv) demonstrerar effekten av triangulär utjämning på en enda Gaussisk topp med en topphöjd på 1,0 och toppbredd på 200. Den ursprungliga vita brusamplituden är 0,3, vilket ger en första signal till - noise-förhållandet av ca 3,3. Ett försök att mäta toppamplitud och toppbredd för den högljudda signalen, som visas längst ner i videon, är initialt allvarligt felaktig på grund av bruset. Eftersom den smidiga bredden ökas förbättras dock signal-brusförhållandet och noggrannheten hos mätningarna av toppamplitud och toppbredd förbättras. Men över en jämn bredd av ca 40 (jämnt förhållande 0,2) får utjämningen toppen att vara kortare än 1,0 och bredare än 200, även om signal-brusförhållandet fortsätter att förbättras, eftersom den smidiga bredden ökas. (Den här demonstrationen skapades i Matlab 6.5. SPECTRUM, freeware Macintosh-signalbehandlingsprogrammet innehåller rektangulära och triangulära utjämningsfunktioner för varje antal punkter. Kalkylblad. Utjämning kan göras i kalkylblad med hjälp av skift - och multipliceringsmetoden som beskrivs ovan. kalkylblad utjämning. ods och utjämning. xls uppsättningen multipliceringskoefficienter finns i formlerna som beräknar värdena för varje cell i den jämnformade data i kolumnerna C och E. Kolumn C utför en 7-punkts rektangulär jämn (1 1 1 1 1 1 1) och kolumn E gör en 7-punkts triangulär slät (1 2 3 4 3 2 1), applicerad på data i kolumn A. Du kan skriva in (eller Kopiera och klistra in) alla data du vill ha i kolumn A och Du kan förlänga kalkylbladet till längre kolumner med data genom att dra den sista raden av kolumnerna A, C och E ner efter behov. Men för att ändra den smidiga bredden måste du ändra ekvationerna i kolumnerna C eller E och kopiera ändringarna ner hela kolumnen. Dess vanliga prac tice att dela upp resultaten med summan av koefficienterna så att nettovärdet är enighet och området under kurvan för den jämnda signalen bevaras. Kalkylbladet UnitGainSmooths. xls och UnitGainSmooths. ods innehåller en samling av enhetskonfigurationskoefficienter för rektangulära, triangulära och gaussiska slätar med bredd 3 till 29 i både vertikalt (kolumn) och horisontellt (rad) format. Du kan kopiera och klistra in dem i dina egna kalkylblad. Kalkylbladen MultipleSmoothing. xls och MultipleSmoothing. ods visar en mer flexibel metod där koefficienterna finns i en grupp med 17 intilliggande celler (i rad 5, kolumnerna I till och med Y), vilket gör det lättare att ändra den släta formen och bredden (upp till högst 17). I det här kalkylbladet appliceras den släta tre gånger i följd, vilket resulterar i en effektiv jämn bredd på 49 punkter som tillämpas på kolumn G. Jämfört med MatlabOctave är kalkylblad mycket långsammare, mindre flexibla och mindre lätt automatiserade. Till exempel, i dessa kalkylblad, för att ändra signalen eller antalet punkter i signalen, eller för att ändra den smidiga bredden eller typen, måste du ändra kalkylbladet på flera ställen, samtidigt som du gör detsamma med funktionen MatlabOctave fastsmooth ( nedan) behöver du bara ändra inmatningsargumenten för en enda kodrad. Och att kombinera flera olika tekniker till ett kalkylblad är mer komplicerat än att skriva ett MatlabOctave-skript som gör detsamma. Utjämning i Matlab och Octave. Den anpassade funktionen fastsmooth implementerar skift och multiplicerar typ smidningar med hjälp av en rekursiv algoritm. (Klicka på den här länken för att inspektera koden, eller högerklicka för att ladda ner för användning inom Matlab). Fastsmooth är en Matlab-funktion i formuläret sfastsmooth (a, w, typ, kant). Argumentet a är ingångssignalvektorn w är den släta bredden (en positiv heltalstyp) bestämmer den släta typen: typ1 ger en rektangulär (glidande medel eller boxkar) slät typ2 ger en triangulär jämn, motsvarande två passager i ett glidande medelvärde typ3 ger en pseudo-gaussisk jämn, motsvarande tre pass av ett glidande medelvärde dessa former jämförs i figuren till vänster. (Se SmoothingComparison. html för en jämförelse av dessa utjämningslägen). Argumentkanten styr hur signalens kanter (de första w2-punkterna och de sista w2-punkterna) hanteras. Om kant0 är kanterna noll. (I detta läge är den förflutna tiden oberoende av den släta bredden. Det ger den snabbaste exekveringstiden). Om kant1, kanterna mjukas med gradvis mindre glattar närmare slutet. (I detta läge ökar körtiden med ökande släta bredder). Den släta signalen returneras som vektorn s. (You can leave off the last two input arguments: fastsmooth(Y, w,type) smooths with edge0 and fastsmooth(Y, w) smooths with type1 and edge0). Compared to convolution-based smooth algorithms, fastsmooth uses a simple recursive algorithm that typically gives much faster execution times, especially for large smooth widths it can smooth a 1,000,000 point signal with a 1,000 point sliding average in less than 0.1 second. Heres a simple example of fastsmooth demonstrating the effect on white noise (graphic ). SegmentedSmooth. m. illustrated on the right, i s a segmented multiple-width d ata smoothing function, based on the fastsmoo th algorithm, which can be useful if the widths of the peaks or the noise level varies substantially across the signal. The syntax is the same as fastsmooth. m . except that the second input argument smoothwidths can be a vector . SmoothY SegmentedSmooth (Y, smoothwidths, type, ends) . The function divides Y into a number of equal-length regions defined by the length of the vector smoothwidths, then smooths each region with a smooth of type type and width defined by the elements of vector smoothwidths. In the graphic example in the figure on the right, smoothwidths31 52 91 . which divides up the signal into three regions and smooths the first region with smoothwidth 31, the second with smoothwidth 51, and the last with smoothwidth 91. Any number of smooth widths and sequence of smooth widths can be used . Type help SegmentedSmooth for other examples examples. DemoSegmentedSmooth. m demonstrates the operation with different signals consisting of noisy variable-width peaks that get progressively wider, like the figure on the right. SmoothWidthTest. m is a simple script that uses the fastsmooth function to demonstrate the effect of smoothing on peak height, noise, and signal-to-noise ratio of a peak. You can change the peak shape in line 7, the smooth type in line 8, and the noise in line 9. A typical result for a Gaussian peak with white noise smoothed with a pseudo-Gaussian smooth is shown on the left. Here, as it is for most peak shapes, the optimal signal-to-noise ratio occurs at a smooth ratio of about 0.8. However, that optimum corresponds to a significant reduction in the peak height . which could be a serious problem. A smooth width about half the width of the original unsmoothed peak produces less distortion of the peak but still achieves a reasonable noise reduction. SmoothVsCurvefit. m is a similar script, but is also compares curve fitting as an alternative method to measure the peak height without smoothing . This effect is explored more completely by the text below, which shows an experiment in Matlab or Octave that creates a Gaussian peak, smooths it, compares the smoothed and unsmoothed version, then uses the max, halfwidth. and trapz functions to print out the peak height, halfwidth, and area . (max and trapz are both built-in functions in Matlab and Octave, but you have to download halfwidth. m. To learn more about these functions, type help followed by the function name). x0:.1:10 yexp(-(x-5).2) plot(x, y) ysmoothedfastsmooth(y,11,3,1) plot(x, y,x, ysmoothed, r) disp(max(y) halfwidth(x, y,5) trapz(x, y)) disp(max(ysmoothed) halfwidth(x, ysmoothed,5) trapz(x, ysmoothed) 1 1.6662 1.7725 0.78442 2.1327 1.7725 These results show that smoothing reduces the peak height (from 1 to 0.784) and increases the peak width (from 1.66 to 2.13), but has no effect on the peak area, as long as you measure the total area under the broadened peak. Smoothing is useful if the signal is contaminated by non-normal noise such as sharp spikes or if the peak height, position, or width are measured by simple methods, but there is no need to smooth the data if the noise is white and the peak parameters are measured by least-squares methods, because the results obtained on the unsmoothed data will be more accurate (see CurveFittingC. htmlSmoothing ). The MatlabOctave user-defined function condense. m. condense(y, n). returns a condensed version of y in which each group of n points is replaced by its average, reducing the length of y by the factor n. (For x, y data sets, use this function on both independent variable x and dependent variable y so that the features of y will appear at the same x values). The MatlabOctave user-defined function medianfilter. m. medianfilter(y, w). performs a median-based filter operation that replaces each value of y with the median of w adjacent points (which must be a positive integer). killspikes. m is a threshold-based filter for eliminating narrow spike artifacts. The syntax is fy killspikes(x, y, threshold, width). Each time it finds a positive or negative jump in the data between y(n) and y(n1) that exceeds threshold, it replaces the next width points of data with a linearly interpolated segment spanning x(n) to x(nwidth1), See killspikesdemo. Type help killspikes at the command prompt. ProcessSignal is a MatlabOctave command-line function that performs smoothing and differentiation on the time-series data set x, y (column or row vectors). It can employ all the types of smoothing described above. Type help ProcessSignal. Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y. The syntax is ProcessedProcessSignal(x, y, DerivativeMode, w, type, ends, Sharpen, factor1, factor2, SlewRate, MedianWidth) iSignal is an interactive function for Matlab that performs smoothing for time-series signals using all the algorithms discussed above . including the Savitzky-Golay smooth, a median filter, and a condense function, with keystrokes that allow you to adjust the smoothing parameters continuously while observing the effect on your signal instantly, making it easy to observe how different types and amounts of smoothing effect noise and signal, such as the height, width, and areas of peaks. (Other functions include differentiation, peak sharpening, interpolation, least-squares peak measurement, and a frequency spectrum mode that shows how smoothing and other functions can change the frequency spectrum of your signals). The simple script iSignalDeltaTest demonstrates the frequency response of iSignals smoothing functions by applying them to a single-point spike. allowing you to change the smooth type and the smooth width to see how the the frequency response changes. View the code here or download the ZIP file with sample data for testing. Use the A and Z keys to increase and decrease the smooth width, and the S key to cycle through the available smooth types. Hint: use the Gaussian smooth and keep increasing the smooth width until the peak shows. Note: you can right-click on any of the m-file links on this site and select Save Link As. to download them to your computer for use within Matlab. Unfortunately, iSignal does not currently work in Octave. An earlier version of his page is available in French, at besteonderdelen. nlblogp4169. courtesy of Natalie Harmann and Anna Chekovsky . Last updated February, 2017. This page is part of A Pragmatic Introduction to Signal Processing , created and maintained by Prof. Tom OHaver. Department of Chemistry and Biochemistry, The University of Maryland at College Park. Comments, suggestions, bug reports, and questions should be directed to Prof. OHaver at tohumd. edu. Unique visits since May 17, 2008:
No comments:
Post a Comment