Die gebruik van MATLAB, hoe kan ek die 3-daagse bewegende gemiddelde van 'n spesifieke kolom van 'n matriks en voeg die bewegende gemiddelde op daardie matriks ek probeer om die 3-daagse bewegende gemiddelde van onder bereken op die top van die matriks. Ek het my kode voorsien: Gegewe die volgende matriks A en masker: Ek het probeer die implementering van die conv opdrag maar Ek ontvang 'n fout. Hier is die conv opdrag Ek het probeer om te gebruik op die 2de kolom van matriks A: Die uitset Ek verlang word in die volgende matriks: Indien u enige voorstelle, sou ek dit baie waardeer. Dankie vir kolom 2 van matriks A, ek berekening van die 3-daagse bewegende gemiddelde soos volg en die plasing van die resultaat in kolom 4 van matriks A (Ek herdoop matriks n as 39desiredOutput39 net ter illustrasie). Die 3-dag gemiddeld van 17, 14, 11, is 14 die 3-dag gemiddeld van 14, 11, 8 is 11 die 3-dag gemiddeld van 11, 8, 5 is 8 en die 3-dag gemiddeld van 8, 5, 2 is 5. Daar is geen waarde in die onderste 2 rye vir die 4de kolom omdat die berekening vir die 3-daagse bewegende gemiddelde begin aan die onderkant. Die 39valid39 uitset sal nie gewys word tot ten minste 17, 14, en 11. Hopelik sal hierdie sin uitvoering maak Aaron 12 Junie 13 by 01:28 1 Antwoord In die algemeen is dit sal help as jy die fout sal wys. In hierdie geval jy doen twee dinge verkeerd: Eerste het jou konvolusie te verdeel deur drie (of die lengte van die bewegende gemiddelde) Tweedens, let op die grootte van c. Jy kan nie net pas c in 'n. Die tipiese manier om 'n bewegende gemiddelde sou wees om dieselfde te gebruik, maar dit nie die geval is lyk wat jy wil hê. In plaas jy gedwing word om 'n paar lyne gebruik: Frekwensie van die lopende gemiddeld Filter Die frekwensieweergawe van 'n LTI stelsel is die DTFT van die impulsrespons, Die impulsrespons van 'n L - sample bewegende gemiddelde is sedert die bewegende gemiddelde filter is FIR, die frekwensieweergawe verminder om die eindige som ons kan die baie nuttig identiteit gebruik om die frekwensie reaksie as waar ons toelaat dat AE minus jomega skryf. N 0, en M L minus 1. Ons kan belangstel in die omvang van hierdie funksie word ten einde te bepaal watter frekwensies te kry deur middel van die filter unattenuated en wat verswakte. Hier is 'n plot van die omvang van hierdie funksie lyk, vir L 4 (rooi), 8 (groen) en 16 (blou). Die horisontale as wissel van nul tot pi radiale per monster. Let daarop dat in al drie gevalle, die frekwensieweergawe het 'n laagdeurlaat kenmerk. 'N konstante komponent (nul frekwensie) in die insette gaan deur die filter unattenuated. Sekere hoër frekwensies, soos pi / 2, is heeltemal uitgeskakel word deur die filter. Maar, as die bedoeling was om 'n laagdeurlaatfilter ontwerp, dan het ons nie baie goed gedoen. Sommige van die hoër frekwensies is verswakte net met 'n faktor van ongeveer 1/10 (vir die 16 punt bewegende gemiddelde) of 1/3 (vir die vier punt bewegende gemiddelde). Ons kan baie beter as dit doen. Bogenoemde plot is geskep deur die volgende Matlab kode: omega 0: pi / 400: pi H4 (1/4) (1-exp (-iomega4)) ./ (1-exp (-iomega)) H8 (1/8 ) (1-exp (-iomega8)) ./ (1-exp (-iomega)) H16 (1/16) (1-exp (-iomega16)) ./ (1-exp (-iomega)) plot (omega , ABS (H4) ABS (H8) ABS (H16)) as (0, PI, 0, 1) Kopiereg kopie 2000- - Universiteit van Kalifornië, BerkeleyThe Scientist en Ingenieurs Guide to Digital Signal Processing Deur Steven W. Smith, Ph. D. Soos die naam aandui, die bewegende gemiddelde filter bedryf deur gemiddeld 'n aantal punte van die insetsein aan elke punt in die uitsetsein produseer. In vergelyking vorm, dit is geskrywe: Waar is die insetsein, is die uitset sein, en M is die aantal punte in die gemiddelde. Byvoorbeeld, in 'n 5 punt bewegende gemiddelde filter, punt 80 in die uitsetsein word gegee deur: As 'n alternatief, kan die groep punte van die insetsein simmetries gekies om die uitset punt: Dit stem ooreen met die verandering van die opsomming in vergelyking . 15-1 van: J 0 tot M -1 aan: J - (M -1) / 2 tot (m -1) / 2. Byvoorbeeld, in 'n 10 punt bewegende gemiddelde filter, die indeks, j. kan hardloop 0-11 (een kant gemiddelde) of -5 tot 5 (simmetriese gemiddelde). Simmetriese gemiddelde vereis dat M wees 'n onewe getal. Programmering is 'n bietjie makliker met die punte op slegs een kant egter hierdie produseer 'n relatiewe verskuiwing tussen die inset en uitset seine. Jy moet besef dat die bewegende gemiddelde filter is 'n konvolusie gebruik van 'n baie eenvoudige filter kern. Byvoorbeeld, 'n 5 punt filter het die filter kern: 82300, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 08230. Dit is die bewegende gemiddelde filter is 'n konvolusie van die insetsein met 'n vierkantige pols met 'n oppervlakte van een. Tabel 15-1 toon 'n program om die bewegende gemiddelde filter. Documentation Hierdie voorbeeld wys hoe om te gebruik bewegende gemiddelde filters en hermonstering om die effek van periodieke komponente van die tyd van die dag op uurlikse temperatuurlesings, isoleer asook verwyder ongewenste lyn geraas te implementeer uit 'n oop-lus spanning meting. Die voorbeeld toon ook hoe om die vlakke van 'n kloksein glad terwyl die behoud van die kante deur die gebruik van 'n mediaan filter. Die voorbeeld toon ook hoe om 'n Hampel filter gebruik om groot uitskieters verwyder. Motivering Smoothing is hoe ons ontdek belangrik patrone in ons data, terwyl die verlaat uit dinge wat onbelangrik (bv geraas) is. Ons gebruik filter om hierdie smoothing voer. Die doel van smoothing is om stadige veranderinge in waarde te produseer sodat sy makliker om tendense in ons data te sien. Soms wanneer jy insette data te ondersoek wat jy kan wens om die data te stryk ten einde 'n tendens in die sein te sien. In ons voorbeeld het ons 'n stel van temperatuurlesings in Celsius geneem elke uur by die Logan-lughawe vir die hele maand van Januarie 2011. Let daarop dat ons visueel die effek wat die tyd van die dag het aan die temperatuurlesings kan sien. As jy in die daaglikse temperatuur variasie oor die maand net belangstel, die uurlikse skommelinge net bydra geraas, wat die daaglikse variasies moeilik om te onderskei kan maak. Om die effek van die tyd van die dag verwyder, sou ons nou graag ons data glad met behulp van 'n bewegende gemiddelde filter. 'N bewegende gemiddelde filter in sy eenvoudigste vorm, 'n bewegende gemiddelde filter van lengte N neem die gemiddelde van elke N agtereenvolgende monsters van die golfvorm. Om 'n bewegende gemiddelde filter aan elke datapunt toepassing, bou ons koëffisiënte van ons filter sodat elke punt ewe is geweeg en dra 24/01 tot die totale gemiddelde. Dit gee ons die gemiddelde temperatuur oor elke tydperk van 24 uur. Filter Vertraging Let daarop dat die gefilterde uitset vertraag met sowat twaalf ure. Dit is te danke aan die feit dat ons bewegende gemiddelde filter het 'n vertraging. Enige simmetriese filter van lengte N sal 'n vertraging van (N-1) / 2 monsters het. Ons kan rekening vir die vertraging met die hand. Uittreksels van Gemiddeld Verskille Alternatiewelik, kan ons ook die bewegende gemiddelde filter gebruik om 'n beter skatting van hoe die tyd van die dag beïnvloed die algehele temperatuur verkry. Om dit te doen, in die eerste, trek die stryk data van die uurlikse temperatuur metings. Dan segment die differenced data in dae en neem die gemiddelde oor die hele 31 dae in die maand. Uittreksels van Peak Envelope Soms het ons ook graag 'n vlot wisselende skatting van hoe die hoogte - en laagtepunte van ons temperatuur sein verander daagliks. Om dit te doen, kan ons die koevert funksie gebruik om die uiterste hoogtepunte en laagtepunte bespeur oor 'n subset van die tydperk van 24 uur aan te sluit. In hierdie voorbeeld, verseker ons daar ten minste 16 uur tussen elke uiterste hoë en uiterste lae. Ons kan ook 'n gevoel van hoe die hoogte - en laagtepunte is trending deur die gemiddeld tussen die twee uiterstes kry. Geweegde Moving Gemiddelde filters Ander vorme van bewegende gemiddelde filters doen elke monster nie ewe gewig. Nog 'n algemene filter volg die binomiale uitbreiding van (1 / 2,1 / 2) n Hierdie tipe filter by benadering 'n normale kurwe vir groot waardes van n. Dit is nuttig vir die filter van hoë frekwensie geraas vir klein N. Om die koëffisiënte vind vir die binomiale filter, oprollen 1/2 1/2 met homself en dan iteratief oprollen die uitset met 1/2 1/2 'n voorgeskrewe aantal kere. In hierdie voorbeeld gebruik vyf totale iterasies. Nog 'n filter ietwat soortgelyk aan die Gaussiese uitbreiding filter is die eksponensiële bewegende gemiddelde filter. Hierdie tipe geweeg bewegende gemiddelde filter is maklik om op te rig en nie 'n groot venster grootte vereis. Jy pas 'n eksponensieel geweeg bewegende gemiddelde filter deur 'n alfa parameter tussen nul en een. 'N Hoër waarde van alfa sal minder glad nie. Zoom in op die lesings vir een dag. Kies jou CountryOriginal Post: hier Lees Matlab program vir M-punt bewegende gemiddelde filter H i vriende, vandag gaan ons leer hoe om 'n Matlab program skryf vir m punt beweeg averagr filter. Stappe vir die skryf van M-punt bewegende gemiddelde filter program in MATLAB: 1) Neem 'n gegewe sein 2n (0.9) N en dui dit by a (n). 2) genereer Toe 'n ewekansige geluid sein met dieselfde lengte (50) as dié van s (N) en dui dit deur d. 3) Voeg dan SD en stoor dit in p, dit wil sê PSD. 4) Ons weet dat die formule vir m punt bewegende gemiddelde filter word deur 5) Om opsomming gebruik een vir lus bepaal. 6) Ten slotte verdeel opsomming deur man, sal jy oorspronklike sein te kry. Die MATLAB program:
No comments:
Post a Comment