Utjevning Bevegelse Gjennomsnittet Matlab


En enkel (ad hoc) måte er å bare ta et veid gjennomsnitt (tunbart av alfa) på hvert punkt med sine naboer: eller en viss variasjon derav. Ja, for å være mer sofistikert kan du Fourier omforme dataene dine først, og deretter kutte av de høye frekvensene. Noe som: Dette kutter ut de høyeste 20 frekvensene. Vær forsiktig med å kutte dem ut symmetrisk, ellers er den omvendte transformasjonen ikke lenger ekte. Du må nøye velge cutoff frekvensen for riktig nivå av utjevning. Dette er en veldig enkel type filtrering (boksfiltrering i frekvensdomene), slik at du kan forsøke forsiktig å dempe høyfrekvensfrekvenser dersom forvrengningen ikke er akseptabel. Besvart 4. oktober 09 klokka 9:16 FFT er ikke en dårlig ide, men det er nok overkill her. Løpende eller bevegelige gjennomsnitt gir generelt dårlige resultater og bør unngås for alt annet enn sent lekser (og hvit støy). Id bruker Savitzky-Golay filtrering (i Matlab sgolayfilt (.)). Dette gir deg de beste resultatene for det du leter etter - noe lokalt utjevning, samtidig som du beholder formen på kurven. Gjennomsnittlig og eksponensiell utjevning av modeller Som et første skritt i å bevege seg utover gjennomsnittlige modeller, tilfeldige gangmodeller og lineære trendmodeller, Nonseasonal mønstre og trender kan ekstrapoleres ved hjelp av en flytende gjennomsnitt eller utjevningsmodell. Den grunnleggende forutsetningen bak gjennomsnittlige og utjevningsmodeller er at tidsserien er lokalt stasjonær med et sakte varierende middel. Derfor tar vi et flytende (lokalt) gjennomsnitt for å anslå dagens verdi av gjennomsnittet, og deretter bruke det som prognosen for nær fremtid. Dette kan betraktes som et kompromiss mellom den gjennomsnittlige modellen og den tilfeldige-walk-uten-drift-modellen. Den samme strategien kan brukes til å estimere og ekstrapolere en lokal trend. Et glidende gjennomsnitt kalles ofte en quotsmoothedquot-versjon av den opprinnelige serien, fordi kortsiktig gjennomsnittsverdi medfører utjevning av støtene i den opprinnelige serien. Ved å justere graden av utjevning (bredden på det bevegelige gjennomsnittet), kan vi håpe å finne en slags optimal balanse mellom ytelsen til de gjennomsnittlige og tilfeldige turmodellene. Den enkleste typen gjennomsnittlig modell er. Enkel (likevektet) Flytende gjennomsnitt: Værvarselet for verdien av Y på tidspunktet t1 som er laget på tidspunktet t, er det enkle gjennomsnittet av de nyeste m-observasjonene: (Her og andre steder vil jeg bruke symbolet 8220Y-hat8221 til å stå for en prognose av tidsserien Y som ble gjort så tidlig som mulig ved en gitt modell.) Dette gjennomsnittet er sentrert ved period-t (m1) 2, noe som innebærer at estimatet av det lokale middel vil ha en tendens til å ligge bak den sanne verdien av det lokale gjennomsnittet med ca. (m1) 2 perioder. Således sier vi at gjennomsnittsalderen for dataene i det enkle glidende gjennomsnittet er (m1) 2 i forhold til perioden for prognosen beregnes. Dette er hvor lang tid det vil være å prognostisere prognoser bak vendepunkter i dataene . For eksempel, hvis du er i gjennomsnitt de siste 5 verdiene, vil prognosene være omtrent 3 perioder sent i å svare på vendepunkter. Merk at hvis m1, den enkle glidende gjennomsnittlige (SMA) modellen er lik den tilfeldige turmodellen (uten vekst). Hvis m er veldig stor (sammenlignbar med lengden på estimeringsperioden), svarer SMA-modellen til den gjennomsnittlige modellen. Som med hvilken som helst parameter i en prognosemodell, er det vanlig å justere verdien av k for å oppnå den beste kvote kvoten til dataene, dvs. de minste prognosefeilene i gjennomsnitt. Her er et eksempel på en serie som ser ut til å vise tilfeldige svingninger rundt et sakte varierende middel. Først kan vi prøve å passe den med en tilfeldig walk-modell, noe som tilsvarer et enkelt bevegelige gjennomsnitt på 1 sikt: Den tilfeldige turmodellen reagerer veldig raskt på endringer i serien, men i så måte velger den mye av kvotenivået i data (tilfeldige svingninger) samt quotsignalquot (det lokale gjennomsnittet). Hvis vi i stedet prøver et enkelt glidende gjennomsnitt på 5 termer, får vi et smidigere sett med prognoser: Det 5-tiden enkle glidende gjennomsnittet gir betydelig mindre feil enn den tilfeldige turmodellen i dette tilfellet. Gjennomsnittsalderen for dataene i denne prognosen er 3 ((51) 2), slik at den har en tendens til å ligge bak vendepunktene med om lag tre perioder. (For eksempel ser det ut til at en nedtur har skjedd i perioden 21, men prognosene vender seg ikke til flere perioder senere.) Legg merke til at de langsiktige prognosene fra SMA-modellen er en horisontal rettlinje, akkurat som i tilfeldig gang modell. Således antar SMA-modellen at det ikke er noen trend i dataene. Mens prognosene fra den tilfeldige turmodellen ganske enkelt er lik den siste observerte verdien, er prognosene fra SMA-modellen lik et veid gjennomsnitt av de siste verdiene. De konfidensgrenser som beregnes av Statgraphics for de langsiktige prognosene for det enkle glidende gjennomsnittet, blir ikke større da prognoseperioden øker. Dette er åpenbart ikke riktig. Dessverre er det ingen underliggende statistisk teori som forteller oss hvordan konfidensintervallene skal utvide seg for denne modellen. Det er imidlertid ikke så vanskelig å beregne empiriske estimater av konfidensgrensene for lengre horisontprognoser. For eksempel kan du sette opp et regneark der SMA-modellen skulle brukes til å prognose 2 trinn foran, 3 trinn fremover, etc. i den historiske dataprøven. Du kan deretter beregne utvalgsstandardavvikene til feilene i hver prognosehorisont, og deretter konstruere konfidensintervaller for langsiktige prognoser ved å legge til og trekke ut multipler av riktig standardavvik. Hvis vi prøver et 9-sikt enkelt glidende gjennomsnitt, får vi enda jevnere prognoser og mer av en bremseeffekt: Gjennomsnittsalderen er nå 5 perioder (91) 2). Hvis vi tar et 19-årig glidende gjennomsnitt, øker gjennomsnittsalderen til 10: Legg merke til at prognosene nå faller bakom vendepunkter med ca 10 perioder. Hvilken mengde utjevning er best for denne serien Her er et bord som sammenligner feilstatistikken sin, også et gjennomsnitt på tre sikt: Modell C, 5-års glidende gjennomsnitt, gir den laveste verdien av RMSE med en liten margin over 3 term og 9-sikt gjennomsnitt, og deres andre statistikker er nesten identiske. Så, blant modeller med svært like feilstatistikk, kan vi velge om vi foretrekker litt mer respons eller litt mer glatt i prognosene. (Tilbake til toppen av siden.) Browns Simple Exponential Smoothing (eksponentielt vektet glidende gjennomsnitt) Den enkle glidende gjennomsnittsmodellen beskrevet ovenfor har den uønskede egenskapen som den behandler de siste k-observasjonene, like og fullstendig ignorerer alle foregående observasjoner. Intuitivt bør tidligere data diskonteres på en mer gradvis måte - for eksempel bør den siste observasjonen få litt mer vekt enn 2. siste, og den 2. siste skal få litt mer vekt enn den 3. siste, og så videre. Den enkle eksponensielle utjevning (SES) - modellen oppnår dette. La 945 betegne en quotsmoothing constantquot (et tall mellom 0 og 1). En måte å skrive modellen på er å definere en serie L som representerer dagens nivå (dvs. lokal middelverdi) av serien som estimert fra data til nå. Verdien av L på tidspunktet t beregnes rekursivt fra sin egen tidligere verdi slik: Således er den nåværende glattede verdien en interpolering mellom den forrige glattede verdien og den nåværende observasjonen, hvor 945 styrer nærheten til den interpolerte verdien til den nyeste observasjon. Forventningen for neste periode er bare den nåværende glatte verdien: Tilsvarende kan vi uttrykke neste prognose direkte i forhold til tidligere prognoser og tidligere observasjoner, i en hvilken som helst av de tilsvarende versjoner. I den første versjonen er prognosen en interpolasjon mellom forrige prognose og tidligere observasjon: I den andre versjonen blir neste prognose oppnådd ved å justere forrige prognose i retning av den forrige feilen med en brøkdel av 945. Er feilen gjort ved tid t. I den tredje versjonen er prognosen et eksponentielt vektet (dvs. nedsatt) glidende gjennomsnitt med rabattfaktor 1-945: Interpolasjonsversjonen av prognoseformelen er den enkleste å bruke hvis du implementerer modellen på et regneark: det passer inn i en enkeltcelle og inneholder cellehenvisninger som peker på forrige prognose, forrige observasjon og cellen der verdien av 945 er lagret. Merk at hvis 945 1 er SES-modellen tilsvarer en tilfeldig turmodell (uten vekst). Hvis 945 0 er SES-modellen ekvivalent med den gjennomsnittlige modellen, forutsatt at den første glattede verdien er satt lik gjennomsnittet. (Gå tilbake til toppen av siden.) Gjennomsnittsalderen for dataene i prognosen for enkel eksponensiell utjevning er 1 945 i forhold til perioden for prognosen beregnes. (Dette skal ikke være åpenbart, men det kan enkelt vises ved å vurdere en uendelig serie.) Derfor har den enkle, glidende gjennomsnittlige prognosen en tendens til å ligge bak vendepunktene med rundt 1 945 perioder. For eksempel, når 945 0,5 lag er 2 perioder når 945 0.2 lag er 5 perioder når 945 0,1 lag er 10 perioder, og så videre. For en gitt gjennomsnittlig alder (det vil si mengden lag), er prognosen for enkel eksponensiell utjevning (SES) noe bedre enn SMA-prognosen (Simple Moving Average) fordi den legger relativt mer vekt på den siste observasjonen - dvs. det er litt mer quotresponsivequot for endringer som oppstod i den siste tiden. For eksempel har en SMA-modell med 9 vilkår og en SES-modell med 945 0,2 begge en gjennomsnittlig alder på 5 for dataene i prognosene, men SES-modellen legger mer vekt på de siste 3 verdiene enn SMA-modellen og ved Samtidig er det ikke 8220forget8221 om verdier som er mer enn 9 år gamle, som vist i dette diagrammet. En annen viktig fordel ved SES-modellen over SMA-modellen er at SES-modellen bruker en utjevningsparameter som er kontinuerlig variabel, slik at den lett kan optimaliseres ved å bruke en quotsolverquot-algoritme for å minimere den gjennomsnittlige kvadratfeilen. Den optimale verdien av 945 i SES-modellen for denne serien viser seg å være 0,2961, som vist her: Gjennomsnittsalderen for dataene i denne prognosen er 10,2961 3,4 perioder, noe som ligner på et 6-sikt enkelt glidende gjennomsnitt. De langsiktige prognosene fra SES-modellen er en horisontal rett linje. som i SMA-modellen og den tilfeldige turmodellen uten vekst. Vær imidlertid oppmerksom på at konfidensintervallene som beregnes av Statgraphics, divergerer nå på en rimelig måte, og at de er vesentlig smalere enn konfidensintervallene for den tilfeldige turmodellen. SES-modellen antar at serien er noe mer forutsigbar enn den tilfeldige turmodellen. En SES-modell er faktisk et spesielt tilfelle av en ARIMA-modell. slik at den statistiske teorien om ARIMA-modeller gir et solid grunnlag for beregning av konfidensintervall for SES-modellen. Spesielt er en SES-modell en ARIMA-modell med en ikke-sesongforskjell, en MA (1) og ikke en konstant periode. ellers kjent som en quotARIMA (0,1,1) modell uten constantquot. MA (1) - koeffisienten i ARIMA-modellen tilsvarer mengden 1-945 i SES-modellen. For eksempel, hvis du passer på en ARIMA (0,1,1) modell uten konstant til serien analysert her, viser den estimerte MA (1) - koeffisienten seg å være 0,7029, som er nesten nøyaktig en minus 0,2961. Det er mulig å legge til antagelsen om en konstant lineær trend uten null som en SES-modell. For å gjøre dette oppgir du bare en ARIMA-modell med en ikke-sesongforskjell og en MA (1) - sikt med en konstant, dvs. en ARIMA-modell (0,1,1) med konstant. De langsiktige prognosene vil da ha en trend som er lik den gjennomsnittlige trenden observert over hele estimeringsperioden. Du kan ikke gjøre dette i forbindelse med sesongjustering, fordi sesongjusteringsalternativene er deaktivert når modelltypen er satt til ARIMA. Du kan imidlertid legge til en konstant langsiktig eksponensiell trend for en enkel eksponensiell utjevningsmodell (med eller uten sesongjustering) ved å bruke inflasjonsjusteringsalternativet i prognoseprosedyren. Den aktuelle kvoteringskvoten (prosentvekst) per periode kan estimeres som hellingskoeffisienten i en lineær trendmodell som er montert på dataene i forbindelse med en naturlig logaritme transformasjon, eller det kan være basert på annen uavhengig informasjon om langsiktige vekstutsikter . (Tilbake til toppen av siden.) Browns Lineær (dvs. dobbel) Eksponensiell utjevning SMA-modellene og SES-modellene antar at det ikke er noen trend av noe slag i dataene (som vanligvis er OK eller i det minste ikke altfor dårlig for 1- trinnvise prognoser når dataene er relativt støyende), og de kan modifiseres for å inkorporere en konstant lineær trend som vist ovenfor. Hva med kortsiktige trender Hvis en serie viser en varierende vekstnivå eller et syklisk mønster som skiller seg tydelig ut mot støyen, og hvis det er behov for å prognose mer enn 1 periode framover, kan estimering av en lokal trend også være et problem. Den enkle eksponensielle utjevningsmodellen kan generaliseres for å oppnå en lineær eksponensiell utjevning (LES) modell som beregner lokale estimater av både nivå og trend. Den enkleste tidsvarierende trendmodellen er Browns lineær eksponensiell utjevningsmodell, som bruker to forskjellige glatte serier som er sentrert på forskjellige tidspunkter. Forutsigelsesformelen er basert på en ekstrapolering av en linje gjennom de to sentrene. (En mer sofistikert versjon av denne modellen, Holt8217s, blir diskutert nedenfor.) Den algebraiske form av Brown8217s lineær eksponensiell utjevningsmodell, som den enkle eksponensielle utjevningsmodellen, kan uttrykkes i en rekke forskjellige, men liknende former. Denne standardmodellen er vanligvis uttrykt som følger: La S betegne den enkeltglattede serien som er oppnådd ved å anvende enkel eksponensiell utjevning til serie Y. Dvs. verdien av S ved period t er gitt av: (Husk at, under enkle eksponensiell utjevning, dette ville være prognosen for Y ved periode t1.) Lad deretter Squot betegne den dobbeltslettede serien oppnådd ved å anvende enkel eksponensiell utjevning (ved hjelp av samme 945) til serie S: Endelig prognosen for Y tk. for noe kgt1, er gitt av: Dette gir e 1 0 (det vil si lure litt, og la den første prognosen være den samme første observasjonen) og e 2 Y 2 8211 Y 1. hvoretter prognosene genereres ved å bruke ligningen ovenfor. Dette gir de samme monterte verdiene som formelen basert på S og S dersom sistnevnte ble startet med S 1 S 1 Y 1. Denne versjonen av modellen brukes på neste side som illustrerer en kombinasjon av eksponensiell utjevning med sesongjustering. Holt8217s Lineær eksponensiell utjevning Brown8217s LES-modell beregner lokale estimater av nivå og trend ved å utjevne de siste dataene, men det faktum at det gjør det med en enkelt utjevningsparameter, stiller en begrensning på datamønstrene som den kan passe: nivået og trenden er ikke tillatt å variere til uavhengige priser. Holt8217s LES-modellen løser dette problemet ved å inkludere to utjevningskonstanter, en for nivået og en for trenden. Til enhver tid t, som i Brown8217s modell, er det et estimat L t på lokalt nivå og et estimat T t av den lokale trenden. Her beregnes de rekursivt fra verdien av Y observert ved tid t og de forrige estimatene av nivået og trenden ved to likninger som gjelder eksponensiell utjevning til dem separat. Hvis estimert nivå og trend ved tid t-1 er L t82091 og T t-1. henholdsvis, da var prognosen for Y tshy som ville vært gjort på tidspunktet t-1, lik L t-1 T t-1. Når den faktiske verdien er observert, beregnes det oppdaterte estimatet av nivået rekursivt ved å interpolere mellom Y tshy og dens prognose, L t-1 T t 1, med vekt på 945 og 1- 945. Forandringen i estimert nivå, nemlig L t 8209 L t82091. kan tolkes som en støyende måling av trenden på tidspunktet t. Det oppdaterte estimatet av trenden beregnes deretter rekursivt ved å interpolere mellom L t 8209 L t82091 og det forrige estimatet av trenden, T t-1. ved bruk av vekter av 946 og 1-946: Fortolkningen av trend-utjevningskonstanten 946 er analog med den for nivåutjevningskonstanten 945. Modeller med små verdier på 946 antar at trenden bare endrer seg veldig sakte over tid, mens modeller med større 946 antar at det endrer seg raskere. En modell med en stor 946 mener at den fjerne fremtiden er veldig usikker, fordi feil i trendberegning blir ganske viktig når det regnes med mer enn en periode framover. (Tilbake til toppen av siden.) Utjevningskonstantene 945 og 946 kan estimeres på vanlig måte ved å minimere gjennomsnittlig kvadratfeil i de 1-trinns prognosene. Når dette gjøres i Statgraphics, viser estimatene seg å være 945 0.3048 og 946 0.008. Den svært små verdien av 946 betyr at modellen tar svært liten endring i trenden fra en periode til den neste, så i utgangspunktet prøver denne modellen å estimere en langsiktig trend. I analogi med begrepet gjennomsnittlig alder av dataene som brukes til å estimere det lokale nivået i serien, er gjennomsnittsalderen for dataene som brukes til estimering av lokal trenden, proporsjonal med 1 946, men ikke akkurat lik den . I dette tilfellet viser det seg å være 10 006 125. Dette er et svært nøyaktig tall, forutsatt at nøyaktigheten av estimatet av 946 er virkelig 3 desimaler, men det er av samme generelle størrelsesorden som prøvestørrelsen på 100, så denne modellen er i gjennomsnitt over ganske mye historie i estimering av trenden. Prognoseplanet nedenfor viser at LES-modellen anslår en litt større lokal trend i slutten av serien enn den konstante trenden som er estimert i SEStrend-modellen. Også den estimerte verdien på 945 er nesten identisk med den som oppnås ved å montere SES-modellen med eller uten trend, så dette er nesten den samme modellen. Nå ser disse ut som rimelige prognoser for en modell som skal estimere en lokal trend. Hvis du 8220eyeball8221 ser dette, ser det ut som om den lokale trenden har vendt nedover på slutten av serien. Hva har skjedd Parametrene til denne modellen har blitt estimert ved å minimere den kvadriske feilen på 1-trinns prognoser, ikke langsiktige prognoser, i hvilket tilfelle trenden gjør ikke en stor forskjell. Hvis alt du ser på er 1-trinns feil, ser du ikke det større bildet av trender over (si) 10 eller 20 perioder. For å få denne modellen mer i tråd med øyehals ekstrapoleringen av dataene, kan vi manuelt justere trendutjevningskonstanten slik at den bruker en kortere basislinje for trendestimering. Hvis vi for eksempel velger å sette 946 0,1, er gjennomsnittsalderen for dataene som brukes til å estimere den lokale trenden 10 perioder, noe som betyr at vi gjennomsnittsverdi trenden over de siste 20 perioder eller så. Here8217s hva prognosen tomten ser ut hvis vi setter 946 0,1 mens du holder 945 0.3. Dette ser intuitivt fornuftig ut på denne serien, selv om det er sannsynlig farlig å ekstrapolere denne trenden mer enn 10 perioder i fremtiden. Hva med feilstatistikken Her er en modell sammenligning for de to modellene vist ovenfor, samt tre SES-modeller. Den optimale verdien av 945. For SES-modellen er ca. 0,3, men tilsvarende resultater (med henholdsvis litt mer responstid) oppnås med 0,5 og 0,2. (A) Holts lineær eksp. utjevning med alfa 0,3048 og beta 0,008 (B) Holts lineær eksp. utjevning med alfa 0,3 og beta 0,1 (C) Enkel eksponensiell utjevning med alfa 0,5 (D) Enkel eksponensiell utjevning med alfa 0,3 (E) Enkel eksponensiell utjevning med alfa 0,2 Deres statistikk er nesten identisk, slik at vi virkelig kan velge på grunnlag av 1-trinns prognosefeil i dataprøven. Vi må falle tilbake på andre hensyn. Hvis vi sterkt tror at det er fornuftig å basere dagens trendoverslag på hva som har skjedd i løpet av de siste 20 perioder eller så, kan vi gjøre en sak for LES-modellen med 945 0,3 og 946 0,1. Hvis vi ønsker å være agnostiker om det er en lokal trend, kan en av SES-modellene være enklere å forklare, og vil også gi mer mid-of-the-road prognoser for de neste 5 eller 10 periodene. (Tilbake til toppen av siden.) Hvilken type trend-ekstrapolering er best: Horisontal eller lineær Empirisk bevis tyder på at hvis dataene allerede er justert (om nødvendig) for inflasjon, kan det være uhensiktsmessig å ekstrapolere kortsiktig lineær trender veldig langt inn i fremtiden. Trender som tyder på i dag, kan løsne seg i fremtiden på grunn av ulike årsaker som forverring av produkt, økt konkurranse og konjunkturnedganger eller oppgang i en bransje. Av denne grunn utfører enkle eksponensielle utjevning ofte bedre ut av prøven enn det ellers kunne forventes, til tross for sin kvadratiske kvadratiske horisontal trend-ekstrapolering. Dampede trendmodifikasjoner av den lineære eksponensielle utjevningsmodellen brukes også i praksis til å introdusere en konservatismeddel i sine trendprognoser. Den demonstrede LES-modellen kan implementeres som et spesielt tilfelle av en ARIMA-modell, spesielt en ARIMA-modell (1,1,2). Det er mulig å beregne konfidensintervall rundt langsiktige prognoser produsert av eksponentielle utjevningsmodeller, ved å betrakte dem som spesielle tilfeller av ARIMA-modeller. (Pass på: ikke alle programmer beregner konfidensintervaller for disse modellene riktig.) Bredden på konfidensintervaller avhenger av (i) RMS-feilen i modellen, (ii) type utjevning (enkel eller lineær) (iii) verdien (e) av utjevningskonstanten (e) og (iv) antall perioder fremover du forutsetter. Generelt sprer intervallene raskere da 945 blir større i SES-modellen, og de sprer seg mye raskere når lineær snarere enn enkel utjevning brukes. Dette emnet blir diskutert videre i ARIMA-modellene i notatene. (Tilbake til toppen av siden.) I mange eksperimenter i vitenskapen endres de sanne signalamplituder (y-akseverdier) ganske jevnt som en funksjon av x-aksens verdier, mens mange typer støy blir sett på som raske, tilfeldige endringer i amplitude fra punkt til punkt i signalet. I sistnevnte situasjon kan det være nyttig i noen tilfeller å forsøke å redusere støyen ved en prosess som kalles glatting. Ved utjevning blir datapunktene til et signal endret slik at individuelle punkter som er høyere enn de umiddelbart tilstøtende punktene (antagelig på grunn av støy), blir redusert, og poeng som er lavere enn de tilstøtende punktene økes. Dette fører naturlig til et jevnere signal (og et langsommere trinnrespons til signalendringer). Så lenge det sanne underliggende signalet faktisk er jevnt, vil det sanne signalet ikke bli mye forvrengt ved utjevning, men høyfrekvent støy vil bli redusert. Når det gjelder frekvenskomponentene til et signal, fungerer en utjevningsoperasjon som et lavpassfilter. redusere høyfrekvente komponenter og passere lavfrekvente komponenter med liten forandring. Utjevningsalgoritmer. De fleste utjevningsalgoritmer er basert på skift - og multipliseringsmetoden, hvor en gruppe av tilstøtende punkter i de opprinnelige data blir multiplisert punkt-for-punkt ved et sett med tall (koeffisienter) som definerer jevn form, produktene blir lagt opp og divideres med summen av koeffisientene, som blir ett punkt med glatt data, blir settet av koeffisienter skiftet ett punkt ned de opprinnelige dataene og prosessen gjentas. Den enkleste utjevningsalgoritmen er den rektangulære boksen eller uvevet glidende gjennomsnittlig glatt det erstatter bare hvert punkt i signalet med gjennomsnittet av m tilstøtende punkter, hvor m er et positivt heltall kalt glatt bredde. For eksempel, for en 3-punkts jevn (m 3): for j 2 til n-1, hvor S j det punktet i det jevnede signalet, Y j j den punktet i det opprinnelige signalet, og n er summen antall poeng i signalet. Lignende glatte operasjoner kan konstrueres for enhver ønsket glatt bredde, m. Vanligvis er m et merkelig tall. Hvis støyen i dataene er hvit støy (det vil si jevnt fordelt over alle frekvenser) og standardavviket er D. da vil standardavviket fra støy som gjenstår i signalet etter første pass av en uvevet glidende gjennomsnittlig glatt være omtrent s over kvadratroten av m (D sqrt (m)), hvor m er den glatte bredden. Til tross for sin enkelhet, er dette glatt faktisk optimalt for det vanlige problemet med å redusere hvit støy mens du holder det skarpeste trinnresponsen. Reaksjonen på en trinnendring er faktisk lineær. så dette filteret har fordelen av å reagere helt uten gjenværende effekt med responstid. som er lik den glatte bredden dividert med samplingsfrekvensen. Den trekantede glatte er som den rektangulære glatte, over, bortsett fra at den utfører en vektet utjevningsfunksjon. For en 5-punkts glatt (m 5): for j 3 til n-2, og tilsvarende for andre glatte bredder (se regnearket UnitGainSmooths. xls). I begge disse tilfellene er heltalet i nevnte summen av koeffisientene i telleren, noe som resulterer i en enhedsforsterkning som ikke har noen effekt på signalet der det er en rett linje og som bevarer området under topper. Det er ofte nyttig å bruke en utjevningsoperasjon mer enn en gang, det vil si å glatte et allerede glatt signal, for å bygge lengre og mer kompliserte glatter. For eksempel er 5-punkts trekantet glatt over ekvivalent med to passeringer av en 3-punkts rektangulær glatt. Tre passerer med et 3-punkts rektangulært glatt resultat i en 7-punkts pseudo-gaussisk eller haystack glatt, for hvilken koeffisientene er i forholdet 1: 3: 6: 7: 6: 3: 1. Den generelle regelen er at n passerer med en w-bredde gir jevne resultater i en kombinert glatt bredde på n w - n 1. For eksempel gir 3 passerer med en 17-punkts glatt en 49-punkts glatt. Disse multi-pass glattene er mer effektive for å redusere høyfrekvent støy i signalet enn en rektangulær glatt, men utviser langsommere trinnrespons. I alle disse glattene velges bredden på glatt m for å være et merkelig heltall, slik at de glatte koeffisientene er symmetrisk balansert rundt sentralpunktet, noe som er viktig fordi det opprettholder x-aksens posisjon av topper og andre funksjoner i signal. (Dette er spesielt kritisk for analytiske og spektroskopiske applikasjoner fordi toppposisjonene ofte er viktige målmål). Merk at vi antar her at signalets x-akseintervall er jevnt, det vil si at differansen mellom x-aksens verdier av tilstøtende punkter er den samme gjennom hele signalet. Dette antas også i mange av de andre signalbehandlingsteknikker som er beskrevet i dette essayet, og det er en svært vanlig (men ikke nødvendig) egenskap for signaler som er anskaffet av automatisert og datastyrt utstyr. Savitzky-Golay glatt er basert på de minste kvadratene som passer til polynomene til segmenter av dataene. Algoritmen diskuteres i wire. tu-bs. deOLDWEBmameyercmrsavgol. pdf. Sammenlignet med glidende gjennomsnittlige glattene, er Savitzky-Golay glatt mindre effektivt for å redusere støy, men mer effektivt ved å beholde formen til det opprinnelige signalet. Det er i stand til differensiering samt utjevning. Algoritmen er mer kompleks og beregningstidene er større enn de glatte typene som er omtalt ovenfor, men med moderne datamaskiner er forskjellen ikke signifikant, og koden på forskjellige språk er allment tilgjengelig online. Se SmoothingComparison. html. Formen på en hvilken som helst utjevningsalgoritme kan bestemmes ved å anvende den glatte til en delta-funksjon. et signal bestående av alle nuller unntatt et punkt, som demonstrert av det enkle MatlabOctave-skriptet DeltaTest. m. Støyreduksjon . Utjevning reduserer vanligvis støyen i et signal. Hvis støyen er hvit (det vil si jevnt fordelt over alle frekvenser) og standardavviket er D. da vil standardavviket av støy som gjenstår i signalet etter et pass på en rektangulær glatt være omtrent D sqrt (m), hvor m er den glatte bredden. Hvis en trekantet glatt brukes i stedet, vil støyen være litt mindre, omtrent D 0.8sqrt (m). Utjevningsoperasjoner kan påføres mer enn en gang: det vil si at et tidligere glatt signal kan glattes igjen. I noen tilfeller kan dette være nyttig hvis det er mye høyfrekvent støy i signalet. Imidlertid er støyreduksjonen for hvit støy mindre i hver påfølgende jevn. For eksempel reduserer tre passeringer av en rektangulær glatt hvit støy med en faktor på omtrent D 0,7sqrt (m), bare en liten forbedring over to pass. Frekvensfordelingen av støy, utpekt av støyfarge. Vesentlig påvirker evnen til utjevning for å redusere støy. MatlabOctave-funksjonen NoiseColorTest. m sammenligner effekten av en 20-punkts boksebane (uvevet glidende gjennomsnitt) jevnt på standardavviket for hvit, rosa og blå støy, som alle har en original ujevnt standardavvik på 1,0. Fordi utjevning er en lavpassfiltreringsprosess, påvirker den lavfrekvent (rosa og rød) støy mindre og påvirker høyfrekvent (blå og fiolett) støy mer enn det gjør hvit støy. Merk at beregningen av standardavviket er uavhengig av dataens rekkefølge, og dermed av frekvensfordelings sortering av et sett med data endrer ikke standardavviket. Standardavviket for en sinusbølge er uavhengig av frekvensen. Utjevning endrer imidlertid både frekvensfordelingen og standardavviket til et datasett. Sluttvirkninger og det tapte poengproblemet. I ligningene ovenfor defineres 3-punkts rektangulært glatt bare for j 2 til n-1. Det er ikke nok data i signalet til å definere en komplett 3-punkts glatt for det første punktet i signalet (j 1) eller for det siste punktet (j n). fordi det ikke er noen datapunkter før det første punktet eller etter det siste punktet. (På samme måte defineres en 5-punkts glatt bare for j 3 til n-2, og derfor kan det ikke beregnes en glatt for de to første punktene eller de to siste punktene). Generelt, for en m-bredde glatt vil det være (m -1) 2 poeng ved signalets begynnelse og (m -1) 2 poeng på slutten av signalet, for hvilket en fullstendig m-bredde ikke kan Beregnes den vanlige måten. Hva å gjøre Det er to tilnærminger. En er å akseptere tap av poeng og trimme av de punktene eller erstatte dem med nuller i det glatte signalet. (Det er tilnærmingen tatt i de fleste tallene i dette papiret). Den andre tilnærmingen er å bruke gradvis mindre glatt i signalets ender, for eksempel å bruke 2, 3, 5, 7. punkt glatt for signalpunkter 1, 2, 3 og 4. og for punktene n, n-1 , n-2, n-3. henholdsvis. Den senere tilnærmingen kan være å foretrekke dersom kantene på signalet inneholder kritisk informasjon, men det øker kjøretiden. Fastsmooth-funksjonen som er omtalt nedenfor, kan benytte en av disse to metodene. Eksempler på utjevning. Et enkelt eksempel på utjevning er vist i figur 4. Den venstre halvdelen av dette signalet er en støyende topp. Den høyre halvparten er den samme toppen etter å ha gjennomgått en trekantet utjevningsalgoritme. Støyen blir sterkt redusert mens toppet i seg selv er knapt forandret. Den reduserte støyen gjør det mulig å måle signalegenskapene (toppposisjon, høyde, bredde, areal, etc.) mer nøyaktig ved visuell inspeksjon. Figur 4. Den venstre halvdelen av dette signalet er en støyende topp. Den høyre halvparten er den samme toppen etter å ha gjennomgått en utjevningsalgoritme. Støyen reduseres kraftig mens toppet i seg selv nesten ikke endres, noe som gjør det lettere å måle toppposisjonen, høyden og bredden direkte ved grafisk eller visuell estimering (men det forbedrer ikke målinger som gjøres ved hjelp av minst-kvadratmetoder se nedenfor). Jo større glatt bredde, desto større støyreduksjon, men jo større er muligheten for at signalet blir forvrengt av utjevningsoperasjonen. Det optimale valget av glatt bredde avhenger av bredden og formen på signalet og digitaliseringsintervallet. For topptypesignaler er den kritiske faktoren det glatte forholdet. forholdet mellom glatt bredde m og antall poeng i halvbredden av toppen. Generelt øker utjevningsforholdet forholdet mellom signal og støy, men forårsaker reduksjon i amplitude og økning i båndbredden på toppen. Vær oppmerksom på at den glatte bredden kan uttrykkes på to forskjellige måter: (a) som antall datapunkter eller (b) som x-akseintervallet (for spektroskopiske data vanligvis i nm eller i frekvensenheter). De to er ganske enkelt relatert: Antall datapunkter er bare x-aksens intervall ganger inkrementet mellom tilstøtende x-akseverdier. Det glatte forholdet er det samme i begge tilfeller. Tallene ovenfor viser eksempler på effekten av tre forskjellige glatte bredder på støyende Gauss-formede topper. I figuren til venstre har toppen en (sann) høyde på 2,0 og det er 80 poeng i halvbredden av toppen. Den røde linjen er den opprinnelige, ujevne toppen. De tre overliggende grønne linjene er resultatene av å utjevne denne toppen med en trekantet glatt bredde (fra topp til bunn) 7, 25 og 51 poeng. Fordi toppbredden er 80 poeng, er de glatte forholdene mellom disse tre glattene henholdsvis 780 0,09, 2580 0,31 og 5180 0,64. Etter hvert som den glatte bredden øker, blir støyen gradvis redusert, men topphøyden reduseres også litt. For den største glatte, er toppbredden litt økt. I figuren til høyre har den opprinnelige toppen (i rødt) en ekte høyde på 1,0 og en halv bredde på 33 poeng. (Det er også mindre støyende enn eksempelet til venstre.) De tre overliggende grønne linjene er resultatet av de samme tre trekantede glattene i bredden (fra topp til bunn) 7, 25 og 51 poeng. Men fordi toppbredden i dette tilfellet bare er 33 poeng, er de glatte forholdene mellom disse tre glattene større - 0,21, 0,76 og 1,55. Du kan se at toppdregeringseffekten (reduksjon av topphøyde og økning i toppbredde) er større for den smalere toppen fordi de glatte forholdene er høyere. Glatte forhold på over 1,0 er sjelden brukt på grunn av overdreven toppforvrengning. Merk at selv i verste fall ikke toppposisjonene utføres (antatt at de opprinnelige toppene var symmetriske og ikke overlappes av andre topper). Hvis du beholder formen på toppen, er det viktigere enn å optimalisere signal-støyforholdet, Savitzky-Golay har fordelen i forhold til glidende gjennomsnittsglatt. I alle tilfeller forblir det totale arealet under toppen uforandret. Hvis toppbredder varierer vesentlig, en adaptiv jevn. som gjør at den glatte bredden kan variere over signalet, kan brukes. Problemet med utjevning er at det ofte er mindre gunstig enn du kanskje tror. Det er viktig å påpeke at utjevning av resultater som illustrert i figuren ovenfor kan være misvisende imponerende fordi de bruker en enkelt prøve av et støyende signal som glattes i forskjellige grader. Dette fører til at betrakteren undervurderer bidraget fra lavfrekvent støy, noe som er vanskelig å estimere visuelt fordi det er så få lavfrekvente sykluser i signalrekordet. Dette problemet kan visualiseres ved å registrere et antall uavhengige prøver av et støyende signal bestående av en enkelt topp, som illustrert i de to figurene under. Disse tallene viser ti overordnede tomter med samme topp, men med uavhengig hvit støy, hver plottet med en annen linjefarge, ujevnt til venstre og glattet til høyre. Inspeksjon av de glatte signalene til høyre viser klart variasjonen i toppposisjon, høyde og bredde mellom de 10 prøvene som skyldes lavfrekvent støy som gjenstår i de glatte signalene. Uten støy ville hver topp ha en topphøyde på 2, toppsenter på 500 og bredde på 150. Bare fordi et signal ser jevnt ut, betyr det ikke at det er støy. Lavfrekvent støy som gjenstår i signalene etter utjevning vil fortsatt forstyrre presis måling av toppposisjon, høyde og bredde. (Genereringsskriptene under hver figur krever at funksjonene gaussian. m, whitenoise. m og fastsmooth. m lastes ned fra tinyurlcey8rwh.) Det skal være klart at utjevning sjelden kan eliminere støy, fordi de fleste støy er spredt over en bred frekvensomfang og utjevning reduserer bare støynivået i deler av frekvensområdet. Bare for noen svært spesifikke typer støy (for eksempel diskret frekvensstøy eller single point spikes) er det håp om noe nær fullstendig støy eliminering. Figuren til høyre nedenfor er et annet eksempel signal som illustrerer noen av disse prinsippene. Signalet består av to gaussiske topper, en lokalisert ved x50 og den andre ved x150. Begge toppene har en topphøyde på 1,0 og en topphalvbredde på 10, og en normalt distribuert tilfeldig hvit støy med en standardavvik på 0,1 er blitt lagt til hele signalet. X-aksens samplingsintervall er imidlertid forskjellig for de to toppene sin 0,1 for den første toppen (fra x0 til 100) og 1,0 for den andre toppen (fra x100 til 200). Dette betyr at den første toppen er preget av ti ganger flere poeng som den andre toppen. Det kan se ut som den første toppen er noisier enn den andre, men det er bare en illusjon signal-støy-forholdet for begge topper er 10. Den andre toppen ser mindre støyende ut bare fordi det er færre støyprøver der og vi har en tendens til å undervurdere spredning av små prøver. Resultatet av dette er at når signalet glattes, er den andre toppen mer sannsynlig å bli forvrengt av det glatte (det blir kortere og bredere) enn den første toppen. Den første toppen kan tolerere en mye bredere glatt bredde, noe som resulterer i en større grad av støyreduksjon. (På samme måte, hvis begge topper blir målt med minst kvadrert kurvepassemetode, er passformen til den første toppen stabilere med støyen, og de målte parametrene for denne toppen vil være omtrent 3 ganger mer nøyaktige enn den andre toppen, fordi det er 10 ganger flere datapunkter i den toppen, og målepresisjonen forbedrer seg grovt med kvadratroten av antall datapunkter hvis støyen er hvit). Du kan laste ned datafilen utx i TXT-format eller i Matlab MAT-format. Optimalisering av utjevning. Når jevn bredde øker, øker utjevningsforholdet, støynivået reduseres raskt først, så sakte, og topphøyden reduseres også, sakte først og deretter raskere. Støyreduksjonen avhenger av glatt bredde, glatt type (f. eks. Rektangulær, trekantet osv.), Og støynivået, men topphøyeduksjonen avhenger også av toppbredden. Resultatet er at signalet til støy (definert som forholdet mellom topphøyde av støyens standardavvik) øker raskt først, når så høyt som mulig. Dette er illustrert i animasjonen til venstre for en Gaussisk topp med hvit støy (produsert av dette MatlabOctave-skriptet). Den maksimale forbedringen i signal-støyforholdet avhenger av antall punkter i toppen: jo flere punkter i toppen, jo større glatte bredder kan benyttes og jo større støyreduksjon. Denne figuren illustrerer også at det meste av støyreduksjonen skyldes høyfrekvente komponenter av støyen, mens mye av lavfrekvent støy forblir i signalet, selv ettersom det glattes. Hvilket er det beste glatte forholdet Det avhenger av formålet med toppmåling. Hvis det endelige målet med måling er å måle topphøyde eller bredde, bør glatte forhold under 0,2 brukes og Savitzky-Golay glatt er foretrukket. Men hvis målet med målingene t er å måle toppposisjonen (x-aksens verdi av toppen), kan større glatte forhold benyttes hvis ønskelig, fordi utjevning har liten effekt på toppposisjonen (med mindre toppen er asymmetrisk eller økningen i toppbredde er så mye at det forårsaker tilstøtende topper å overlappe). Hvis toppen faktisk er dannet av to underliggende toppene som overlapper så mye at de ser ut til å være en topp, er kurvepassing den eneste måten å måle parametrene til de underliggende toppene. Dessverre tilsvarer det optimale signal-til-støyforholdet et jevnt forhold som vesentlig forvrenger toppen, og derfor er det ofte foretrukket at kurven passer til de ujevne dataene. I kvantitative kjemiske analyseprogrammer basert på kalibrering ved standardprøver, er topphøyden reduksjon forårsaket av utjevning ikke så viktig. Hvis samme signalbehandlingsoperasjoner brukes på prøvene og til standardene, vil topphøyden reduksjon av standardsignalene være nøyaktig den samme som for prøvesignalene, og effekten vil avbryte nøyaktig. I slike tilfeller kan glatte bredder fra 0,5 til 1,0 brukes om nødvendig for å forbedre signal-støyforholdet, som vist i figuren til venstre (for en enkel glidende gjennomsnittlig rektangulær glatt). I praktisk analytisk kjemi er det absolutt ikke nødvendig med absolutte topphøydemålinger. Kalibrering mot standardløsninger er regelen. (Husk at målet med kvantitativ analyse ikke er å måle et signal, men heller å måle konsentrasjonen av det ukjente.) Det er imidlertid svært viktig å anvende nøyaktig de samme signalbehandlingstrinnene til standardsignalene til prøvesignalene, ellers kan en stor systematisk feil oppstå. For en mer detaljert sammenligning av alle fire utjevningstyper som er vurdert ovenfor, se SmoothingComparison. html. (a) av kosmetiske årsaker, forberede en bedre eller mer dramatisk grafikk for et signal for visuell inspeksjon eller publikasjoner, spesielt for å understreke langsiktig oppførsel på kort sikt. eller (b) dersom signalet vil bli analysert etter en metode som vil bli degradert ved tilstedeværelse av for høy høyfrekvent støy i signalet, for eksempel hvis topphøyde skal bestemmes visuelt eller grafisk eller ved bruk av MAX-funksjonen, av breddene av toppene, måles ved hjelp av halvbreddefunksjonen, eller hvis plasseringen av maksima, minima eller bøyningspunkter i signalet skal bestemmes automatisk ved å detektere nullkryssinger i derivater av signalet. Optimalisering av mengde og type utjevning er viktig i disse tilfellene (se Differentiation. htmlSmoothing). Men generelt, hvis en datamaskin er tilgjengelig for å gjøre kvantitative målinger, er det bedre å bruke minst-kvadratiske metoder på de ujevne dataene, i stedet for grafiske estimater på glatt data. Hvis et kommersielt instrument har mulighet til å glatte dataene for deg, er det best å deaktivere utjevning og opptak og lagre de ujevne dataene du alltid kan glatte det selv senere for visuell presentasjon, og det vil være bedre å bruke de ujevne dataene for minst - squares montering eller annen behandling som du kanskje vil gjøre senere. Utjevning kan brukes til å finne topper, men det skal ikke brukes til å måle topper. Omsorg må brukes i utformingen av algoritmer som benytter utjevning. For eksempel, i en populær teknikk for toppfinding og måling. topper er lokalisert ved å detektere nedover null-kryssinger i det glatte første derivatet. men posisjonen, høyden og bredden på hver topp bestemmes av minst kvadrert kurvefitting av et segment av originale, ikke-jevntete data i nærheten av nullkryssingen. På den måten, selv om tunge utjevning er nødvendig for å gi pålitelig diskriminering av støytoppene, forvrenges ikke toppparametrene utvunnet ved kurvefitting ved utjevningen. (a) utjevning vil ikke vesentlig forbedre nøyaktigheten av parametermåling ved minst kvadratmålinger mellom separate uavhengige signalprøver, (b) alle utjevningsalgoritmer er i det minste litt taperende, noe som medfører i det minste noe forandring i signalform og amplitude, (c) Det er vanskeligere å vurdere passformen ved å inspisere residualene dersom dataene blir jevnet, fordi jevn støy kan forveksles med et faktisk signal. og (d) utjevning av signalet vil undervurdere parameterveilene som forventes ved utbredelse av feilberegninger og bootstrap-metoden. Håndterer pigger og utjevninger. Noen ganger signaler er forurenset med svært høye, smale pigger eller utjevninger som forekommer tilfeldig intervaller og med tilfeldige amplituder, men med bredder på bare ett eller noen få punkter. Det ser ikke bare stygg ut, men det forstyrrer også antagelsene om minst kvadrater beregninger fordi det ikke er normalt distribuert tilfeldig støy. Denne typen interferens er vanskelig å eliminere ved hjelp av de ovennevnte utjevningsmetoder uten å forvride signalet. Imidlertid kan et medianfilter som erstatter hvert punkt i signalet med medianen (i stedet for gjennomsnittet) av m tilstøtende punkter, eliminere smale pigger med liten forandring i signalet dersom bredden av pigger er bare en eller en få poeng og lik eller mindre enn m. Se en. wikipedia. orgwikiMedianfilter. Killspikes. m-funksjonen bruker en annen tilnærming den lokaliserer og eliminerer pigger med patcher over dem ved hjelp av lineær interpolering fra signalet før og etter. Til forskjell fra konvensjonelle glattninger, kan disse funksjonene benyttes profesjonelt før de minste firkantede fittingfunksjonene. (På den annen side, hvis dens pigger som faktisk er signalet av interesse, og andre komponenter av signalet forstyrrer deres mål, se CaseStudies. htmlG). Et alternativ til utjevning for å redusere støy i settet med ti ujevnede signaler brukt ovenfor er ensemble-middelverdi. som kan utføres i dette tilfellet ganske enkelt ved MatlabOctave-koden plot (x, mean (y)) viser resultatet en reduksjon i hvit støy med omtrent sqrt (10) 3.2. Dette er nok til å dømme at det er en enkelt topp med gaussisk form, som da kan måles ved hjelp av kurvefitting (dekket i et senere avsnitt) ved hjelp av MatlabOctave-koden peakfit (xmean (y), 0,0,1). med resultatet viser god avtale med posisjonen (500), høyden (2) og bredden (150) av Gauss-toppen opprettet i den tredje linjen i genereringsskriptet (over venstre). En stor fordel ved ensembleverdi er at støynivået i alle frekvenser er redusert. ikke bare den høyfrekvente støyen som i utjevning. Overbelastede signaler. Noen ganger blir signaler registrert tyngre (det vil si med mindre x-akse-intervaller) enn det er virkelig nødvendig for å fange opp alle de viktige egenskapene til signalet. Dette resulterer i større enn nødvendige datastørrelser, noe som reduserer signalbehandlingsprosedyrene og kan beskatte lagringskapasiteten. For å korrigere dette kan oversampled signaler reduseres i størrelse, enten ved å eliminere datapunkter (si slippe hvert annet punkt eller hvert tredje punkt) eller ved å erstatte grupper av tilstøtende poeng etter gjennomsnittet. Den senere tilnærmingen har fordelen av å bruke i stedet for å kaste bort datapunkter, og det virker som utjevning for å gi noe mål for støyreduksjon. (Hvis lyden i det opprinnelige signalet er hvit, og signalet kondenseres ved å gjennomsnittlig hvert n punkt, blir støyen redusert i kondensert signal ved kvadratroten av n. Men uten endring i frekvensfordeling av støy). Video Demonstrasjon. Denne 18 sekunders, 3 MByte-videoen (Smooth3.wmv) demonstrerer effekten av trekantet utjevning på en enkelt Gaussisk topp med en topphøyde på 1,0 og toppbredde på 200. Den opprinnelige hvite støyamplituden er 0,3, noe som gir et innledende signal til - noiseforhold på ca. 3,3. Et forsøk på å måle toppamplituden og toppbredden til det støyende signalet som vises nederst i videoen, er i utgangspunktet alvorlig unøyaktige på grunn av støyen. Når den glatte bredden økes, forbedres signal-til-støyforholdet og nøyaktigheten av målingene av toppamplitude og toppbredde forbedres. Men over en glatt bredde på ca. 40 (glatt forhold 0,2) får utjevningen toppet til å være kortere enn 1,0 og større enn 200, selv om signal-støyforholdet fortsetter å forbedre ettersom den glatte bredden økes. (Denne demonstrasjonen ble opprettet i Matlab 6.5. SPECTRUM, freeware Macintosh-signalbehandlingsprogrammet, inneholder rektangulære og trekantede utjevningsfunksjoner for et hvilket som helst antall punkter. Regneark. Utjevning kan gjøres i regneark ved hjelp av skift og multiplikasjonsteknikken beskrevet ovenfor. regnearksutjevning. ods og utjevning. xls settet av multiplikasjonskoeffisienter finnes i formlene som beregner verdiene for hver celle i den jevne data i kolonnene C og E. Kolonne C utfører en 7-punkts rektangulær glatt (1 1 1 1 1 1 1) og kolonne E gjør en 7-punkts trekantet glatt (1 2 3 4 3 2 1), brukt på dataene i kolonne A. Du kan skrive inn (eller Kopier og Lim inn) data du liker i kolonne A, og Du kan forlenge regnearket til lengre kolonner med data ved å dra den siste raden av kolonner A, C og E ned etter behov. Men for å endre glatt bredde, må du endre likningene i kolonnene C eller E og kopiere endringene ned hele kolonnen. Den vanlige prac tice å dele resultatene med summen av koeffisientene slik at nettovinst er enhet og området under kurven til det glatte signalet blir bevaret. Regnearkene UnitGainSmooths. xls og UnitGainSmooths. ods inneholder en samling av enhedsvindukonfluksjonskoeffisienter for rektangulære, trekantede og gaussiske glattene med bredde 3 til 29 i både vertikal (kolonne) og horisontal (rad) format. Du kan kopiere og lime inn disse i dine egne regneark. Regnearkene MultipleSmoothing. xls og MultipleSmoothing. ods viser en mer fleksibel metode der koeffisientene finnes i en gruppe på 17 tilstøtende celler (i rad 5, kolonner I til Y), noe som gjør det lettere å endre glatt form og bredde (opp til maksimalt 17). I dette regnearket påføres glatt tre ganger i rekkefølge, noe som resulterer i en effektiv glatt bredde på 49 poeng brukt på kolonne G. Sammenlignet med MatlabOctave er regnearkene mye langsommere, mindre fleksible og mindre automatiske. For eksempel, i disse regnearkene, for å endre signalet eller antall poeng i signalet, eller for å endre glatt bredde eller type, må du endre regnearket flere steder, mens du gjør det samme ved hjelp av MatlabOctave fastsmooth-funksjonen ( nedenfor), trenger du bare endre inngangsargumentene for en enkelt linje med kode. Og kombinere flere forskjellige teknikker til ett regneark er mer komplisert enn å skrive et MatlabOctave-skript som gjør det samme. Utjevning i Matlab og Octave. Den egendefinerte funksjonen fastsmooth implementerer skift og formell type glatt ved hjelp av en rekursiv algoritme. (Klikk på denne linken for å inspisere koden, eller høyreklikk for å laste ned for bruk i Matlab). Fastsmooth er en Matlab funksjon av skjemaet sfastsmooth (a, w, type, kant). Argumentet a er inngangssignalvektoren w er den glatte bredden (en positiv heltall) - type bestemmer den glatte typen: type1 gir en rektangulær (glidende gjennomsnitt eller boks) glatt type2 gir en trekantet glatt, tilsvarende to passerer av et glidende gjennomsnitt type3 gir en pseudo-gauss jevn, tilsvarende tre passerer av et glidende gjennomsnitt disse figurene sammenlignes i figuren til venstre. (Se SmoothingComparison. html for en sammenligning av disse utjevningsmodusene). Argumentkanten styrer hvordan kantene på signalet (de første w2 poeng og de siste w2 poengene) håndteres. Hvis kant0 er kantene null. (I denne modusen er den forløpte tiden uavhengig av den glatte bredden. Dette gir den raskeste utførelsestiden). Ved kant 1 blir kantene jevnet med gradvis mindre glatt jo nærmere slutten. (I denne modusen øker kjøretiden med økende glatte bredder). Det glatte signalet returneres som vektoren 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:

Comments

Popular Posts