den här tråden frågar när ett diskret tids Kalman filter är bättre än ett enkelt glidande medelvärde av observationerna: det finns inget slutgiltigt svar. kan någon ge ett slutgiltigt exempel där kalmanfiltret, helst i enkla 1D-fall, gör något annorlunda (och bättre) än att hålla ett glidande medelvärde och ange förhållandena när kalmanfiltret skulle minska till ett enkelt glidande medelvärde en tanke är att kalman filter skulle inte väga alla datapunkter lika eftersom dess varians är initialt mindre och blir bättre med tiden. men det låter som att det bara skulle betyda nära initiala observationer och att så snart variansen konvergerade skulle kalmanfiltret väga varje observation lika mycket som ett glidande medelvärde, så se inte när de två är olika och varför när filtret skulle göra det bättre. frågade feb 17 15 vid 23:52 som det första svaret (med de flesta rösterna) säger kalman-filtret är bättre, i alla fall när signalen ändras. Observera problemuppsättningen Dessa använder algoritmen för att uppskatta någon konstant spänning. Hur kan man använda ett Kalman-filter för det här är bättre än att bara hålla ett löpande medelvärde. Är dessa exempel bara förenklade användarfall av filtret med ett kalmanfilter för att uppskatta en konstant spänning är definitivt överkill. I det specifika problemet är det bättre att använda löpande medelvärdet, vilket vi vet är den bästa estimatorn för Gauss-distributioner. I det här exemplet är den uppmätta spänningen den faktiska spänningen V men med viss ljud typiskt modellerad som 0 betyder Gaussian (white noise). så att våra mätningar är gaussiska med meanV och sigmasigma noise. Kalman-filtret passar bättre för att uppskatta saker som förändras över tiden. Det mest konkreta exempelet är att spåra rörliga objekt. Låt oss föreställa oss att vi kastar en boll, vi vet att det kommer att göra en parabolbåg, men vad kommer våra estimatorer att visa Ett Kalman-filter kommer att ligga mycket nära den aktuella banan eftersom det står att den senaste mätningen är viktigare än de äldre (när kovariansen är låg det är). Det löpande medelvärdet tar alla mätningar lika blåbollsträcka, röda löpande medelvärden (förlåt ingen kalman om jag har tid att kasta den in där om jag har tid, men det skulle mig mycket närmare den blå linjen förutsatt att du modellerade systemet väl ) Kalman-filtret säger å andra sidan att om vår överensstämmelse och återstående var små (vilket innebär att vi hade en bra uppskattning), kommer vi att hålla fast vid tidigare uppskattning och finjustera den en liten bit baserat på restvärdet (eller vår uppskattning fel). Nu eftersom vår xhat kk ligger mycket nära det faktiska tillståndet, när vi utarbetar nästa uppdatering, kommer vi att använda ett systemtillstånd som nära matchar det faktiska tillståndet. Vid x30, säger löpande medelvärdet, är det ursprungliga villkoret y (0) lika viktigt som y (29), det är det, och du får ett stort fel. Kalman-filtret stod för detta. Det sa eftersom vårt fel förra gången var enormt, vi kan göra en drastisk förändring i vår uppskattning (vår xhat), så när vi använder den för nästa uppdatering kommer den att närma sig vad som verkligen händer. Jag hoppas det ger en mening att jag bara märkte din fråga frågar om ett glidande medelvärde mot Kalman. Jag svarade att köra avg vs Kalman (det är ämnet för länken du gav) Bara för att lägga till lite mer info specifikt för det rörliga (windowed) genomsnittet. Det rörliga genomsnittet är en bättre uppskattning av förändrade värden. Eftersom det bara tar hänsyn till senare prov. Tyvärr har det en fördröjning som är förknippad med det, speciellt kring att ändra derivat (Se bara nära t30, där derivatet går från positivt till negativt). Detta beror på att medeltiden är långsam för att se fluktuationer. Vilket är typiskt varför vi använder det för att ta bort fluktuationer (brus). Fönsterstorleken spelar också en roll. Ett mindre fönster är vanligtvis närmare de uppmätta värdena, vilket är meningsfullt och låter bra. Högerfallet är om du har bullriga mätningar betyder ett litet fönster att mer brus visar upp mer i utmatningen. Låt oss se på den andra frågan igen mätningar med medelvärdet5, sigma .1 z 0,3708435, 0,4985331, 0,4652121. Medeltalet av de första 3 proverna är 0.4448629 inte exakt nära det förväntade värdet .5. Detta visar igen att med det mindre fönstret har buller en djupare effekt på utmatningen. Så då är det logiskt vårt nästa steg att ta större fönster, för att förbättra vår ljudimmunitet. Jo, det visar sig att större fönster är ännu långsammare för att återspegla de faktiska förändringarna (se igen på t30 i min graf) och det mest extrema fallet med windowing är i grunden det löpande genomsnittet (som vi redan vet är dåligt för att ändra data) Nu tillbaka till den magiska kalman filter. Om du funderar på det liknar det ett 2-fönsterfönster i genomsnitt (liknande inte detsamma). Titta på X kk i uppdateringssteget, det tar det föregående värdet och lägger till en viktad version av det aktuella provet. Du kanske tror, vad med bruset Varför är det inte känsligt för samma problem som windowed average med en liten provtagningsstorlek Eftersom Kalman filter tar hänsyn till osäkerheten i varje mätning. Vägningsvärdet K (kalman gain) kan betraktas som ett förhållande mellan kovariansen (osäkerheten) av din uppskattning och kovariansen (osäkerheten) av den aktuella uppskattningen (det är faktiskt resterande, men det är lättare att tänka på det på så vis) . Så om den senaste mätningen har mycket osäkerhet K minskar, så spelar det senaste provet en mindre roll. Om den senaste mätningen har mindre osäkerhet än förutsägelsen ökar k, och nu spelar den nya informationen en större roll i nästa uppskattning. Så även med en liten provstorlek blockerar kalmanfiltret fortfarande mycket av bruset. Hur som helst hoppas jag svarar den fönstrade avg vs Kalman-frågan nu besvarad 18 feb 15 kl 03:34 En annan anledning: Kalman-filtret låter dig lägga till mer information om hur systemet du filtrerar fungerar. Med andra ord kan du använda en signalmodell för att förbättra filtrets utmatning. Visst kan ett glidande medelfilter ge mycket bra resultat när du väntar på en nära konstant utmatning. Men så snart signalen du modellerar är dynamisk (tänk tal eller positionsmätningar), kommer det enkla glidande medelfiltret inte att förändras tillräckligt snabbt (eller alls) jämfört med vad Kalman Filter ska göra. Kalman-filtret använder signalmodellen, som fångar din kunskap om hur signalen ändras, för att förbättra dess effekt i förhållande till sanningens variation. svarat feb 18 15 kl 13: 11 har försökt att förstå Kalman-filter. Här är några exempel som har hjälpt mig så långt: Dessa använder algoritmen för att uppskatta någon konstant spänning. Hur kan man använda ett Kalman-filter för det här är bättre än att bara hålla ett löpande medelvärde. Är dessa exempel bara överdimplifierade användningsfall av filtret (Om så är fallet, vilket är ett exempel där ett löpande medel inte räcker till) Tänk exempelvis följande Java-program och utgång . Kalman-utgången matchar inte medeltalet, men de är mycket nära. Varför välja en över den andra JA det är överskattat exempel, mer vilseledande än att utbilda. Om så är fallet, vilket är ett exempel där ett löpande medel inte räcker i alla fall när signalen ändras. Föreställ dig att flytta fordonet. Beräkning av medelvärdet innebär att vi antar att signalvärdet från vilken tidpunkt som helst är lika viktigt. Självfallet är det fel. Intuition säger att den sista mätningen är mer tillförlitlig än den från en timme innan. Ett mycket bra exempel att experimentera med är av formuläret frac. Den har ett tillstånd, så ekvationerna blir inte komplicerade. I diskret tid kan det se ut så här: Theres koden som använder den (Jag beklagar att den Matlab, jag använde inte Python nyligen): Det finns några tips: Ställ alltid Q och R större än noll. Fall Q 0 är mycket dåligt exempel. Du säger till filtret: det är ingen störning som verkar på växten, så efter ett tag kommer filtret att tro endast på dess förutsägelser baserat på modell istället för att titta på mätningar. Matematiskt sett Kk till 0. Som vi vet modeller beskriver vi inte verkligheten perfekt. Experimentera med en viss modellfelhet - modelError Ändra första gissningen av staten (xpost (1)) och se hur snabbt den konvergerar för olika Q, R och inledande Ppost (1) Kontrollera hur filtret förstärker K ändras över tiden beroende på Q och R svarade okt 3 12 klockan 22:37 Faktum är att de är samma sak i viss mening, jag kommer visa ditt något bakom Kalman filter och du kommer bli förvånad. Tänk på följande enklaste uppskattningsproblemet. Vi får en serie mätning z1, z2, cdots, zk, av en okänd konstant x. Vi antar att tillsatsmodellen börjar zi xvi, i1,2, cdots, k (1) slutet där vi är mätljud. Om inget annat är känt, kommer alla att hålla med om att en rimlig uppskattning av x givet k-mätningarna kan ges genom att börja hatten k frac sum zi Nu kan vi skriva om ovanstående ekv. (2) genom enkel algebraisk manipulation för att få starthatt k hat frac (zk-hat) (3) slutet ekv. (3) som helt enkelt är ekv. (2) uttryckt i rekursiv form har en intressant tolkning. Det står att den bästa uppskattningen av x efter k-mätningen är den bästa uppskattningen av x efter k-1 mätningar plus en korrigeringsperiod. Korrigeringsperioden är skillnaden mellan vad du förväntar dig att mäta baserat på k-1-mätning, dvs och vad du faktiskt mäter zk. Om vi markerar korrigeringsfrakten som Pk, så kan vi helt enkelt algebraisk manipulering skriva den rekursiva formen av Pk som början PkP-P (P 1) P Tro det eller ej, Eqs. (3-4) kan identifieras som Kalman-filtreringen ekvationer för detta enkla fall. Varje diskussion välkomnas. För att ge lite smak, se denna lista med böcker: Jag har GrewalAndrews med MatLab, även GrewalWeillAndrews om GPS. Det är det grundläggande exemplet, GPS. Här är ett förenklat exempel, jag intervjuade för ett jobb där de skrev programvara för att hålla koll på alla lastbilar som gick in och ut ur en stor utdelningsgård, till Walmart eller liknande. De hade två typer av information: Baserat på att sätta en RFID-enhet i varje lastbil hade de ganska bra information om den riktning varje lastbil gick med mätningar möjligt många gånger per sekund, men så småningom växer felaktigt, liksom en väsentlig ODE-approximation. På en mycket längre tidskalan kunde de ta en GPS-position på en lastbil, vilket ger en mycket bra, objektiv plats men har en stor varians, du får position inom 100 meter eller något. Hur man kombinerar dessa Det är Kalman-filterets huvudsakliga användning, när du har två källor till information som ger ungefär motsatta typer av fel. Min idé, som jag skulle ha sagt till dem om de hade betalat mig, var att placera en enhet på varje semitrafik där hytten träffade släpvagnen, vilket ger den nuvarande vridradien. Detta kunde ha blivit integrerade för att ge mycket bra kortsiktig information om den riktning som lastbilen var på väg. Tja, det är vad de gör med nästan allt som rör sig idag. Den som jag trodde var söt var gårdar i Indien, där man höll reda på var traktorer var. Den rörliga kroppen behöver inte vara rörlig snabbt för att få samma frågor. Men förstås var den första stora användningen NASA Apollo-projektet. Min far träffade Kalman vid någon tidpunkt. Pappa arbetade mestadels på navigering, ursprungligen missiler för armén, senare ubåtar för marinan. svarat 22 juli 12 kl 19: 25Kalman filter verktygslåda för Matlab Kalman filter verktygslåda för Matlab Skriven av Kevin Murphy, 1998. Senast uppdaterad: 7 juni 2004. kalmanfilter kalmansmoother - implementerar RTS ekvationerna learnkalman - finner högsta sannolikhetsuppskattningar av parametrar som använder EM samplelds - generera slumpmässiga prover ARtoSS - konvertera Auto Regressiv modell av order k till State Space form SStoAR learnAR - finner högsta sannolikhetsuppskattningar av parametrarna med minsta kvadrater Vad är ett Kalman-filter För en utmärkt webbplats, se WelchBishops KF-sida. För en kort intro, läs vidare. Ett linjärt dynamiskt system är en delvis observerad stokastisk process med linjär dynamik och linjära observationer, båda föremål för Gaussian ljud. Det kan definieras enligt följande, där X (t) är den dolda staten vid tiden t och Y (t) är observationen. Kalman-filtret är en algoritm för att utföra filtrering på denna modell, dvs beräkning P (X (t) Y (1). Y (t)). Rauch-Tung-Striebel (RTS) - algoritmen utför offline-utjämning med fast intervall, dvs beräkning P (X (t) Y (1). Y (T)) för t
No comments:
Post a Comment