Tuesday 19 December 2017

Glidande medelvärde vs låg pass


Jag kodar något för tillfället där jag tar en massa värderingar över tiden från en hårdvarukompass. Kompassen är mycket exakt och uppdateras mycket ofta, med det resultat att om det jiggles något slutar jag med det udda värdet som är väldigt inkonsekvent med sina grannar. Jag vill släta ut dessa värden. Efter att ha läst lite läsning verkar det som att jag vill ha ett högpassfilter, ett lågpassfilter eller ett glidande medelvärde. Flyttande medelvärde jag kan gå ner med, behåll bara en historia av de senaste 5 värdena eller vad som helst, och använd medelvärdet av dessa värden nedströms i min kod där jag en gång bara använde det senaste värdet. Det borde jag, släpa ut jigglarna snyggt, men det verkar som om det är ganska ineffektivt, och det är förmodligen ett av de kända problemen med riktiga programmerare där det är en riktigt snygg kladdmatlösning. Jag är emellertid en av de hemska självlärda programmörerna utan en form av formell utbildning i vad som helst vagt relaterat till CompSci eller Math. Att läsa om lite tyder på att det här kan vara ett högt eller lågt passfilter, men jag kan inte hitta någonting som förklarar vad som är begripligt för ett hack som jag, hur effekten av dessa algoritmer skulle vara på en uppsättning värden, än mindre hur matematiken Arbetar. Svaret som ges här. till exempel, svarar tekniskt på min fråga, men bara i förståelse för dem som förmodligen redan vet hur man löser problemet. Det skulle vara en väldigt härlig och smart person som vem skulle kunna förklara det här problemet, och hur lösningarna fungerar, vilket är begripligt för en kandidatexamen. Frågade 21 sep 10 kl 13:01 Om ditt rörliga medelvärde måste vara långt för att uppnå den nödvändiga utjämningen och du inte behöver någon särskild form av kärna, då är du bättre om du använder ett exponentiellt förfallande glidande medelvärde: var du välj liten för att vara en lämplig konstant (t. ex. om du väljer liten 1- 1N, kommer den att ha samma mängd medelvärde som ett fönster av storlek N, men distribueras annorlunda över äldre punkter). Hur som helst, eftersom nästa värde av det rörliga genomsnittet bara beror på den föregående och dina data behöver du inte behålla en kö eller något. Och du kan tänka på det här som att göra något, ja, jag har en ny punkt, men jag litar verkligen inte på det, så jag ska hålla 80 av min gamla uppskattning av mätningen och lita bara på den nya datapunkten 20. Thats Tämligen detsamma som att säga, Tja, jag litar bara på den här nya punkten 20, och jag använder 4 andra punkter som jag litar på samma belopp, förutom att istället för att uttryckligen ta de 4 andra punkterna antar du att den genomsnittliga tiden du gjorde förra gången var förnuftigt så att du kan använda ditt tidigare arbete. svarat 21 sep 10 kl 14:27 Hej, jag vet att det här är 5 år sent, men tack för ett fantastiskt svar. I39m arbetar på ett spel där ljudet ändras baserat på din hastighet, men på grund av att du kör spelet på en slow-ass-dator, skulle hastigheten fluktuera vildt, vilket var bra för styrning, men mycket irriterande när det gäller ljud. Det var en väldigt enkel och billig lösning på någonting som jag trodde skulle vara ett väldigt komplext problem. ndash Adam Mar 16 15 kl 20:20 Om du försöker ta bort det enstaka udda värdet är ett lågpassfilter det bästa av de tre alternativen du har identifierat. Lågpassfilter tillåter låghastighetsändringar som de som orsakas av att man roterar en kompass för hand, medan man förkastar höghastighetsförändringar, t. ex. de som orsakas av stötar på vägen, till exempel. Ett glidande medelvärde kommer förmodligen inte vara tillräckligt, eftersom effekterna av ett enda blip i dina data kommer att påverka flera efterföljande värden beroende på storleken på ditt glidande medelfönster. Om de ojämna värdena lätt kan detekteras kan du till och med vara bättre med en glitch-avlägsnande algoritm som helt ignorerar dem: Här är en gickdiagram som illustrerar: Den första grafen är ingångssignalen, med en obehaglig glitch. Det andra diagrammet visar effekten av ett rörligt medelvärde på 10 prov. Slutgrafen är en kombination av 10-provvärdet och den enkla glitchdetekteringsalgoritmen som visas ovan. När glitchen detekteras används 10-provsgenomsnittet istället för det faktiska värdet. svarat 21 sep 10 kl 13:38 Nätt förklarad och bonuspoäng för grafen) ndash Henry Cooke 22 sep 10 kl 0:50 Wow. Sällan såg ett bra svar ndash Muis 4 juni 13 kl 9:14 Det rörliga genomsnittet är ett lågpassfilter. ndash nomen 21 okt 13 kl 19:36 Prova en löpande median istället. ndash kert 25 apr 14 kl 22:09 Flyttande medelvärde Jag kan komma ner med. Men det verkar som om det är ganska ineffektivt. Theres verkligen ingen anledning att ett rörligt medelvärde borde vara ineffektivt. Du behåller antalet datapunkter du vill ha i en viss buffert (som en cirkelkö). På varje ny datapunkt popar du det äldsta värdet och subtraherar det från en summa och trycker på det nyaste och lägger det till summan. Så varje ny datapunkt innebär egentligen bara en poppush, ett tillägg och en subtraktion. Ditt rörliga medelvärde är alltid denna förskjutande sum dividerad med antalet värden i din buffert. Det blir lite svårare om du tar emot data samtidigt från flera trådar, men eftersom dina data kommer från en hårdvarubutik som verkar mycket tveksamt för mig. Åh och också: hemska självlärda programmerare förenar) Det rörliga genomsnittet verkade ineffektivt för mig eftersom du måste lagra en buffert med värden - bättre att bara göra lite Clever Maths med ditt inmatningsvärde och nuvarande arbetsvärde Jag tror att det är hur exponentiell glidande medelvärde Arbetar. En optimering som jag har sett för den här typen av glidande medelvärde innebär att du använder en fast-längd köförstärkare en pekare till var du befinner dig i den köen och bara sveper pekaren runt (med eller om). Voila Ingen dyr manchet. Kraft till amatörerna, bror ndash Henry Cooke Sep 22 10 på 0:54 Henry: För ett rakare rörligt medel behöver du bufferten helt enkelt så att du vet vilket värde som dyker upp när nästa värde blir skjutit. Med detta sagt, den kvoterade längdköppen förstärkaren en pointerquot du beskriver är exakt vad jag menade med kvotcirkelkö. Det var därför jag sa att det inte är ineffektivt. Vad trodde du att jag menade Och om ditt svar är kvot array som ändrar sina värden tillbaka på varje indexerad removalquot (som std :: vektor i C). Ja, då är jag så skadad att jag inte ens vill prata med dig längre) ndash Dan Tao Sep 22 10 på 1:58 Henry: Jag vet inte om AS3, men en Java-programmerare har samlingar som CircularQueue vid hisher bortskaffande (I39m inte en Java-utvecklare så jag är säker på att det finns bättre exempel där ute, det är bara det jag hittade från en snabb Google-sökning), som precis implementerar funktionaliteten vi talar om. Jag är ganska säker på att majoriteten på mellannivå och lågnivå språk med standardbibliotek har något liknande (t ex i QueueltTgt). Hur som helst, jag var filosofi själv, så. allt är förlåtet. ndash Dan Tao 22 sep 10 kl 12:44 Ett exponentiellt förfallande glidande medelvärde kan beräknas för hand med endast trenden om du använder rätt värden. Se fourmilab. chhackdiete4 för en idé om hur man gör det snabbt med en penna och papper om du letar efter exponentiellt slätat glidande medelvärde med 10 utjämning. Men eftersom du har en dator, vill du förmodligen göra binärväxling i motsats till decimalväxling) På så sätt är allt du behöver en variabel för ditt nuvarande värde och en för genomsnittsvärdet. Nästa medelvärde kan då beräknas utifrån det. svarade 21 sep 10 kl 14:39 theres en teknik kallad en intervall grind som fungerar bra med låg förekomst falska prover. förutsatt att användningen av en av de ovannämnda filterteknikerna (glidande medelvärde, exponentiella), när du har tillräcklig historia (en tidskonstant), kan du testa det nya inkommande dataprovet för rimlighet innan det läggs till i beräkningen. viss kunskap om den maximala rimliga hastighetsgraden av signalen krävs. Råprovet jämförs med det senaste släta värdet, och om det absoluta värdet av den skillnaden är större än det tillåtna intervallet, kastas det provet (eller ersätts med lite heuristisk, t. ex. en förutsägelse baserad på lutningsskillnad eller trenden förutsägelsevärde från dubbel exponentiell utjämning) svarat 30 april 16 vid 6: 56A ett glidande medelfilter är ett antal ingångsprover och producerar ett enda utmatningsprov. Denna medelvärdesverkan avlägsnar de högfrekventa komponenterna som finns i signalen. Flytta genomsnittliga filter används normalt som lågpassfilter. I rekursiv filtreringsalgoritm tas tidigare utmatningsprover också för medelvärde. Ett glidande medelfilter är ett antal insamlingsprover och producerar ett enda utprov. Denna medelvärdesverkan tar bort de högfrekventa komponenterna som finns i signalen. Flytta genomsnittliga filter används normalt som lågpassfilter. I rekursiv filtreringsalgoritm tas tidigare utmatningsprover också för medelvärde. Detta är anledningen till att dess impulsrespons sträcker sig till oändligheten. Så här använder du provprogrammet. Zip-filen innehåller både källkod och körbar. För att kompilera och köra källkoden måste du ha Visual Basic 6.0 installerad i din dator. För att köra körbar måste du hämta och installera runtimefiler för Visual Basic 6.0. Kör movavgfilt. exe och du kommer se huvudfönstret. I huvudfönstret. Den främsta delen är funktiongeneratorn. som producerar olika vågformer för att testa filtret. Vi kan interaktivt ändra amplitud, frekvens och form av den genererade signalen. För att testa programmet måste vi först skapa en lämplig vågform. Här kommer vi att generera en komplex vågform som består av två olika frekvenser. Lämna allt i standardinställningarna och klicka på quotgeneratequot-knappen. Nu kan du se en 10 Hz-signal i grafen bredvid signalgenerern. Figur nedan visar vågformen. Ändra nu frekvensen till 100 Hz och klicka på quotgeneratequot-knappen igen. Den nybildade vågformen läggs till den befintliga vågformen och den resulterande vågformen ser ut som en 10 Hz-sinvåg med 100 Hz brus. Se vågformen nedan. Denna vågform passar bäst för att testa filtret eftersom det innehåller två olika frekvenser. Du kan köra filtret genom att klicka på quotFilterquot-knappen. Från alternativen som finns kvar till quotFilterquot-knappen. Du kan välja Rekursiv, icke-rekursiv filtrering eller ingen filtrering alls. Figuren nedan visar filtrets utmatning. Nedladdning Flyttande medelfilter KällkodMoving Average Filter kate skrev: gt Hej, gt gt Jag letar efter en kod för ett lågpassfilter som jag kan ansöka om att gt en signal innan spektralanalys utförs. gt Jag avskyr mig för min okunnighet, men det här är långt utanför mitt fält, så jag känner inte riktigt av det. Vad är de ingångar som behövs för andra än själva signalen gt gt Tack, gt Kate I den analoga domänen använder folk lågpassfiltrering av åtminstone några orsaker som kommer att tänka på (i) få signalen att se bättre ut ( ii) Undvik aliasing under analog-till-digital konvertering, vilket resulterar i att högfrekventa ljudsignaler aliaseras till låga frekvenser, vilket kan korrumpera de lägre frekvenssignalerna av intresse och öka ljudgolvet. Det verkar inte som om någon av dessa överväganden gäller din situation (i) du tittar inte direkt på signalen (du ska göra spektralanalys) (ii) din signal är redan digitaliserad. Specifikt, när du gör spektralanalys kommer högfrekvensen att dyka upp i högfrekvensen och du kan välja att ignorera den. För alla linjära tekniker (detta inkluderar FFT och Matlab filter () - funktionen) kommer högfrekvensinnehållet inte att störa spektralanalysen av lågfrekvensinnehållet. Om du inte vill avkoda dina uppgifter innan du filtrerar. Finns det en särskild anledning att du vill bli av med högfrekvensinnehållet före spektralanalysen skrev kate: gt Hej, gt gt Jag letar efter någon kod för ett lågpassfilter som jag kan ansöka om att gt en signal före bärande ut spektralanalys. gt Jag avskyr mig för min okunnighet, men det här är långt utanför mitt fält, så jag känner inte riktigt av det. Vad är de ingångar som behövs för andra än själva signalen gt gt Tack, gt Kate I den analoga domänen använder folk lågpassfiltrering av åtminstone några orsaker som kommer att tänka på (i) få signalen att se bättre ut ( ii) Undvik aliasing under analog-till-digital konvertering, vilket resulterar i att högfrekventa ljudsignaler aliaseras till låga frekvenser, vilket kan korrumpera de lägre frekvenssignalerna av intresse och öka ljudgolvet. Det verkar inte som om någon av dessa överväganden gäller din situation (i) du tittar inte direkt på signalen (du ska göra spektralanalys) (ii) din signal är redan digitaliserad. Specifikt, när du gör spektralanalys kommer högfrekvensen att dyka upp i högfrekvensen och du kan välja att ignorera den. För alla linjära tekniker (detta inkluderar FFT och Matlab filter () - funktionen) kommer högfrekvensinnehållet inte att störa spektralanalysen av lågfrekvensinnehållet. Om du inte vill avkoda dina uppgifter innan du filtrerar. Finns det en särskild anledning att du vill bli av med högfrekvensinnehållet före spektralanalys För att vara ärlig vet jag inte varför jag försöker bli av med högfrekvenserna. Jag följer i princip instruktionerna i en ISO. Som du kanske har gissat är datorprogrammering och signalbehandling verkligen inte mitt område så språket som används är främmande för mig. Vad jag gör är som följer - Jag är civilingenjör och jag försöker analysera en vägprofil. Profilen är i grunden likvärdig med en signal som varierar med avstånd (men eftersom hastigheten är konstant, är detta samma som varierande med tiden). Den exakta formuleringen av ISO är förbehandlingsfilter bör användas till exempel butterworth. Men jag trodde att det rörliga genomsnittet skulle kunna vara en lättare plats att börja jag antar anledningen till att jag försöker utrota högfrekvenser är att de skulle vara försumbar när det gäller vägarbetsskador. Jag uppskattar mycket din tid, skrev Katherine Rajeev: gt gt gt kate skrev: gtgt Hej, gtgt gtgt Jag letar efter någon kod för ett lågpassfilter som jag kan applicera på gtgt en signal innan spektralanalys utförs. gtgt gtgt Jag ber om ursäkt för min okunnighet, men det här är långt utanför mitt fält, så det gör jag inte riktigt. Vad är de ingångar som behövs andra än själva signalen gtgt Tackgt, gtgt Kate gt gt I den analoga domänen använder folk lågpassfiltrering åtminstone ett antal orsaker som kommer att tänka på (i) göra signalen ser bättre ut gt (ii) undviker aliasing under analog-till-digital konvertering, vilket resulterar i att högfrekventa ljudsignaler aliaseras till låg-gt-frekvenser, vilket kan korrumpera de lägre frekvenssignalerna med gt interest gt och öka ljudgolvet. gt) Det ser inte ut som att någon av dessa överväganden gäller för din gt-situation (i) du tittar inte direkt på signalen (du kommer att göra spektralanalys) (ii) din signal är redan digitaliserad. Gt gt När du gör spektralanalys kommer de högfrekventa gt-grecken gt att dyka upp i högfrekvensänden och du kan välja att ignorera det. gt För någon linjär teknik (detta inkluderar FFT och Matlab filter () gt-funktionen) kommer högfrekvensinnehållet inte att störa GT spektralanalysen av lågfrekvensinnehållet. Om du inte vill att gt decimerar dina data innan du filtrerar. Gt gt Finns det en särskild anledning att du vill bli av med gt högfrekvent gt-innehåll innan spektralanalys gt gt HTH gt - rajeev - gt gt Katherine skrev: gt För att vara ärlig vet jag inte varför jag försöker bli av med hög gt frekvenser. Jag följer i princip instruktionerna i en ISO. gt Som du kanske har gissat är dataprogrammering och signalbehandling gt egentligen inte mitt område så det språk som används är främmande för mig. Det jag gör är som följer - Jag är civilingenjör och jag försöker att analysera en vägprofil. Profilen är i princip gt equivilent av en signal som varierar med avstånd (men eftersom hastigheten gt är konstant, är det samma som varierande med tiden). Den exakta GT formuleringen av ISO är förbehandlingsfilter bör användas för Vissa frågor kommer i åtanke. en. Vad frågar ISO dig efter förbehandlingsfiltret b. Hur implementeras spektralanalysen c. Specificerar ISO ISO-gränsen för filtret. dvs bli av med frekvenser över X gt exempel butterworth. Men jag trodde att det rörliga genomsnittet gt kan vara en lättare plats att börja jag tenderar att hålla med, glidande medelvärde skulle vara enklare. Det har också en egenskap att alla frekvenskomponenter är fördröjda med exakt samma mängd, vilket innebär att vågformsformen bevaras genom filtret (givetvis kommer vissa frekvenskomponenter att dämpas men de kommer inte att förskjutas med exempelvis 90 grader , i förhållande till andra frekvenser). Butterworth-filtret (och i varierande grad alla analoga filter) har inte denna egenskap, som är känd som linjärfas eller faslinjär. Butterworth hänvisar till en klass av analoga filter med ett visst fas - och frekvenssvar, som är lätt att implementera med elektroniska komponenter som motstånd, kondensatorer och induktorer. (Mitt rimliga gissning är det) folk utvecklade digitala ekvivalenter till dessa och andra analoga filter eftersom de var bekanta med deras egenskaper. Men många människor idag frågar, om du ska arbeta på en digitaliserad signal, varför stör med ett analogt utseende-liknande filter. gt Jag antar anledningen till att jag försöker utrota högfrekvenser är gt eftersom de skulle vara försumbara när det gäller skador på vägarna. gt Jag uppskattar mycket din tid, gt Katherine Igen, jag är mycket skuldsatt för dig för att ta den tid jag har försökt att svara på dina qs nedan: gt Några frågor kommer i åtanke. gt gt a. Vad frågar ISO dig efter förbehandlingsfiltret Efter förbehandlingsfiltret frågar jag att jag utför en FFT som jag antar är också ett svar på din nästa fråga. Det stora förståelseproblemet som jag har är att jag genererade vägprofilen själv och specificerade att jag ville att frekvenserna skulle vara minst 0,01cykelsmeter och en max 4cyclesmeter. Varför då borde jag behöva filtrera ut högfrekvenser gt gt b. Hur implementeras spektralanalysen gt gt c. Specificerar ISO ISO-gränsen för filtret. dvs gt får bort frekvensen över X Det anger inte någon cutoff-frekvens. gtgt exempel butterworth. Men jag trodde att det rörliga genomsnittet gtgt kan vara en lättare plats att starta gt gt. Jag tenderar att hålla med, glidande medelvärde skulle vara enklare. Det har också en gt property gt att alla frekvenskomponenter är fördröjda med exakt samma gtmängd, gt vilket betyder att vågformsformen bevaras genom gt filter gt (naturligtvis kommer vissa frekvenskomponenter att dämpas men de kommer inte att vara gt skiftas med 90 grader i förhållande till andra frekvenser). Gt The Butterworth filter (och i varierande grad alla analoga filter) har inte denna egenskap, som är känd som linjärfas eller faslinjär. gt gt Butterworth hänvisar till en klass av analoga filter med ett specifikt gtfas gt - och frekvenssvar, som råkar vara lätt att implementera med gt electronic gt-komponenter som motstånd, kondensatorer och induktorer. (Jag är rimlig), det var folk som utvecklade digitala ekvivalenter till dessa och andra gt analoga gtfilter eftersom de var bekanta med deras egenskaper. Men om en gt lot gt av folk idag skulle fråga, om du kommer att fungera på en digitaliserad gt-signal, varför bry sig med ett analogt utseende-filter. gt gtgt Jag antar anledningen till att jag försöker utrota högfrekvenser är gtgt eftersom de skulle vara försumbar när det gäller skadan på vägarna. gtgt gtgt Jag uppskattar din tid, gtgt Katherine gt gt lt. gt gt gt HTH gt - rajeev - Tack. Katherine Låter som att du kanske filtrerar data redan som du anger frekvensområdet. Vad är samplingsfrekvensen Är det rumsligt eller tidsmässigt Om du specificerar 4 cyklermätare till systemet är det mycket osannolikt att det bara skulle vara provtagning för att få den frekvensen (Fs18 meter) utan någon form av glidande medelfilter som byggdes in. Vad är ISO Krav (ISO-standard, varifrån) En effekt av filtreringen är att flytta energin till lägre frekvenser istället för att bara haka av den som du skulle göra i frekvensdomänen. Om slutmålet är att beräkna en IRI eller någon annan väggruvhet metrisk än detta kan vara kritisk. gt gt Efter förbehandlingsfiltret frågar jag att jag utför en FFT som jag antar också är ett svar på din nästa fråga. Det stora GT-begripsproblemet som jag har är att jag genererade GT gt-profilen själv och specificerade att jag ville att frekvenserna skulle vara minst 0,01cykelsmeter och en max 4cyclesmeter. Varför då gt borde jag behöva filtrera ut högfrekvenser gt Charlie, jag är väldigt okunnig om rätt terminologi i dessa saker och jag är inte säker på vad du menar med samplingsfrekvens. Jag säger bara vad jag gör. Först genererar jag en slumpmässig vägprofil som har rumsfrekvenser varierande från 0,01 till 4 cyclesm. ISO 8608: 1995 har klassificering av väg och beroende på detta, ger det ett PSD-värde för varje frekvens mellan 0,01 och 4 som du vill ha. Dessa värden läggs sedan in i en ekvation för väggenerering som skapar en väg med några punkter (i mitt fall 8000 eller 400 meter, dvs varje 0,05 meter). Jag graver sedan alla ISO-värden för PSD mot de rumsliga frekvenserna som jag hade ovan. Jag försöker sedan arbeta bakåt för att se om jag kan generera samma graf genom att använda samma vägprofil och hitta FFT av den och sedan PSD. Jag vet inte vad du menar med samplingsfrekvens Jag är rädd, kanske är den där uppe i det jag har beskrivit Tack så mycket för din tid, jag är helt som en fisk ur vatten på den här Charlie skrev: gt gt gt Katherine, gt gt Det låter som om du kan filtrera data redan när du anger gt frekvensintervallet. Vad är samplingsfrekvensen Är det rumsligt eller gt temporal gt Om du specificerar 4 cyklarsmätare till systemet är det mycket osannolikt att det bara skulle vara provtagning för att få den frekvensen (Fs18 meter) utan att någon gt av gt moving average filter built I. Gt gt Vad är ISO-kravet (ISO-standard, varifrån) gt gt En effekt av filtreringen är att flytta energin till lägre gt frekvenser istället för att bara haka av den som du skulle göra i gt gt-domänen. Om slutmålet är att beräkna en IRI eller någon gt slags gt annan väggrävhet metrisk än detta kan vara kritisk. Gt gt Charlgt gt gtgt gtgt Efter förbehandlingsfiltret frågar det att jag utför en FFT gt som gtgt jag antar är också ett svar på din nästa fråga. Det stora problemet med problematiken som jag har är att jag genererade GTgt-profilen själv och angav att jag ville att frekvenserna skulle vara minst 0,01cykelsmeter och en max 4cyclesmeter. Varför då gtgt ska jag behöva filtrera ut högfrekvenser gtgt gt gt Tack för informationen om ISO 8608: 1995 ser det ut som en bra referens för några av mitt arbete med bearbetning av vägprofil. Tillbaka till ditt projekt. Som jag förstår det gör du: 1. Skapa vägprofil i rymdfrekvensdomänen med innehåll i 0,01-4 cyclesm 2. Generera rumslig profil från 1 med hjälp av vissa ekvationer (400 meter lång, dx0.05 m, rumslig samplingsfrekvens1dx20 cyclesm) 3 Gradera din PSD-väg från 1 mot ISO-värdena från ISO 8608 4. Beräkna fft och PSD från 2 och jämföra den med 3 för att se om du kan återproducera den. Om detta är korrekt och jag förstår ISO-standarden. Jag tror inte att du behöver göra någon filtrering alls. Din profil från 2 ska kunna generera frekvensdata från 0.0025-10 cyclesm, men du får inte se något innehåll över 4 cyclesm. Hoppas det hjälper till snarare än att förvirra. Du kanske vill titta på The Little Book of Profiling på umtri. umich. eduerdroughnessindex. html för mer info. Katherine ltkatherine. cashellucd. iegt skrev i meddelande nyheter: ef02d7a.7webx. raydaftYaTP. gt Charlie, gt Jag är mycket okunnig på rätt terminologi i dessa saker och jag är inte säker på vad du menar med samplingsfrekvens. Jag säger bara vad jag gör. gt gt gt Först genererar jag en slumpmässig vägprofil som har rumsliga gt frekvenser varierande från 0,01 - 4 cyclesm. ISO 8608: 1995 har gt-klassificeringar av vägen och beroende på detta ger det ett PSD-värde gt för var och en av frekvenserna mellan 0,01 och 4 som du vill ha. Dessa gt-värden läggs sedan in i en ekvation för väggenerering som gt skapar en väg med några punkter (i mitt fall 8000 eller 400meters, dvs varje 0,05 meter). gt Jag graver sedan alla ISO-värden för PSD mot de rumsliga gt frekvenserna som jag hade ovan. gt Jag försöker sedan arbeta bakåt för att se om jag kan generera samma gt graf genom att använda samma vägprofil, och hitta FFT av den och gt sedan PSD. gt jag vet inte vad du menar med samplingsfrekvens Jag är rädd, kanske är det där uppe i det jag har beskrivit gt gt Tack så mycket för din tid, jag är helt som en fisk ute av detta vatten gt Katherine gt Tack för det - är verkligen användbart bara för att se rätt terminologi som används för siffrorna Charlie skrev: gt gt gt Katherine, gt gt Tack för informationen om ISO 8608: 1995 ser det ut som en bra referens för några av mitt arbete på vägprofil bearbetning. Tillbaka till ditt projekt. När jag förstår det gör du: gt gt 1. Skapa vägprofil i rumsfrekvensdomänen med innehåll i gt 0.01-4 gt cyclesm gt 2. Generera rumslig profil från 1 med hjälp av vissa ekvationer (400 gt meter lång, gt dx0. 05 m, Spatial samplingsfrekvens1dx20 cyclesm) gt 3. Grafik din väg PSD från 1 mot ISO-värdena från ISO gt 8608 gt 4. Beräkna fft och PSD från 2 och jämföra den med 3 till gt se om du kan Återproducera det. gt gt Om detta är korrekt och jag förstår ISO-standarden. Jag tror inte att du måste göra någon filtrering alls. Din profil från 2 bör gt kunna generera frekvensdata från 0.0025-10 cyclesm, men du får inte se något gt-innehåll över 4 cyclesm. Gt Hoppas detta hjälper snarare än att förvirra. Du kanske vill titta på The gt Little gt bok av profiling på ltumtri. umich. eduerdroughnessindex. html gt gt gt eller mer info. Gt gt Charlie gt gt Katherine ltkatherine. cashellucd. iegt skrev i meddelande gt news: ef02d7a.7webx. raydaftYaTP. Gtgt Charlie, gtgt Jag är mycket okunnig om rätt terminologi i dessa saker och jag är inte säker på vad du menar med samplingsfrekvens. Jag säger bara vad jag gör. Gtgt gtgt gtgt Först genererar jag en slumpmässig vägprofil som har rumsliga gtgtfrekvenser varierande från 0,01 - 4 cyclesm. ISO 8608: 1995 gt har gtgt klassificeringar av vägen och beroende på detta ger det ett PSD gt värde gtgt för var och en av frekvenserna mellan 0,01 och 4 som du vill ha. gt Dessa gtgt-värden läggs sedan in i en ekvation för väggenerering som gtgt skapar en väg med några punkter (i mitt fall 8000, eller gtgt 400meters, dvs varje 0,05 meter). Gtgt Jag grafar sedan alla ISO-värden för PSD mot gt-rumsliga gtgt-frekvenserna som jag hade ovan. Gtgt Jag försöker sedan arbeta bakåt för att se huruvida jag kan generera den gt samma gtgtgrafen genom att använda samma vägprofil och hitta FFT av det gt och gtgt sedan PSD. gtgt jag vet inte vad du menar med samplingsfrekvens Jag är rädd, kanske är det gtgt där uppe i det jag har beskrivit gtgt gtgt Tack så mycket för din tid, jag är helt som en fisk ute av gtgt vatten på den här gtgt Gtgt Katherine gtgt gt gt gt Vad är en klocklista Du kan tänka på din klocklista som trådar som du har bokmärkt. Du kan lägga till taggar, författare, trådar och till och med sökresultat till din bevakningslista. På så sätt kan du enkelt hålla reda på ämnen som du är intresserad av. För att se din tittellista, klicka på quotMy Newsreaderquot-länken. Om du vill lägga till objekt i din bevakningslista klickar du på citadeln för att titta på listotiklänk längst ner på en sida. Hur lägger jag till ett objekt i min vaktlista För att lägga till sökkriterier i din vaktlista, sök efter önskad term i sökrutan. Klicka på citatetLägg till den här sökningen i min klocklistor på länken på sökresultatsidan. Du kan också lägga till en tagg i din bevakningslista genom att leta efter taggen med direktivet quottag: tagnamequot där tagname är namnet på den tagg du vill titta på. För att lägga till en författare till din bevakningslista, gå till författarens profilsida och klicka på quotAddjär den här författaren till min watch listquot-länk högst upp på sidan. Du kan också lägga till en författare till din bevakningslista genom att gå till en tråd som författaren har publicerat och klicka på quotAdd denna författare till min watch listquot link. Du kommer att få besked när författaren gör ett inlägg. Om du vill lägga till en tråd i din bevakningslista går du till trådsidan och klickar på citatetLägg till den här tråden i min larmlista-länk högst upp på sidan. Om nyhetsgrupper, nyhetsläsare och MATLAB Central Vad är nyhetsgrupper Nyhetsgrupperna är ett globalt forum som är öppet för alla. Nyhetsgrupper används för att diskutera ett stort antal ämnen, göra meddelanden och handelsfiler. Diskussionerna är gängade eller grupperade på ett sätt som låter dig läsa ett upplagd meddelande och alla dess svar i kronologisk ordning. Detta gör det enkelt att följa tråden i samtalet och för att se vad du redan har sagt innan du skickar ditt eget svar eller gör ett nytt inlägg. Nyhetsgruppens innehåll distribueras av servrar som är värd av olika organisationer på Internet. Meddelanden utbyts och hanteras med hjälp av öppna standardprotokoll. Ingen enskild enhet ldquoownsrdquo newsgroups. Det finns tusentals nyhetsgrupper som varje adresserar ett enda ämne eller intresseområde. MATLAB Central Newsreader postar och visar meddelanden i comp. soft-sys. matlab-nyhetsgruppen. Hur läser jag eller postar till nyhetsgrupperna Du kan använda den integrerade nyhetsläsaren på MATLAB Central webbplats för att läsa och skicka meddelanden i den här nyhetsgruppen. MATLAB Central är värd MathWorks. Meddelanden som skickas via MATLAB Central Newsreader ses av alla som använder nyhetsgrupper, oavsett hur de kommer åt nyhetsgrupperna. Det finns flera fördelar med att använda MATLAB Central. Ett konto Ditt MATLAB Central-konto är knutet till ditt MathWorks-konto för enkel åtkomst. Använd E-postadressen till ditt val MATLAB Central Newsreader gör att du kan definiera en alternativ e-postadress som din postadress, för att undvika röran i din primära brevlåda och minska spam. Spamkontroll De flesta nyhetsgruppspamfiler filtreras ut av MATLAB Central Newsreader. Taggningsmeddelanden kan märkas med en relevant etikett av någon inloggad användare. Taggar kan användas som nyckelord för att hitta specifika filer av intresse eller som ett sätt att kategorisera dina bokmärkta inlägg. Du kan välja att låta andra se dina taggar, och du kan visa eller söka otherrsquo-taggar såväl som de i samhället som helhet. Tagging ger ett sätt att se både de stora trenderna och de mindre, mer dunkla idéerna och applikationerna. Vaktlistor Med inställning av vallistor kan du få meddelande om uppdateringar gjorda till inlägg som valts av författare, tråd eller någon sökvariabel. Meddelandena om bevakningslistan kan skickas via e-post (dagligen digest eller omedelbar), visas i My Newsreader, eller skickas via RSS-flöde. Andra sätt att komma åt nyhetsgrupperna Använd en nyhetsläsare via din skola, arbetsgivare eller internetleverantör Betala för nyhetsgruppen tillgång från en kommersiell leverantör Använd Google Groups Mathforum. org ger en nyhetsläsare med tillgång till comp. soft sys. matlab-nyhetsgruppen Kör din egen server. För typiska instruktioner, se: slyckng. phppage2 Välj ditt land Dessa höga, låga och bandvillkor avser frekvenser. I högpass försöker du ta bort låga frekvenser. I lågpass försöker du ta bort högt. I bandpass tillåter du bara ett kontinuerligt frekvensområde att förbli. Att välja avstängningsfrekvens beror på din ansökan. Kodning av dessa filter kan antingen göras genom att simulera RC-kretsar eller genom att leka med Fourier-transformer av din tidsbaserade data. Se wikipedia-artiklarna för kodexempel. svarat den 30 augusti 08 kl 0:58 Så här implementerar du ett lågpassfilter med konvoltering: Observera att exemplet är extremt förenklat. Det gör inte intervalltest och hanterar inte kanterna ordentligt. Filtret som används (box-bil) är ett särskilt dåligt lågpassfilter, eftersom det kommer att orsaka många artefakter (ringning). Läs upp på filterdesign. Du kan också implementera filtren i frekvensdomänen. Så här implementerar du ett högpassfilter med FFT: Igen är det förenklat, men du får tanken. Koden ser inte så komplicerad ut som matematiken. svarat den 17 september 08 kl 12:06 Mycket coolt att ha kodprover. Varför convolution i ett fall och FFT i den andra ndash dfrankow Mar 13 09 på 19:03 dfrankow Ingen särskild anledning. Bara för att visa hur det ser ut på de olika domänerna. Uppdaterad texten för att spegla detta. Tack. Ndash Hallgrim Mar 16 09 kl 21:31 Är du säker på att den första delen av ditt svar är korrekt, där du tillämpar convolution i tidsdomänen med hjälp av en rektangelfunktion Jag trodde att ett lågpassfilter i tidsdomänen krävde en konvolutions konvolvering Funktion ndash stackoverflowuser2010 4 nov 11 kl 18:10 Filtrering beskriver handlingen av bearbetningsdata på ett sätt som tillämpar olika nivåer av dämpning till olika frekvenser inom data. Ett högpassfilter kommer att tillämpa minimal uppmärksamhet (dvs. lämna nivåer oförändrad) för högfrekvenser, men tillämpar maximal dämpning till låga frekvenser. Ett lågpassfilter är det omvända - det gäller ingen dämpning till låga frekvenser genom tillämpning av dämpning till högfrekvenser. Det finns ett antal olika filtreringsalgoritmer som används. De två enklaste är förmodligen Finite Impulse Response-filtret (aka. FIR-filter) och Filteret för infinitivt impulsrespons (aka. IIR-filter). FIR-filtret fungerar genom att hålla en serie prover och multiplicera var och en av dessa prover med en fast koefficient (vilken är baserad på serien i serien). Resultaten av var och en av dessa multiplikationer ackumuleras och är utgången för det provet. Detta kallas Multiplicera-ackumulera - och i dedikerad DSP-maskinvara finns en specifik MAC-instruktion för att göra just detta. När nästa prov tas är det lagt till i början av serien och det äldsta provet i serien tas bort och processen upprepas. Filterets beteende fixas genom valet av filterkoefficienterna. Ett av de enklaste filter som ofta tillhandahålls av bildbehandlingsprogram är medelvärdet för filtret. Detta kan implementeras av ett FIR-filter genom att ställa in alla filterkoefficienter till samma värde. Besvarat 5 okt 08 kl 02:29

No comments:

Post a Comment