Vektet Bevegelse Gjennomsnittet Matlab Simulink


Jeg må beregne et glidende gjennomsnitt over en dataserie, innenfor en for-løkke. Jeg må få glidende gjennomsnitt over N9 dager. Array Im computing in er 4 serier av 365 verdier (M), som i seg selv er gjennomsnittsverdier for et annet sett med data. Jeg vil plotte gjennomsnittverdiene av dataene mine med det bevegelige gjennomsnittet i en tomt. Jeg googled litt om å flytte gjennomsnitt og conv kommandoen og fant noe som jeg prøvde å implementere i min kode .: Så i utgangspunktet beregner jeg mitt gjennomsnitt og plotter det med et (feil) glidende gjennomsnitt. Jeg plukket wts verdien rett utenfor mathworks nettstedet, så det er feil. (kilde: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mitt problem er imidlertid at jeg ikke forstår hva dette wts er. Kan noen forklare om det har noe å gjøre med verdiene i vektene: det er ugyldig i dette tilfellet. Alle verdier er vektet det samme. Og hvis jeg gjør dette helt feil, kan jeg få litt hjelp med det Min oppriktige takk. spurte 23 september klokken 19:05 Bruk av conv er en utmerket måte å implementere et bevegelig gjennomsnitt på. I koden du bruker, er wts hvor mye du veier hver verdi (som du gjettet). summen av den vektoren skal alltid være lik en. Hvis du vil vektere hver verdi jevnt og gjøre et N-bevegelig filter, så vil du gjøre det. Ved å bruke det gyldige argumentet i conv, vil det føre til at du har færre verdier i Ms enn du har i M. Bruk det samme hvis du ikke har noe imot effekten av null polstring. Hvis du har signalbehandlingsverktøyskassen, kan du bruke cconv hvis du vil prøve et sirkulært glidende gjennomsnitt. Noe som Du burde lese conv and cconv dokumentasjonen for mer informasjon hvis du ikke allerede har. Du kan bruke filter til å finne et løpende gjennomsnitt uten å bruke en forløkke. Dette eksemplet finner det løpende gjennomsnittet av en 16-elementvektor, ved hjelp av en vindustørrelse på 5. 2) Glatt som en del av kurvefiksjonsverktøyskassen (som er tilgjengelig i de fleste tilfeller) glatter du (y) dataene i kolonnevektoren y bruker et glidende gjennomsnittsfilter. Resultatene returneres i kolonnevektoren. Standard spenningen for glidende gjennomsnitt er 5. Jeg er ny til Simulink. Jeg vil gjøre gjennomsnittet av innkommende data (som kommer etter noen intervaller) fra ett blokk. For eksempel er kontinuerlig innrammet data på 42 prøver ut fra en blokk. Sammen med de innrammede dataene er det en annen utgang (tag) som forteller at disse rammemonstrene tilhører hvilken kategori. Etiketter er tall fra 1-6. Utgangen er tilfeldig. Jeg vil gjennomsnittlig de samme kategoridataene. Som den første rammen er av cat1, kommer etter 4 rammer cat1 ramme igjen. Nå hvordan skal jeg gjennomsnittlig denne nye rammen med den forrige jeg vil gjøre dette for alle kategoriene. Vennligst hjelp meg ut i dette. spurte Mar 26 14 kl 13:35 En rask og skitten løsning ville være å implementere en arraylist for hver kategori. Initialiser listen med NaNs og hold en teller for den siste prøven fra hver kategori. Ved hjelp av middelfunksjonen kan du få gjennomsnittet av alle målinger. Hvis du bare vil ha gjennomsnittet for gjeldende ramme og forrige ramme, kan du bare bety (cat1 (n1) cat1 (n11)) der cat1 er arraylisten for rammer fra kategori 1 og n1 er indeksen for den forrige rammen i cat1 . Hvis du vil ha et vektet glidende gjennomsnitt for en real-time-implementering, opprett en gjennomsnittlig variabel for hver kategori (kall det av1, av2, etc.) og beregne av1 alphaav1 (1-alfa) cat1 (n11) (hvor alfa er vekten tildelt til forrige gjennomsnitt (alfalt1) og cat1 (n11) er den nye måling) når en cat1-ramme kommer inn. besvart 26. mar 14 kl. 17: 39Dokumentasjon Flytende gjennomsnittsmetode 8212 Gjennomsnittlig metode Glidende vindu (standard) Eksponentiell vekting Glidende vindu 8212 Et vindu med lengde Vindulengden beveger seg over inngangsdata langs hver kanal. For hvert eksempel som vinduet beveger seg, beregner blokken gjennomsnittet over dataene i vinduet. Eksponensiell vekting 8212 Blokken multipliserer prøvene med et sett med vektningsfaktorer. Størrelsen på vektningsfaktorene reduseres eksponentielt ettersom datoenes alder øker, når aldri null. For å beregne gjennomsnittet summerer algoritmen vektede data. Angi vinduets lengde 8212 Flagg for å angi vinduets lengde på (standard) av Når du velger denne avmerkingsboksen, er lengden på skyvevinduet lik verdien du angir i Vinduelengde. Når du fjerner denne avmerkingsboksen, er glidevinduets lengde uendelig. I denne modusen beregner blokken gjennomsnittet av gjeldende utvalg og alle tidligere prøver i kanalen. Vindulengde 8212 Glideskjermens lengde 4 (standard) Positivt skalar heltall Vindulengden angir lengden på glidevinduet. Denne parameteren vises når du merker av for Angi vindulengde Angi vindu. Glem faktor 8212 Eksponensiell vektfaktor 0,9 (standard) positiv reell skalar i området (0,1 Denne parameteren gjelder når du setter Metode til eksponentiell vekting. En glem faktor på 0,9 gir større vekt på de eldre dataene enn en glemme faktor på 0,1 . En glemme faktor på 1,0 angir uendelig minne. Alle tidligere eksempler er gitt like vekt. Denne parameteren kan avstemmes. Du kan endre verdien selv under simuleringen. Simulere med å bruke 8212 Type simulering for å kjøre Kodegenerering (standard) Tolket utførelse Simulere modell ved hjelp av generert C-kode. Simulink x00AE første gang du kjører en simulering, genererer C-kode for blokken. C-koden blir gjenbrukt for etterfølgende simuleringer, så lenge modellen ikke endres. Dette alternativet krever ekstra oppstartstid, men gir raskere simuleringshastighet enn tolket utførelse. Simulere modell ved hjelp av MATLAB x00AE tolk. Dette alternativet forkorter oppstartstid, men har langsommere simuleringshastighet enn kode generasjon. Mer om algoritmer Sliding Window Method I glidende vindu metode, er utgangen for hver inngangseksempel gjennomsnittet av den nåværende prøven og Len-1 tidligere prøver. Len er lengden på vinduet. For å beregne de første Len-1-utgangene, når vinduet ikke har nok data ennå, fyller algoritmen vinduet med nuller. Som et eksempel, for å beregne gjennomsnittet når den andre inngangsprøven kommer inn, fyller algoritmen vinduet med Len - 2 nuller. Datavektoren, x. er da de to datasamplene etterfulgt av Len - 2 nuller. Når du angir egenskapen SpecifyWindowLength til feil. algoritmen velger en uendelig vinduslengde. I denne modusen er utgangen det bevegelige gjennomsnittet for gjeldende utvalg og alle de tidligere prøvene i kanalen. Eksponentiell vektingsmetode I eksponentiell vektingsmetode beregnes det bevegelige gjennomsnittet rekursivt ved hjelp av disse formlene: w N. x03BB x03BB w N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1 w N. x03BB) x x00AF N x2212 1. x03BB (1 w N. x03BB) x N x xAFAF N. x03BB 8212 Flytende gjennomsnitt ved gjeldende utvalg x N 8212 Gjeldende datainngangssprøve x x00AF N x2212 1. x03BB 8212 Flytende gjennomsnitt ved forrige prøve 955 8212 Glemme faktor w N. x03BB 8212 Vektfaktor påført gjeldende dataprøve (1 x 2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 Effekt av tidligere data i gjennomsnitt For den første prøven, hvor N 1 velger algoritmen w N. x03BB 1. For den neste prøven oppdateres vektningsfaktoren og brukes til å beregne gjennomsnittet, per rekursiv ligning. Etter hvert som alderen på dataene øker, reduserer størrelsen på vektningsfaktoren eksponentielt og når aldri null. Med andre ord har de siste dataene større innflytelse på nåværende gjennomsnitt enn de eldre dataene. Verdien av den glemme faktoren bestemmer hastigheten på endringen av vektningsfaktorene. En glem faktor på 0,9 gir større vekt på de eldre dataene enn en glemme faktor på 0,1. En glemme faktor på 1,0 indikerer uendelig minne. Alle de foregående prøvene blir gitt like vekt. Systemobjekter Velg landsdokumentasjonen Flytende gjennomsnittsmetode 8212 Gjennomsnittsmetode Skyvevindu (standard) Eksponentiell vekting Skyvevindu 8212 Et vindu med lengde Vindulengden beveger seg over inngangsdata langs hver kanal. For hvert eksempel som vinduet beveger seg, beregner blokken gjennomsnittet over dataene i vinduet. Eksponensiell vekting 8212 Blokken multipliserer prøvene med et sett med vektningsfaktorer. Størrelsen på vektningsfaktorene reduseres eksponentielt ettersom datoenes alder øker, når aldri null. For å beregne gjennomsnittet summerer algoritmen vektede data. Angi vinduets lengde 8212 Flagg for å angi vinduets lengde på (standard) av Når du velger denne avmerkingsboksen, er lengden på skyvevinduet lik verdien du angir i Vinduelengde. Når du fjerner denne avmerkingsboksen, er glidevinduets lengde uendelig. I denne modusen beregner blokken gjennomsnittet av gjeldende utvalg og alle tidligere prøver i kanalen. Vindulengde 8212 Glideskjermens lengde 4 (standard) Positivt skalar heltall Vindulengden angir lengden på glidevinduet. Denne parameteren vises når du merker av for Angi vindulengde Angi vindu. Glem faktor 8212 Eksponensiell vektfaktor 0,9 (standard) positiv reell skalar i området (0,1 Denne parameteren gjelder når du setter Metode til eksponentiell vekting. En glem faktor på 0,9 gir større vekt på de eldre dataene enn en glemme faktor på 0,1 . En glemme faktor på 1,0 angir uendelig minne. Alle tidligere eksempler er gitt like vekt. Denne parameteren kan avstemmes. Du kan endre verdien selv under simuleringen. Simulere med å bruke 8212 Type simulering for å kjøre Kodegenerering (standard) Tolket utførelse Simulere modell ved hjelp av generert C-kode. Simulink x00AE første gang du kjører en simulering, genererer C-kode for blokken. C-koden blir gjenbrukt for etterfølgende simuleringer, så lenge modellen ikke endres. Dette alternativet krever ekstra oppstartstid, men gir raskere simuleringshastighet enn tolket utførelse. Simulere modell ved hjelp av MATLAB x00AE tolk. Dette alternativet forkorter oppstartstid, men har langsommere simuleringshastighet enn kode generasjon. Mer om algoritmer Sliding Window Method I glidende vindu metode, er utgangen for hver inngangseksempel gjennomsnittet av den nåværende prøven og Len-1 tidligere prøver. Len er lengden på vinduet. For å beregne de første Len-1-utgangene, når vinduet ikke har nok data ennå, fyller algoritmen vinduet med nuller. Som et eksempel, for å beregne gjennomsnittet når den andre inngangsprøven kommer inn, fyller algoritmen vinduet med Len - 2 nuller. Datavektoren, x. er da de to datasamplene etterfulgt av Len - 2 nuller. Når du angir egenskapen SpecifyWindowLength til feil. algoritmen velger en uendelig vinduslengde. I denne modusen er utgangen det bevegelige gjennomsnittet for gjeldende utvalg og alle de tidligere prøvene i kanalen. Eksponentiell vektingsmetode I eksponentiell vektingsmetode beregnes det bevegelige gjennomsnittet rekursivt ved hjelp av disse formlene: w N. x03BB x03BB w N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1 w N. x03BB) x x00AF N x2212 1. x03BB (1 w N. x03BB) x N x xAFAF N. x03BB 8212 Flytende gjennomsnitt ved gjeldende utvalg x N 8212 Gjeldende datainngangssprøve x x00AF N x2212 1. x03BB 8212 Flytende gjennomsnitt ved forrige prøve 955 8212 Glemme faktor w N. x03BB 8212 Vektfaktor påført gjeldende dataprøve (1 x 2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 Effekt av tidligere data i gjennomsnitt For den første prøven, hvor N 1 velger algoritmen w N. x03BB 1. For den neste prøven oppdateres vektningsfaktoren og brukes til å beregne gjennomsnittet, per rekursiv ligning. Etter hvert som alderen på dataene øker, reduserer størrelsen på vektningsfaktoren eksponentielt og når aldri null. Med andre ord har de siste dataene større innflytelse på nåværende gjennomsnitt enn de eldre dataene. Verdien av den glemme faktoren bestemmer hastigheten på endringen av vektningsfaktorene. En glem faktor på 0,9 gir større vekt på de eldre dataene enn en glemme faktor på 0,1. En glemme faktor på 1,0 indikerer uendelig minne. Alle de foregående prøvene blir gitt like vekt. Systemobjekter Velg ditt land

Comments

Popular Posts