{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kálmán-szűrés 1.\n",
"\n",
"## Rövid áttekintés\n",
"\n",
"* Rudolf Emil Kálmán (1930-[2016](http://www.ematlap.hu/index.php/tudomany-tortenet-2016-09/347-kalman-rudolf-es-a-kalman-szuro)) magyar származású amerikai villamosmérnök, matematikus publikálja az elméletet (1960) \n",
"* Első alkalmazása: ember nélküli amerikai Hold-szonda (1963)\n",
"* Navigációs és mérnöki alkalmazások\n",
"* Szenzor adatok fúziója (radar, lézerszkenner, kamera, INS,…)\n",
"* GNSS vevők, okostelefonok, számítógépek, játékok, stb. elmaradhatatlan része\n",
"* Tőzsde előrejelzés, idősor elemzés, függvény approximáció\n",
"\n",
"Az eredeti [publikáció](https://www.cs.unc.edu/~welch/kalman/media/pdf/Kalman1960.pdf) közel 25 ezer hivatkozást kapott. Pillantsunk bele:\n",
"\n",
"\n",
"## Meg lehet érteni?\n",
"\n",
"A Kálmán-szűrés olyan algoritmus, amely valamely lineáris dinamikus rendszerben egzakt következetést tesz lehetővé, amely a rejtett Markov-modellhez hasonló Bayes-féle modell, azonban a rejtett változók állapottere folytonos, és minden rejtett és megfigyelhető változó (gyakran többváltozós) normális eloszlású.\n",
"\n",
"A fenti definíció korrekt, de a legtöbbünk számára nem teszi érthetővé, hogy **valójában** mi is a Kálmán-szűrő. Ezért a megértés érdekében egyesével sorra vesszük a Kálmán-szűrő legfontosabb sajátosságait:\n",
"\n",
"* rekurzív\n",
"* optimális\n",
"* közvetett (rejtett) állapotot becsül\n",
"\n",
"Ezek után egy geodéziai szempontból talán könnyebben érthető módon levezetjük a Kálmán-szűrő egyenleteit és egy egyszerű navigációs példán keresztül mutatjuk be a Kálmán-szűrő működését."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Rekurzív becslés\n",
"\n",
"A legegyszerűbb példa az, amikor valamely egyetlen $x$ változóval jellemezhető rendszer állapotát mérjük egymás utáni $t_1, t_2, ... , t_n$ időpontokban. \n",
"\n",
"A méréseink legyenek $x_1, x_2, ... , x_n$.\n",
"\n",
"Az állapot legjobb becslése ez esetben (Gauss-eloszlást feltételezve) a jól ismert számtani közép vagy *átlag*:\n",
"\n",
"$$ \\mu_n = \\frac{1}{n} \\sum_{i=1}^n x_i.$$\n",
"\n",
"Tegyük fel, hogy van egy új mérésünk, $x_{n+1}$, és a célunk az állapot becslése ezen új mérés felhasználásával. Ez az $n+1$ mérésből számított átlag lesz:\n",
"\n",
"$$ \\mu_{n+1} = \\frac{1}{n+1} \\sum_{i=1}^{n+1} x_i.$$\n",
"\n",
"Viszont sokkal hatékonyabb az az eljárás, amikor felhasználjuk a már kiszámított $\\mu_n$ átlagot és csak ezt \"frissítjük\" az új mérés felhasználásával:\n",
"\n",
"$$ \\mu_{n+1} = \\frac{n}{n+1} \\left( \\frac{1}{n} \\sum_{i=1}^n x_i + \\frac{1}{n} x_{n+1} \\right) = \\frac{n}{n+1}\\mu_n + \\frac{1}{n+1} x_{n+1}.$$\n",
"\n",
"Igazából így működik a zsebszámológépünk `STAT` funkciója is: az egymás után bevitt adatok segítségével folyamatosan \"frissíti\" az átlag értékét. Ez a *rekurzív becslés* lényege: a már meglévő becslést az újabb adatok beérkezése után mindig módosítjuk, \"aktualizáljuk\". Példánkban a rekurzív állapot becslés így írható fel kicsit más alakban:\n",
"\n",
"$$\\mu_{n+1} = \\frac{n}{n+1}\\mu_n + \\frac{1}{n+1} x_{n+1} = \\mu_n + K(x_{n+1} - \\mu_n),$$\n",
"\n",
"ahol \n",
"\n",
"$$K = \\frac{1}{n+1}$$\n",
"\n",
"az ún. *erősítés*, amelyik megmondja, hogy mekkora lesz a régi átlag, azaz a $\\mu_n$ korrekciója, illetve\n",
"\n",
"$$x_{n+1} - \\mu_n,$$\n",
"\n",
"amelyik az *új információ* (idegen szóval: *innováció*), hiszen ettől függ, hogy egyáltalán változik-e az előző becslés. Ugyanis ha az új $x_{n+1}$ mérés megegyezik a régi $\\mu_n$ átlaggal, a becslésünk egyáltalán nem fog változni.\n",
"\n",
"Nézzük meg mindezt az alábbi számpéldán keresztül:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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rmXu3LmsXr2a8847j1WrVvHEE0/QsWNH3n//ferr6xkxYgRjxoyhurqa6dOnM3/+fMrKyti5cycAU6ZMYc2aNRQXF1NbW3vEM26++WZuvfVWRo4cyWeffcbYsWNZvnw59913Hw899BAjRoxg3759lJSUZJyshvwh09XzLgBWK6XWeSGMHV6ub2wIDw8//DCvvvoqhYWFbNmyhZUrV9KlSxfH85VS/OhHP+Ktt94iEolQU1PDli1bePvtt7n00kspLbVW8xs/frzjPa688koikQj9+/enX79+VFdX8/rrr7NkyZJW//Xu3btZuXIls2fP5rrrrqOsrAygdUnVyspKJk2axMSJE5k4ceIRz5g9ezYff/xx6/c9e/awd+9eRowYwW233cakSZO47LLL6NmzZ8ZpZsgfMlXUVwF/8UIQJ/J5b79QksLy9YK5c+cya9Ys5syZQ1FREaNGjeLgwYNJr3n66afZtm0bCxcuJBqN0qdPHw4ePEgma9sk7vQtIiileOCBBxg7duxhv/3973+33Rl85syZvPXWW8yYMYM77riDZcuWHfZ7c3Mz77zzTmvD0cLkyZO55JJLePXVVznzzDOZPXs2AwcOTFt2Q36R9mCiiBQBE4DnHX6/UUQWiMiCbdu2uSWf4zrGbqxvbAgHu3btomPHjhQVFVFdXc38+fNbf4tGozQ0NBxxze7duzn66KOJRqPMmTOndWnSkSNH8vLLL3Pw4EH27duXdPus559/nubmZlavXs2nn37KgAEDGDt2LA8//HDrMz/55BP279/PmDFjeOyxxzhw4ABgLYfa3NzM+vXrOe+887jnnnuora1l3759hz1jzJgxPPjgg63fW9w4q1evZvDgwfzgBz+gqqqK6urq7BLPkBdkYlFfBHyglNpi96NSaiowFazV81yQDbDWN473UYN/6xsb9GDcuHE8/PDDVFZWMmDAAM4888zW32688UYqKysZNmwYTz/9dOvxSZMmMX78eKqqqhgyZEirNTp8+HAmTJjAqaeeSu/evamqqqJjx462zx0wYACjRo1iy5YtPPLII5SUlHDDDTewdu1ahg0bhlKKbt26MX36dMaNG8fixYupqqqiqKiIiy++mF/+8pdcffXV7N69G6UUt956K+Xl5Yc94/777+db3/oWlZWVNDY2cs455/DII4/w29/+ljlz5lBQUMCgQYO4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",
"text/plain": [
"