Tuesday 29 August 2017

Matlab Bewegende Gemiddelde Array


Ek nodig het om 'n bewegende gemiddelde bereken oor 'n data-reeks, binne 'n for-lus. Ek het na die bewegende gemiddelde te kry oor N9 dae. Die skikking Im rekenaar in 4-reeks van 365 waardes (M), wat op sy beurt is gemiddelde waardes van 'n ander stel data. Ek wil die gemiddelde waardes van my data te stip met die bewegende gemiddelde in een stuk. Ek googled 'n bietjie oor bewegende gemiddeldes en die conv bevel en gevind iets wat ek probeer implementeer in my code .: So basies, ek bereken my gemiddelde en plot dit met 'n (verkeerde) bewegende gemiddelde. Ek opgetel die WTS waarde regs af die MathWorks webwerf, so dit is nie korrek nie. (Bron: www. mathworks. nl/help/econ/moving-average-trend-estimation) My probleem is egter dat ek nie verstaan ​​wat dit WTS is. Kan iemand verduidelik As dit iets te doen met die gewig van die waardes het: dit is ongeldig in hierdie geval. Alle waardes word geweeg dieselfde. En as ek doen dit heeltemal verkeerd, kan ek kry 'n paar hulp daarmee My opregte dank. gevra 23 September 14 aan 19:05 Die gebruik conv is 'n uitstekende manier om 'n bewegende gemiddelde implementeer. In die kode wat jy gebruik, WTS is hoeveel jy weeg elke waarde (as jy geraai). die som van daardie vektor moet altyd gelyk wees om een ​​te wees. Indien u verkies om elke waarde gewig eweredig en doen 'n grote N bewegende filter dan sou jy wil doen Die gebruik van die geldige argument in conv sal lei tot wat minder waardes in Me as jy in M. Gebruik dieselfde as jy dit nie omgee die gevolge van nul padding. As jy die seinverwerking toolbox kan jy cconv gebruik as jy wil om te probeer 'n omsendbrief bewegende gemiddelde. Iets soos Jy moet die conv en cconv dokumentasie te lees vir meer inligting as jy reeds havent. Jy kan filter gebruik om 'n lopende gemiddelde vind sonder die gebruik van 'n for-lus. Hierdie voorbeeld vind die loop gemiddeld van 'n 16-element vektor, met behulp van 'n venster grootte van 5. 2) gladde as deel van die krommepassing Gereedskap (wat beskikbaar is in die meeste gevalle) jj glad (y) glad die data in die kolom vektor y die gebruik van 'n bewegende gemiddelde filter. Die resultate word in die kolom vektor jj. Die verstek span vir die bewegende gemiddelde is 5,29 September 2013 Moving gemiddeld konvolusie Wat is bewegende gemiddelde en wat is dit goed vir Hoe beweeg gemiddelde gedoen deur die gebruik van konvolusie Moving gemiddelde is 'n eenvoudige operasie gewoonlik gebruik om geraas van 'n sein te onderdruk: ons stel die waarde van elke punt aan die gemiddeld van die waardes in die buurt. Deur 'n formule: Hier x is die insette en y is die uittreesein, terwyl die grootte van die venster is w, veronderstel vreemd te wees. Die formule hierbo beskryf 'n simmetriese werking: die monsters geneem word van beide kante van die werklike punt. Hier is 'n werklike lewe voorbeeld. Die punt waarop die venster eintlik gelê is rooi. Waardes buite x veronderstel is om nulle wees: om te speel en sien die gevolge van bewegende gemiddelde, 'n blik op hierdie interaktiewe demonstrasie. Hoe om dit te doen deur konvolusie Soos jy dalk herken het, die berekening van die eenvoudige bewegende gemiddelde is soortgelyk aan die konvolusie: in beide gevalle 'n venster is gegly langs die sein en die elemente in die venster word opgesom. So, gee dit 'n probeer om dieselfde ding te doen deur gebruik te maak van konvolusie. Gebruik die volgende parameters: Die verlangde uitset is: As eerste benadering, laat ons probeer om dit wat ons kry deur convolving die x sein deur die volgende k kern: Die uitset is presies drie keer groter as die verwagte. Dit kan ook gesien word dat die uitset waardes is die opsomming van die drie elemente in die venster. Dit is as gevolg tydens konvolusie die venster gly langs, al die elemente daarin word vermenigvuldig met een en dan opgesom: yk 1 cdot x 1 cdot x 1 cdot x Om die gewenste waardes van y kry. die uitset sal verdeeld wees teen 3: deur 'n formule insluitende die afdeling: Maar sou dit nie wees optimale om die afdeling te doen tydens konvolusie Hier kom die idee deur herrangskik die vergelyking: So sal ons die volgende k kern gebruik: In hierdie manier waarop ons sal kry die verlangde uitset: In die algemeen: as ons wil doen bewegende gemiddelde deur konvolusie 'n venster grootte van w. Ons sal gebruik maak van die volgende k kern: 'n eenvoudige funksie doen die bewegende gemiddelde is: 'n Voorbeeld gebruik is: Dokumentasie tsmovavg uitset tsmovavg (tsobj, s, lag) gee terug Die eenvoudige bewegende gemiddeld vir finansiële tydreekse voorwerp, tsobj. lag dui die aantal vorige datapunte gebruik met die huidige data punt by die berekening van die bewegende gemiddelde. uitset tsmovavg (vektor, s, lag, dowwe) gee terug Die eenvoudige bewegende gemiddelde vir 'n vektor. lag dui die aantal vorige datapunte gebruik met die huidige data punt by die berekening van die bewegende gemiddelde. uitset tsmovavg (tsobj, e, timeperiod) gee terug Die eksponensiële geweegde bewegende gemiddelde vir finansiële tydreekse voorwerp, tsobj. Die eksponensiële bewegende gemiddelde is 'n geweegde bewegende gemiddelde, waar timeperiod spesifiseer die tydperk. Eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Byvoorbeeld, 'n 10-tydperk eksponensiële bewegende gemiddelde gewigte die mees onlangse prys deur 18.18. Eksponensiële Persentasie 2 / (TIMEPER 1) of 2 / (WINDOWSIZE 1). uitset tsmovavg (vektor, e, timeperiod, dowwe) gee terug Die eksponensiële geweegde bewegende gemiddelde vir 'n vektor. Die eksponensiële bewegende gemiddelde is 'n geweegde bewegende gemiddelde, waar timeperiod spesifiseer die tydperk. Eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Byvoorbeeld, 'n 10-tydperk eksponensiële bewegende gemiddelde gewigte die mees onlangse prys deur 18.18. (2 / (timeperiod 1)). uitset tsmovavg (tsobj, t, numperiod) gee terug Die driehoekige bewegende gemiddelde vir finansiële tydreekse voorwerp, tsobj. Die driehoekige bewegende gemiddelde dubbel glad die data. tsmovavg word bereken dat die eerste eenvoudige bewegende gemiddelde met venster breedte van oordek (numperiod 1) / 2. Dan bereken dit 'n tweede eenvoudige bewegende gemiddelde op die eerste bewegende gemiddelde met dieselfde venster grootte. uitset tsmovavg (vektor, t, numperiod, dowwe) gee terug Die driehoekige bewegende gemiddelde vir 'n vektor. Die driehoekige bewegende gemiddelde dubbel glad die data. tsmovavg word bereken dat die eerste eenvoudige bewegende gemiddelde met venster breedte van oordek (numperiod 1) / 2. Dan bereken dit 'n tweede eenvoudige bewegende gemiddelde op die eerste bewegende gemiddelde met dieselfde venster grootte. uitset tsmovavg (tsobj, w, gewigte) gee terug Die geweegde bewegende gemiddelde vir die finansiële tydreekse voorwerp, tsobj. deur die verskaffing van gewigte vir elke element in die bewegende venster. Die lengte van die gewig vektor bepaal die grootte van die venster. As groter gewig faktore word gebruik vir meer onlangse pryse en kleiner faktore vir vorige pryse, die neiging is meer ontvanklik vir onlangse wysigings. uitset tsmovavg (vektor, w, gewigte, dowwe) gee terug Die geweegde bewegende gemiddelde vir die vektor deur die verskaffing van gewigte vir elke element in die bewegende venster. Die lengte van die gewig vektor bepaal die grootte van die venster. As groter gewig faktore word gebruik vir meer onlangse pryse en kleiner faktore vir vorige pryse, die neiging is meer ontvanklik vir onlangse wysigings. uitset tsmovavg (tsobj, m, numperiod) gee terug Die gemodifiseerde bewegende gemiddelde vir die finansiële tydreekse voorwerp, tsobj. Die aangepaste bewegende gemiddelde is soortgelyk aan die eenvoudige bewegende gemiddelde. Oorweeg die argument numperiod die lag van die eenvoudige bewegende gemiddelde wees. Die eerste gewysigde bewegende gemiddelde bereken word soos 'n eenvoudige bewegende gemiddelde. Daaropvolgende waardes word bereken deur die toevoeging van die nuwe prys en trek die laaste gemiddelde van die gevolglike bedrag. uitset tsmovavg (vektor, m, numperiod, dowwe) gee terug Die gemodifiseerde bewegende gemiddelde vir die vektor. Die aangepaste bewegende gemiddelde is soortgelyk aan die eenvoudige bewegende gemiddelde. Oorweeg die argument numperiod die lag van die eenvoudige bewegende gemiddelde wees. Die eerste gewysigde bewegende gemiddelde bereken word soos 'n eenvoudige bewegende gemiddelde. Daaropvolgende waardes word bereken deur die toevoeging van die nuwe prys en trek die laaste gemiddelde van die gevolglike bedrag. dowwe 8212 dimensie te bedryf saam positiewe heelgetal met waarde 1 of 2 Dimension te bedryf saam, wat as 'n positiewe heelgetal met 'n waarde van 1 of 2. dowwe is 'n opsionele insette argument, en as dit nie gebruik word as 'n inset, die verstek waarde 2 word aanvaar. Die standaard van dowwe 2 dui op 'n ry-georiënteerde matriks, waar elke ry is 'n veranderlike en elke kolom is 'n waarneming. As dowwe 1. die insette is veronderstel om 'n kolomvektor of-kolom-georiënteerde matriks, waar elke kolom is 'n veranderlike en elke ry 'n waarneming wees. e 8212 aanwyser vir eksponensiële bewegende gemiddelde karakter vektor Eksponensiële bewegende gemiddelde is 'n geweegde bewegende gemiddelde, waar timeperiod is die tydperk van die eksponensiële bewegende gemiddelde. Eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Byvoorbeeld, 'n tydperk van 10 eksponensiële bewegende gemiddelde gewigte die mees onlangse prys deur 18.18. Eksponensiële Persentasie 2 / (TIMEPER 1) of 2 / (WINDOWSIZE 1) timeperiod 8212 Lengte van tyd positiewe getal Kies Jou CountryDocumentation M gemiddelde (a) die gemiddelde van die elemente van 'n langs die eerste reeks dimensie waarvan die grootte terugkeer nie gelyk 1 . As 'n is 'n vektor, dan beteken (a) gee terug die gemiddelde van die elemente. As 'n is 'n matriks is, dan beteken (A) gee terug 'n ry vektor met die gemiddelde van elke kolom. As 'n is 'n multi-dimensionele skikking, dan beteken (A) bedryf langs die eerste reeks dimensie waarvan die grootte nie gelyk 1, die behandeling van die elemente as vektore. Hierdie dimensie word 1, terwyl die groottes van al die ander dimensies dieselfde bly. M gemiddelde (A, dowwe) gee terug Die gemiddelde saam dimensie dowwe. Byvoorbeeld, as 'n is 'n matriks is, dan beteken (A, 2) is 'n kolomvektor met die gemiddelde van elke ry. M gemiddelde (, outtype) gee terug Die gemiddelde met 'n bepaalde tipe data, die gebruik van enige van die insette argumente in die vorige syntaxes. outtype kan wees verstek. dubbel. of moedertaal. M gemiddelde (, nanflag) spesifiseer of te sluit of weg te laat NaN waardes van die berekening vir enige van die vorige syntaxes. beteken (A, includenan) sluit alle NaN waardes in die berekening, terwyl gemiddelde (A, omitnan) hulle ignoreer. Kies jou CountryWhat is glad en hoe kan ek dit doen Ek het 'n skikking in Matlab wat is die grootte spektrum van 'n toespraak sein (die grootte van 128 punte van FFT). Hoe kan ek hierdie glad met behulp van 'n bewegende gemiddelde Van wat ek verstaan, moet ek 'n venster grootte van 'n sekere aantal elemente te neem, neem gemiddeld, en dit word die nuwe 1 element. skuif dan die venster na die regte een element, neem gemiddeld wat die 2 element word, en so aan. Is dit regtig hoe dit werk ek myself nie seker want as ek dit doen, in my finale uitslag Ek sal minder as 128 elemente het. So hoe werk dit en hoe werk dit help om die data punte glad of is daar enige ander manier wat ek kan glad van data gevra 15 Oktober 12 doen om 6:30 migreer vanaf StackOverflow 15 Oktober 12 by 14:51 Hierdie vraag kom uit ons site vir professionele en entoesias programmeerders. vir 'n spektrum waarskynlik wil hê jy moet saam Gemiddeld (in die tydsdimensie) verskeie spektra eerder as 'n lopende gemiddelde langs die frekwensie-as van 'n enkele spektrum uitvoering maak endolith 16 Oktober 12 by 01:04 endolith beide geldig tegnieke. Gemiddeld in die frekwensiedomein (soms bekend as 'n Danielle periodogram) is dieselfde as windows in die tydgebied. Gemiddeld verskeie periodograms (quotspectraquot) is 'n poging om die ensemble gemiddelde vereis van die ware periodogram naboots (dit is die Welch periodogram genoem). Ook, as 'n saak van semantiek, sou ek argumenteer dat quotsmoothingquot is nie-causual lae-pass filter. Sien Kalman filter vs Kalman smoothing, Wiener filter v Wiener glad, ens Daar is 'n triviaal lof en it39s implementering afhanklik. â € Bryan 12 Desember 12 by 19:18 5 Antwoorde Gladstryking kan gedoen word op baie maniere, maar in 'n baie basiese en algemene terme beteken dit dat jy selfs 'n sein, deur die vermenging van die elemente met hul bure. Jy smeer / vervaag die sein 'n bietjie in orde om ontslae te raak van die geraas. Byvoorbeeld, sou 'n baie eenvoudige glad tegniek wees, om elke sein element f (t) herbereken as 0.8 van die oorspronklike waarde, plus 0,1 van elk van sy bure: Let op hoe die vermenigvuldiging faktore, of gewigte, voeg tot een. So as die sein is redelik konstant, glad nie die geval is dit baie verander. Maar as die sein bevat 'n skielike Biltong verandering, dan is die bydrae van sy bure sal help om skoon te maak dat geraas 'n bietjie. Die gewigte wat jy in hierdie herberekening funksie gebruik kan 'n kern genoem. 'N Een-dimensionele Gaussiese funksie of enige ander basiese kern moet doen in jou geval. Mooi voorbeeld van 'n bepaalde soort glad: Bo: onbestreken sein Onder: stryk sein Voorbeelde van 'n paar pitte: Benewens die mooi antwoord van Junuxx Ek wil graag 'n paar notas te laat val. Smoothing is verwant aan filter (ongelukkig nogal vaag Wikipedia artikel) - moet jy die gladder kies op grond van sy eiendomme. Een van my gunstelinge is die mediaan filter. Dit is 'n voorbeeld van 'n nie-lineêre filter. Dit het 'n paar interessante eienskappe, dit bewaar rande en is baie sterk onder groot geraas. As jy 'n model hoe jou sein optree het 'Kalman filter is 'n blik werd. Sy glad is eintlik 'n Bayesiaanse maksimum waarskynlikheid beraming van die sein gebaseer op waarnemings. antwoord 15 Oktober 12 by 11:07 1 vir die vermelding van die Kalman filter uitvoering maak Diego 13 Desember 12 by 18:48 Smoothing impliseer inligting van naburige monsters met behulp ten einde die verhouding tussen naburige monsters verander. Vir eindige vektore, aan die einde, is daar geen naburige inligting aan die een kant. Jou keuses is: moenie gladde / filter in die uithoeke, aanvaar 'n korter lei stryk vektor, make-up data en glad met daardie (hang af van die akkuraatheid / nut van enige voorspellings van die einde), of dalk die gebruik van verskillende asimmetriese glad pitte aan die einde (wat eindig smeer die inligting-inhoud in die sein in elk geval). antwoord 15 Oktober 12 aan 19:44 Ander het genoem hoe jy glad, id graag noem waarom glad werke. As jy behoorlik jou sein oversample, sal dit relatief min verskil van monster na die volgende (voorbeeld timepoints, pixels, ens), en dit sal na verwagting 'n algehele gladde voorkoms het. Met ander woorde, jou sein bevat paar hoë frekwensies, dit wil sê sein komponente wat wissel teen 'n koers soortgelyk aan jou sampling rate. Tog, is metings dikwels beskadig deur geraas. In 'n eerste benadering, ons gewoonlik dink die geraas om 'n Gaussiese verspreiding met gemiddelde nul en 'n sekere standaard afwyking wat eenvoudig is bygevoeg op die top van die sein te volg. Geraas in ons sein verminder, ons gewoonlik maak die volgende vier aannames: geraas is ewekansige, is nie gekorreleer onder monsters, het 'n gemiddelde van nul, en die sein is voldoende oversampled. Met hierdie aannames, kan ons 'n gly gemiddelde filter gebruik. Oorweeg, byvoorbeeld, drie agtereenvolgende monsters. Sedert die sein hoog oversampled, kan die onderliggende sein word beskou as lineêr verander, wat beteken dat die gemiddelde van die sein oor die drie monsters die ware sein sou gelyk aan die middel monster. In teenstelling hiermee het die geraas het beteken nul en is ongekorreleerd, wat beteken dat die gemiddelde moet neig na nul. Dus, kan ons 'n drie-monster gly gemiddelde filter, waar ons elke monster met die gemiddelde tussen homself en sy twee aangrensende bure te vervang toe te pas. Natuurlik, hoe groter ons die venster, die meer die geraas sal gemiddeld tot nul, maar hoe minder ons aanname van lineariteit van die ware sein hou. So, ons moet 'n kompromis te maak. Een manier om te probeer om die beste van beide wêrelde te kry, is om 'n geweegde gemiddelde, waar ons gee verder weg monsters kleiner gewigte, sodat ons gemiddeld geraas gevolge van groter omvang te gebruik, terwyl dit nie waar is sein te weeg te veel waar dit afwyk van ons lineariteit aanname. Hoe moet jy die gewigte sit, hang af van die geraas, die sein, en computational doeltreffendheid, en, natuurlik, die kompromis tussen om ontslae te raak van die geraas en sny in die sein. Let daarop dat daar 'n baie werk gedoen in die laaste paar jaar om ons in staat stel om 'n paar van die vier aannames ontspan, byvoorbeeld deur die ontwerp glad skemas met veranderlike filter vensters (anisotrope diffusie), of skemas wat regtig nie gebruik vensters op alle was (nonlocal middel). antwoord 27 Desember 12 by 15:10

No comments:

Post a Comment