Friday 27 October 2017

Flytte Gjennomsnittet Matlab Glatt


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 - litt lokal utjevning mens du holder kurven formen. Hva er utjevning og hvordan kan jeg gjøre det? Jeg har en matrise i Matlab som er størrelsesspektret til et tale signal ( størrelsen på 128 poeng av FFT). Hvordan glatter jeg dette ved hjelp av et glidende gjennomsnitt Fra hva jeg forstår, bør jeg ta en vindusstørrelse på et visst antall elementer, ta gjennomsnitt, og dette blir det nye første elementet. Skift deretter vinduet til høyre ved ett element, ta gjennomsnitt som blir det andre elementet, og så videre. Er det virkelig hvordan det fungerer, jeg er ikke sikker på meg selv, siden hvis jeg gjør det, vil jeg i min endelige resultat ha mindre enn 128 elementer. Så hvordan virker det og hvordan hjelper det å glatte datapunktene, eller er det noe annet jeg kan gjøre utjevning av dataene som ble spurt 15. oktober klokken 6:30 migrert fra stackoverflow 15 okt 12 kl 14:51 Dette spørsmålet kom fra vår sted for profesjonelle og entusiast programmerere. for et spektrum vil du sannsynligvis gjennomsnittlig sammen (i tidsdimensjonen) flere spektre i stedet for et løpende gjennomsnitt langs frekvensaksen til et enkeltspektrum ndash endolitt 16. okt. 12 kl. 01:04 endolitt begge er gyldige teknikker. Gjennomsnitt i frekvensdomenet (noen ganger kalt et Danielle Periodogram) er det samme som vinduet i tidsdomene. Gjennomsnittlig antall periodogrammer (quotspectraquot) er et forsøk på å etterligne ensemble-middelverdi som kreves av det sanne periodogrammet (dette kalles Welch Periodogram). Også, som et spørsmål om semantikk, ville jeg hevde at quotsmoothingquot er ikke-kausal lavpassfiltrering. Se Kalman filtrering mot Kalman utjevning, Wiener filtrering v Wiener utjevning, osv. Det er en nontrivial forskjell og det er implementering avhengig. ndash Bryan Dec 12 12 at 19:18 Utjevning kan gjøres på mange måter, men i svært grunnleggende og generelle termer betyr det at du til og med ut et signal ved å blande elementene med naboene. Du smør signalet litt for å kvitte seg med støy. For eksempel vil en veldig enkel utjevningsteknikk være å beregne hvert signalelement f (t) til som 0,8 av den opprinnelige verdien, pluss 0,1 av hver av sine naboer: Legg merke til hvordan multiplikasjonsfaktorene, eller vektene, legger til en. Så hvis signalet er ganske konstant, endrer utjevning ikke mye. Men hvis signalet inneholdt en plutselig rykkende endring, vil bidraget fra naboene bidra til å fjerne den støyen litt. Vektene du bruker i denne omberegningsfunksjonen kan kalles en kjerne. En en-dimensjonal Gauss-funksjon eller en annen grunnkjerne bør gjøre i ditt tilfelle. Fint eksempel på en bestemt form for utjevning: Over: ujevnt signal Under: Glatt signal Eksempler på noen kjerne: I tillegg til det fine svaret på Junuxx vil jeg gjerne slippe noen notater. Utjevning er relatert til filtrering (dessverre ganske vag Wikipedia artikkelen) - du bør velge den jevnere basert på egenskapene. En av mine favoritter er medianfilteret. Dette er et eksempel på et ikke-lineært filter. Den har noen interessante egenskaper, det bevarer kanter og er ganske robust under stor støy. Hvis du har en modell hvordan signalet ditt oppfører seg, er et Kalman-filter verdt å se. Dens utjevning er faktisk en Bayesian maksimal sannsynlighet estimering av signalet basert på observasjoner. besvart 15. okt 12 kl. 11:07 1 for å nevne kalman-filteret ndash Diego Des 13 12 kl 18:48 Utjevning innebærer bruk av informasjon fra nabobilder for å endre forholdet mellom naboprøver. For endelige vektorer, i enden er det ingen nærliggende informasjon til den ene siden. Dine valg er: Ikke glattfilter endene, aksepter en kortere resulterende glatt vektor, sminke data og glatt med det (avhenger av accuracyusefulness av eventuelle spådommer fra endene), eller kanskje bruke forskjellige asymmetriske utjevningskjerner i enden (som ender opp forkorte informasjonsinnholdet i signalet uansett). besvart 15. okt 12 kl 19:44 Andre har nevnt hvordan du gjør utjevning, jeg vil gjerne nevne hvorfor utjevning fungerer. Hvis du overskrider signalet ditt riktig, vil det variere relativt lite fra en prøve til den neste (prøve tidspunkter, piksler, osv.), Og det forventes å ha et generelt, jevnt utseende. Med andre ord inneholder signalet ditt få høye frekvenser, dvs. signalkomponenter som varierer i takt med samplingsfrekvensen din. Likevel blir målingene ofte ødelagt av støy. I en første tilnærming vurderer vi vanligvis støyen til å følge en Gauss-distribusjon med gjennomsnittlig null og en viss standardavvik som bare legges på toppen av signalet. For å redusere støy i signalet vårt, gjør vi vanligvis følgende fire antagelser: Støy er tilfeldig, er ikke korrelert blant prøvene, har et middel på null, og signalet er tilstrekkelig oversamplet. Med disse antagelsene kan vi bruke et glidende gjennomsnittsfilter. Tenk for eksempel tre påfølgende eksempler. Siden signalet er svært oversamplet, kan det underliggende signalet regnes for å endres lineært, noe som betyr at gjennomsnittet av signalet over de tre prøvene vil være lik det sanne signalet ved midtprøven. I motsetning, har støyen null null og er ukorrelert, noe som betyr at gjennomsnittet skal ha en tendens til null. Dermed kan vi bruke et treprøve glidende gjennomsnittsfilter, hvor vi erstatter hver prøve med gjennomsnittet mellom seg selv og de to tilstøtende naboene. Selvfølgelig, jo større vi lager vinduet, desto mer vil støyen gjennomsnittlig ut til null, men jo mindre antar vi at lineæriteten til det sanne signalet holder. Dermed må vi gjøre avslag. Én måte å forsøke på å få det beste fra begge verdener er å bruke et veid gjennomsnitt, hvor vi gir lengre vekk prøver mindre vekt, slik at vi gjennomsnittlige støyeffekter fra større områder, mens vi ikke veier sant signal for mye hvor det avviker fra vår linearitet antagelse. Hvordan du skal legge vektene avhenger av støy, signal og beregningseffektivitet, og selvfølgelig avstanden mellom å bli kvitt støy og kutte inn i signalet. Legg merke til at det har vært mye arbeid gjort de siste årene for å tillate oss å slappe av noen av de fire forutsetningene, for eksempel ved å designe utjevningsordninger med variabel filtervinduer (anisotropisk diffusjon), eller ordninger som egentlig ikke bruker windows i det hele tatt (ikke-lokalt middel). besvart des 27 12 kl 15: 10 informasjonen, koden og dataene på denne siden er for å støtte et artikkel sitat The Black Art of Smoothing sitat publisert i Electrical amp Automation Technology. av David I. Wilson. Koden som presenteres på denne siden, inneholder algoritmer for: Flytende gjennomsnittsfiltreringsforsterker Savitzky-Golay-filtre Loess (lokalvektet regresjon) filtrering Whittaker-kjernen smoothers Hodrick-Prescott-filtre i utviklingsmiljøene Matlab og Scicos. I begge tilfeller er det ikke nødvendig med spesielle verktøykasser. Matlab er et kommersielt produkt, men Scilab er en freeware-ekvivalent. Merk: Koden her er presentert kvoter isquot uten garanti uttrykt eller underforstått. Hvis du er interessert i å prøve ut disse utjevningsoperasjonene på dine egne data, gjør du følgende: Hvis du har Matlab (et kommersielt produkt), laster du ned og pakker ut Matlab-utjevningsfilene. Kjør smootherdemo. m skriptfilen. Du bør se tomter noe som dette, som ligner tallene i den publiserte artikkelen. Hvis du vil bruke dine egne data, plasser du (tid, data) parene i et Excel-regneark, og rediger smootherdemo-filen for å lese ditt eget Excel-spreadsheet. Du må redigere skriptfilen, og muligens justere de ulike utjevningsparametrene. Alternativt, hvis du helst vil bruke freeware Scilab, så: Last ned og installer Scilab (ca. 13 MB). Du har muligheten til Windows, Linux eller Mac. Last ned Scilab-glattere filer og pakk ut i noen praktisk katalog. Utfør filen smootherdemo. sci. Matlab er et kommersielt vitenskapelig programvare og prototypemiljø som er populært blant mange ingeniører. Matlab selges i New Zealand av Hoare Research Software. Last ned og pakke ut Matlab-utjevningsfilene i arbeidskatalogen din, og kjør smootherdemo. m Matlab-skriptfilen. Scilab er en gratis vitenskapelig programvarepakke som ligner på, men ikke akkurat kompatibel med, Matlab. Scilab er tilgjengelig for Linux, Windows og Mac, og er tilgjengelig for nedlasting herfra. (Ca 13Mb). Det er for tiden utviklet av forskere fra INRIA og ENPC i Frankrike, og som Matlab, inneholder mange verktøykasser og en grafisk blokkdiagramsimulator som ligner på Simulink kalt Scicos. Følgende datafiler ble brukt i artikkelen. De er gitt i Excel-format og rett ascii-tekst med en en rad header. Using Konvolusjon til Glatt Data med et Moving Gjennomsnitt i MATLAB (Opprinnelig publisert på Dougs MATLAB Video Tutorials blogg.) Jeg lærer introduksjonen til MATLAB klasser for alle nye innkvarteringer i Teknisk støttegruppe på MathWorks. En av deltakerne ønsket å vite hvordan å gjøre et glidende gjennomsnitt i MATLAB. Dette kan være nyttig for filtrering eller utjevning, støyende data. Jeg innså at jeg aldri hadde dekket det på bloggen, så her går vi, jeg viser hvordan du gjør dette fra bunnen av med conv. Hvis du har Curve Fitting Toolbox, vil du kanskje sjekke ut glatt. som legger til noen mer avanserte utjevningsmetoder. Produktfokus Velg ditt land

No comments:

Post a Comment