Tuesday 28 November 2017

Bewegende Gemiddelde Filter Matlab Funksie


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ë, BerkeleyCreated op Woensdag 8 Oktober, 2008 20:04 Laas Opdateer op Donderdag, 14 Maart 2013 01:29 Geskryf deur Batuhan Osmanoglu Hits: 38960 bewegende gemiddelde in Matlab myself dikwels ek 'n behoefte aan die gemiddeld van die data wat ek het om die geraas te verminder 'n bietjie. Ek het n paar funksies te doen presies wat ek wil hê, maar matlabs gebou in filter funksie werk redelik goed sowel. Hier Siek skryf oor 1D en 2D gemiddeld van data. 1D filter kan verwesenlik word deur die filter funksie. Die filter funksie vereis ten minste drie insette parameters: die teller koëffisiënt vir die filter (b), die deler koëffisiënt vir die filter (a), en die data (X) natuurlik. 'N loop gemiddelde filter kan gedefinieer word deur eenvoudig: Vir 2D data kan ons die Matlabs filter2 funksie gebruik. Vir meer inligting oor hoe die filter werk, kan jy tik: Hier is 'n vinnige en vuil implementering van 'n 16 deur 16 bewegende gemiddelde filter. Eerstens moet ons die filter te definieer. Sedert alles wat ons wil hê, is gelyk bydrae van alle bure kan ons net gebruik om die kinders funksie. Ons verdeel alles met 256 (1616), aangesien ons nie wil hê dat die algemene vlak (amplitude) van die sein verander. Om die filter kan ons net die volgende Hier sê van toepassing is die resultate vir fase van 'n Kong interferogram. In hierdie geval Range is in Y-as en Azimuth is gekarteer op X-as. Die filter was 4 pixels wyd in Range en 16 pixels wyd in Azimuth. Teken SearchDocumentation Hierdie voorbeeld toon die aanbevole workflow vir die opwekking van C-kode van 'n MATLAB funksie met behulp van die codegen opdrag. Dit is die stappe: 1. Voeg die codegen opdrag aan die MATLAB funksie aan te dui dat dit bedoel is vir kodegenerasie. Hierdie richtlijn stel ook die MATLAB-kode ontleder by waarskuwings en foute spesifieke identifiseer MATLAB vir kodegenerasie. 2. Genereer 'n MEX funksie om seker te maak dat die MATLAB-kode is geskik vir kodegenerasie. As foute, moet jy dit op te los voordat genereer C-kode. 3. Toets die MEX funksie in MATLAB om te verseker dat dit funksioneel ekwivalent aan die oorspronklike MATLAB kode en dat geen run-time foute. 4. Genereer C-kode. 5. Ondersoek die C-kode. Voorvereistes Daar is geen voorvereistes vir hierdie voorbeeld. Skep 'n nuwe gids en kopieer Relevante lêers Die volgende kode sal 'n gids in jou huidige werk gids (PWD) te skep. Die nuwe gids sal slegs die lêers wat relevant is vir hierdie voorbeeld is bevat. As jy nie wil hê dat die huidige gids beïnvloed (of as jy nie lêers in hierdie gids kan genereer), moet jy die gids werk verander. Harloop Opdrag: Skep 'n nuwe gids en kopieer Relevante lêers Oor die averagingfilter Function Die averagingfilter. m funksie dien as 'n gemiddelde filter op die insetsein dit neem 'n inset vektor van waardes en bere 'n gemiddelde vir elke waarde in die vektor. Die uitset vektor is dieselfde grootte en vorm as die insette vektor. Kies jou CountryUsing 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: moving-average Filter van Verkeer Data Hierdie voorbeeld wys hoe om verkeersvloei data glad met behulp van 'n bewegende gemiddelde filter met 'n 4-uur gly venster. Die volgende verskilvergelyking beskryf 'n filter wat gemiddeldes die huidige uur en die drie vorige uur van data. Voer die verkeer data en die kolom van voertuig tel toewys aan die vektor x is. Skep die filter koëffisiënt vektore. Bereken 4-uur bewegende gemiddelde van die data, en plot beide die oorspronklike data en die gefilterde inligting. MATLAB en Simulink is geregistreerde handelsmerke van The MathWorks, Inc. Sien www. mathworks / handelsmerke vir 'n lys van ander handelsmerke in besit van die MathWorks, Inc. Ander produk of handelsmerk name is handelsmerke of geregistreerde handelsmerke van hul onderskeie eienaars. Kies jou land

No comments:

Post a Comment