Expanded coverage.

Probably mostly just the Fading memory, but also played with
length of data, noise settings, etc.
This commit is contained in:
Roger Labbe committed 2015-01-11 13:22:36 -08:00
1 parent b40184dd45
commit 066958366c
1 file changed
+209 -44
+209 -44
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:c029584dd374b0f2f2bec0b527d961fdac43c5e14ab9d708333e9400e6d719f1"
"signature": "sha256:0adb3177d0f465a38bed1a6cd92dbad50949762c108800f0867d362caa213ab5"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -260,13 +260,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"prompt_number": 1,
"text": [
"<IPython.core.display.HTML at 0x7f3c6cf44630>"
"<IPython.core.display.HTML at 0x7f14d0924240>"
]
}
],
"prompt_number": 2
"prompt_number": 1
},
{
"cell_type": "heading",
@@ -363,7 +363,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
"prompt_number": 2
},
{
"cell_type": "markdown",
@@ -389,7 +389,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
"prompt_number": 3
},
{
"cell_type": "markdown",
@@ -442,11 +442,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6cf5de80>"
"<matplotlib.figure.Figure at 0x7f14b44c8860>"
]
}
],
"prompt_number": 5
"prompt_number": 4
},
{
"cell_type": "markdown",
@@ -471,13 +471,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGNCAYAAAB0YBz5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0VNXax/HvmbRJIwmQEHpNpAoYkA5SRcSC9YJ6xQIW\n8IVrQUEl4EWKchELNrwqinAVKyoiiFQRBESl11BDQktCAumz3z8GBsZQAswkIfw+a2VlZp999nlO\nDkl4sptljDGIiIiIiIh4ia24AxARERERkdJNSYeIiIiIiHiVkg4REREREfEqJR0iIiIiIuJVSjpE\nRERERMSrlHSIiIiIiIhXKekQERERERGv8mjSMWLECGw2m9tHpUqVCtSpXLkyQUFBdOzYkfXr13sy\nBBERERERKWE83tNRt25dkpKSXB9r1qxxHRs3bhwTJkzgjTfeYMWKFURFRdG1a1cyMjI8HYaIiIiI\niJQQHk86fHx8iIqKcn2UK1cOAGMMEydOZOjQofTq1YsGDRowZcoU0tPTmTZtmqfDEBERERGREsLj\nScf27dupXLkytWrVonfv3iQkJACQkJBAcnIy3bp1c9W12+20b9+epUuXejoMEREREREpIXw92VjL\nli2ZMmUKdevWJTk5mVGjRtG6dWvWrVtHUlISABUqVHA7JyoqisTERLeytLQ0T4YlIiIiIiJFJCws\nrECZR5OO7t27u143bNiQVq1aUbNmTaZMmUKLFi3OeJ5lWZ4MQ0REREREShCvLpkbFBREgwYN2Lp1\nKxUrVgQgOTnZrU5ycjLR0dHeDENERERERIqRR3s6/i4rK4sNGzbQqVMnatasSXR0NHPmzCEuLs51\nfMmSJYwfP/6MbZyue6akW7lyJc2aNSvuMMRL9HxLLz3b0k3Pt/TSsy3d9HwvDeeaHuHRno4nn3yS\nRYsWkZCQwPLly7ntttvIzMzk3nvvBWDw4MGMGzeOr776irVr19K3b19CQ0Pp06ePJ8MQEREREZES\nxKM9HXv37qV3794cPHiQyMhIWrVqxbJly6hatSoAQ4YMITMzkwEDBpCSkkLLli2ZM2cOwcHBngxD\nRERERERKEI8mHdOnTz9nnfj4eOLj4z15WRERERERKcG8OpFcRERERERESYeIiIiIiHiVkg4RERER\nEfEqry6ZKyIiInK5cTgc5OTkFHcYpUb16tXJysoq7jAua/7+/thsF9dXoaRDRERExEMcDgfZ2dnY\n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\nUIR6OkRERLzAOByYRceTjg7XOwuP93R4aiK52bwWx9P/dCYcNWKwvfSREg7xihEjRmCz2di4cSN3\n33034eHhREZG8uyzzwKwe/dubrrpJsLCwoiOjmb8ePe9X7Kzsxk5ciQxMTHY7XaqVKnC448/TmZm\nplu9Dz/8kC5dulCxYkXsdjuxsbGMHTsWY4xbva1bt3LHHXdQqVIl7HY7lStX5rbbbiMpyfk9tmPH\nDmw2G1OmTClwLzabza0H4MS9rVu3jnvuuYeyZcvSqFEj1/E5c+bQoUMHQkNDCQ0N5brrruPPP/90\na7Nv374EBgaye/duevbsSWhoKJUrV+a1114D4K+//qJTp06EhIRQvXp1pk6dWiCutLQ0Hn/8capV\nq0ZAQAC1a9dm1KhROBwOV50T9zVu3DgmT55M7dq1sdvtXH311axcudItnjfffBNjDDabzfWxa9cu\nAObNm0f79u0pW7YswcHB1KlTh8cee6xATJ6kng4RERFvWLcKDu2HqEpQrwkmOwvSUsDXF8LLFbqZ\nRXsy8LEs2lR2/6ur+W0BjvFDnft/NG6J7emXsYJCPH0XIm569+5NvXr1GDduHN9//z1jxowhLCyM\n9957jy5duvDSSy8xdepUhgwZQlxcHB07dsQYQ69evVi0aBH9+/enfv36rF+/njfffJN169bx448/\nutp/8803qV+/Pj179sRut/PTTz8xbNgw0tLSGDNmDAC5ublce+21ZGdnM3DgQCpWrEhiYiI//vgj\n+/btIzr6ZFJ/pr/0n678zjvvpFatWowePZqcnBwApk2bxj333EO3bt0YO3YsWVlZvPvuu7Rr144V\nK1ZwxRVXuM53OBz06NGDtm3bMn78eKZOncrgwYMJDAwkPj6ee+65h9tuu4233nqLvn370qpVK2rX\nrg1AZmYmHTt2ZNeuXTz88MPUqFGD5cuXM2LECHbu3MnkyZPdYv3000/JyMjgkUceAeCll17illtu\nYfv27fj6+vLwww+zb98+5s6d65bglC9fnvXr13P99dfTuHFjRo4cSVBQEFu3bmXOnDnn9W/hvJkS\nKDU11fVxKVqxYkVxhyBepOdbeunZlm5F/XzzX4s3eTc1MflT3zDGGOPYs8Pk3dTE5PXvWajzHQ6H\n+WjdYdP0o82mzfStZmtK1sm2v/+fyet1lbP91+KNIzfHK/dwqShJ37uZmZnnVT/vpiZe+/Line truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ceebb70>"
"<matplotlib.figure.Figure at 0x7f14b41e37b8>"
]
}
],
"prompt_number": 6
"prompt_number": 5
},
{
"cell_type": "markdown",
@@ -509,7 +509,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
"prompt_number": 6
},
{
"cell_type": "markdown",
@@ -556,13 +556,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ccc7a90>"
"<matplotlib.figure.Figure at 0x7f14b41ee668>"
]
}
],
"prompt_number": 8
"prompt_number": 7
},
{
"cell_type": "markdown",
@@ -578,7 +578,7 @@
"# reinitialize filter\n",
"cvfilter.x = array([0., 0.])\n",
"\n",
"pos2, zs2 = generate_data(250, noise_factor)\n",
"pos2, zs2 = generate_data(120, noise_factor)\n",
"xs2 = pos2[:,0]\n",
"z_xs2 = zs2[:,0]\n",
"t = np.arange(0, len(xs2) * dt, dt)\n",
@@ -596,13 +596,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAyQAAAGkCAYAAADAJeH1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl01FWe///npyr7VpWELEBCCBBSEQURFAFBloCiLKIg\nELC1tdueGdtux3b8td/5zuC3x3G+zs9xbKfb3hUEAsgOsoogiLgAghsJsi+BBAip7Gt97vePwiht\nqywJleX1OIdz5OZWfd51PockLz/3vq9ljDGIiIiIiIgEgCPQBYiIiIiISPulQCIiIiIiIgGjQCIi\nIiIiIgGjQCIiIiIiIgGjQCIiIiIiIgGjQCIiIiIiIgGjQCIiIiIiIgFz0YHkP/7jP7jxxhtxuVwk\nJiYyfvx4Pv/882/Me/rpp+ncuTMREREMHz6cvXv3XvD12tpaHn30URISEoiKimLChAkUFBRc+ScR\nEREREZFW56IDyZYtW/jpT3/Ke++9x6ZNmwgKCiI7O5uSkpLGOc899xwvvPACv/nNb9ixYweJiYmM\nGjWKioqKxjmPPfYYS5cuZcGCBbzzzjuUlZUxduxYbNtu2k8mIiIiIiItnnW5J7VXVlbicrlYsWIF\nd955J8YYOnXqxM9+9jOeeuopAGpqakhMTOT555/n4YcfprS0lMTERGbNmsW0adMAOHHiBGlpaaxd\nu5bRo0c33ScTEREREZEW77L3kJSVlWHbNrGxsQAcPnyYoqKiC0JFWFgYQ4cOZfv27QDs2rWL+vr6\nC+akpKSQlZXVOEdERERERNqPoMt94c9//nP69u3LwIEDASgsLAQgKSnpgnmJiYmcPHmycY7T6SQ+\nPv6COUlJSRQVFTX+vbS09HLLEhERERGRAHK5XJc0/7ICyeOPP8727dvZtm0blmV97/yLmSMiIiIi\nIu3PJS/Z+sd//EcWLlzIpk2b6Nq1a+N4cnIywAVPOr78+5dfS05OxufzUVxcfMGcwsLCxjkiIiIi\nItJ+XNITkp///OcsWrSIzZs307Nnzwu+lp6eTnJyMhs2bKBfv36Af1P7tm3beP755wHo168fwcHB\nbNiw4YJN7fn5+QwaNOhvXvNSH/lI67Vz50769+8f6DLkKtN9b390z9sf3fP2Sfe9fbmSLRcXHUge\neeQR5s6dy/Lly3G5XI17RqKjo4mMjMSyLB577DGeffZZPB4PGRkZPPPMM0RHR5OTkwP4w8VDDz3E\nk08+SWJiInFxcTz++OP06dOH7Ozsy/4QIiIiIiLSOl10IPnd736HZVmMHDnygvGnn36af/3XfwXg\nySefpLq6mkceeYSSkhJuvvlmNmzYQGRkZOP8F198kaCgIKZMmUJ1dTXZ2dnMnTtX+0xERERERNqh\niw4kF3tw4cyZM5k5c+a3fj0kJISXXnqJl1566WIvLSIiIiIibdRln0MiIiIiIiJypRRIREREREQk\nYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRI\nREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIRERE\nREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIREREREQkYBRIRERERESu\nAmMM75+q4olNx/HW+gJdTosRFOgCRERERETaspoGmzWHynh/2y6u/3wjvzz+Lm/yP0we0SfQpbUI\nCiQiIiIiIs3gTFUDKz86TN3GlYw8+DYTyk80fu2Oc3sABRJQIBERERERaVJ7i2tY+14eKZsXMPXw\nZsLsegDqIl0E33oHzpHjiOjmCXCVLYcCiYiIiIjIFfLZhq2Hitm/Zg3XfrqRn535DAcGgLLeg3Hd\ncQ9h/W7BCg4OcKUtjwKJiIiIiMhlKq/zsWHnfuzVCxn5xZsMra8EoMEZTO3AUUROeZDY1O4BrrJl\nUyAREREREblEx0preeet7SRtep1xJz7Aef5pSHGqh5gx9xA6dDShUTEBrrJ1UCAREREREbkIxhg+\n+fwQx1avxPPZJqae36Tuczg5fcMIEiffR2LmdQGusvVRIBERERER+Q51DT4+3LSd4DfmcsOxHVx7\n/mlIZbiLupETib97Gh3jEgNcZeulQCIiIiIi8jcUl9fw0YpVdN60kIHnDgJQ5wjiWK8hdLx9PNED\nBmMFaZP6lVIgERERERH5mgMHjnN02etkfbSWEdXFAJSFxVA0ZCLdpk4nMz4hwBW2LQokIiIiItLu\n+WzD7nd3YJbNps+h90g/vyzrdGwKNXfkkDbuLmLDwgNcZdukQCIiIiIi7VZldS27Vq3D9dYi+hZ9\nDkC9w8mBzFuInzCZ5JsGYjkcAa6ybVMgEREREZF2p+jAQQ4uW0L3XesYXFMCQGVwBEcHTaBrzv1c\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ccd5b38>"
"<matplotlib.figure.Figure at 0x7f14ac3eb5f8>"
]
}
],
"prompt_number": 9
"prompt_number": 39
},
{
"cell_type": "markdown",
@@ -633,13 +633,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAyQAAAGkCAYAAADAJeH1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmUVOWB9/FvVW/0Rjfd9ALNjiwNCio7KggCiguKG4Jx\nSYxmMmpinMSJczLBd8Yxk3l9jXESsxkjCoi74o6ICMgiICiyI/vWbL3Q0GvVff/AkDCJI2JD9fL9\nnNPnwL1PFb8691jVP+s+zxMKgiBAkiRJkmIgHOsAkiRJkpouC4kkSZKkmLGQSJIkSYoZC4kkSZKk\nmLGQSJIkSYoZC4kkSZKkmLGQSJIkSYqZ4y4kP/vZz+jXrx8ZGRnk5uYyZswYVq5c+Tfj7rvvPgoK\nCkhJSWHYsGGsWrXqmPNVVVXceeed5OTkkJaWxuWXX86OHTu+/iuRJEmS1OAcdyF5//33ueOOO1iw\nYAGzZs0iPj6eESNGUFxcfHTMz3/+cx566CF+9atfsXjxYnJzcxk5ciTl5eVHx9x11128+OKLTJs2\njblz51JWVsall15KNBqt21cmSZIkqd4LnehO7YcOHSIjI4NXXnmFSy65hCAIaN26Nd/73ve49957\nAaisrCQ3N5cHH3yQ2267jdLSUnJzc3niiScYP348ANu3b6d9+/a8+eabjBo1qu5emSRJkqR674Tn\nkJSVlRGNRmnRogUAmzZtoqio6JhS0axZM4YMGcL8+fMBWLp0KTU1NceMadOmDYWFhUfHSJIkSWo6\n4k/0gd///vc566yzGDRoEAC7d+8GIC8v75hxubm57Ny58+iYuLg4srOzjxmTl5dHUVHR0b+Xlpae\naCxJkiRJMZSRkfGVxp9QIbn77ruZP38+8+bNIxQKfen44xkjSZIkqen5yrds/eAHP+CZZ55h1qxZ\ndOjQ4ejx/Px8gGO+6fjz3/98Lj8/n0gkwv79+48Zs3v37qNjJEmSJDUdX+kbku9///s899xzvPfe\ne3Tt2vWYcx07diQ/P58ZM2bQp08f4Mik9nnz5vHggw8C0KdPHxISEpgxY8Yxk9rXrFnD4MGD/+6/\n+VW/8lHDtWTJEvr27RvrGDrFvO5Nj9e86fGaN01e96bl60y5OO5CcvvttzN58mRefvllMjIyjs4Z\nSU9PJzU1lVAoxF133cUDDzxA9+7d6dKlC/fffz/p6elMmDABOFIubrnlFu655x5yc3PJysri7rvv\npnfv3owYMeKEX4QkSZKkhum4C8lvfvMbQqEQF1xwwTHH77vvPn76058CcM8991BRUcHtt99OcXEx\nAwcOZMaMGaSmph4d//DDDxMfH8+4ceOoqKhgxIgRTJ482XkmkiRJUhN03IXkeDcunDhxIhMnTvzC\n84mJiTzyyCM88sgjx/tPS5IkSWqkTngfEkmSJEn6uiwkkiRJkmLGQiJJkiQpZiwkkiRJkmLGQiJJ\nkiQpZiwkkiRJkmLGQiJJkiQpZiwkkiRJkmLGQiJJkiQpZiwkkiRJkmLGQiJJkiQpZiwkkiRJkmLG\nQiJJkiQpZiwkkiRJkmLGQiJJkiQpZiwkkiRJkmLGQiJJkiQpZiwkkiRJkmLGQiJJkiQpZiwkkiRJ\nkmLGQiJJkiSdAkEQsHDXYe6evZOSqkis49Qb8bEOIEmSJDVmlbVR3th0kKmrS/istBqAntml3HJG\nVoyT1Q8WEkmSJOkk2Hu4lmfXlvD8+lJKqqKk1hzmiuJPGVe+gvwLfxjrePWGhUSSJEmqQ6v2VzJ1\ndQlvbzlIxuESLtk6lwv3L6f77lWEo0du1QqtPAdyL4tx0vrBQiJJkiR9TZFowOzth5iyuphleyqJ\nj9YyYcMbfGfNCyTVVBwZFI6DHmcR6nseoR5nxzZwPWIhkSRJkk7QweoIL28oY9qaEnaXV9N73xru\n3rucS3YvIqN415FBfc4lNPRiQmcNJpSeEdvA9ZCFRJIkSfqKtpZVM21tKa9sKCXhUBmXb57FdZtm\nkHto718GtW5P+Ns/InT2ObEL2gBYSCRJkqTjEAQBS4oqmLK6hDnbD5FSc5ib1k3nGxteJ6m26sig\nvAJCA84n1Odc6NmHUHxCbEM3ABYSSZIk6X9RHYny1uZypqwupmj3Ps7ct4YfHFjL5dvmkFpRemTQ\nWYMJXzoezhpMKOxWf1+FhUSSJEn6O/ZX1PL8ulKeXVdKi6JN3LTuFS7c9gFxQfQvgwrPJHzT9wl1\nPzN2QRs4C4kkSZL0V9YeqGLqmmLe3FROzsEi/nnFU1ywYxEAQTgOevQh1OMsQr36w+l9CYVCMU7c\nsFlIJEmS1ORFogFzdxxi6uoSFhdVkFNxgFs/e5sbNrxGQqQGEpsRGnkF4TE3EMprHeu4jYqFRJIk\nSU3WoZoor2woY9raErYdrGHw7mU8+tkb9C1aQfjzW7NCQy8mdOP3CWXnxjht42QhkSRJUpOzs7yG\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ce4b208>"
"<matplotlib.figure.Figure at 0x7f14b44c8f98>"
]
}
],
"prompt_number": 10
"prompt_number": 40
},
{
"cell_type": "markdown",
@@ -670,13 +670,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAyQAAAGkCAYAAADAJeH1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4lNXB/vHvM5OZ7MlkDyQhRAgkoGwB2RQFAaUiiBsC\nVlFbq7VWXmup9meLtdat1pfyWm1tXSjK4gqKooigbIKAsoewhTUkhOz7MnN+f2DTUmtlCTxJ5v5c\nVy7Ic84M9/hcmcntPOeMZYwxiIiIiIiI2MBhdwAREREREfFfKiQiIiIiImIbFRIREREREbGNComI\niIiIiNhGhURERERERGyjQiIiIiIiIrZRIREREREREducdCF5/PHH6devH5GRkcTHxzNmzBi2bdv2\njXkPP/wwSUlJhISEMHToULZv337CeF1dHffccw9xcXGEhYUxduxYDh8+fOaPREREREREWp2TLiSf\nffYZP/nJT/j8889ZunQpAQEBDB8+nJKSkqY5Tz75JM888wzPPvss69atIz4+nhEjRlBZWdk0Z8qU\nKbz99tvMnTuXFStWUF5ezujRo/H5fM37yEREREREpMWzTveT2quqqoiMjGTBggVceeWVGGNo3749\nP/3pT3nwwQcBqK2tJT4+nqeffpo77riDsrIy4uPjeeWVV5gwYQIAhw4dIjU1lUWLFjFy5Mjme2Qi\nIiIiItLinfYakvLycnw+H1FRUQDk5uZSUFBwQqkICgpiyJAhrF69GoANGzbQ0NBwwpzk5GQyMzOb\n5oiIiIiIiP8ION0b3nvvvfTu3ZuBAwcCkJ+fD0BCQsIJ8+Lj48nLy2ua43Q6iYmJOWFOQkICBQUF\nTd+XlZWdbiwREREREbFRZGTkKc0/rUJy3333sXr1alauXIllWd85/2TmiIiIiIiI/znlS7b+53/+\nh3nz5rF06VI6duzYdDwxMRHghHc6/vH9P8YSExPxer0UFRWdMCc/P79pjoiIiIiI+I9Teofk3nvv\n5Y033mDZsmV06dLlhLG0tDQSExNZvHgxWVlZwPFF7StXruTpp58GICsrC5fLxeLFi09Y1L5jxw4G\nDRr0H//NU33LR1qv9evX07dvX7tjyDmm8+5/dM79j865f9J59y9nsuTipAvJ3Xffzauvvsr8+fOJ\njIxsWjMSHh5OaGgolmUxZcoUHnvsMTIyMkhPT+fRRx8lPDyciRMnAsfLxe23387UqVOJj48nOjqa\n++67j549ezJ8+PDTfhAiIiIiItI6nXQhef7557Esi8suu+yE4w8//DC//vWvAZg6dSo1NTXcfffd\nlJSUMGDAABYvXkxoaGjT/OnTpxMQEMD48eOpqalh+PDhvPrqq1pnIiIiIiLih066kJzsBxdOmzaN\nadOmfeu42+1mxowZzJgx42T/aRERERERaaNO+3NIREREREREzpQKiYiIiIiI2EaFREREREREbKNC\nIiIiIiIitlEhERERERER26iQiIiIiIiIbVRIRERERETENiokIiIiIiJiGxUSERERERGxjQqJiIiI\niIjYRoVERERERERso0IiIiIiIiK2USERERERERHbqJCIiIiIiIhtVEhERERERMQ2KiQiIiIiImIb\nFRIREREREbGNComIiIiIiNhGhURERERERGyjQiIiIiIiIrZRIREREREROQeMMaw5Us19n+ZRWue1\nO06LEWB3ABERERGRtqy20ccHuRXMzi5lT1k9AN1jyrj9gmibk7UMKiQiIiIiImdBYXUjr+eU8uau\nMkprvbSvLmRcVS5jzCE6xt1qd7wWQ4VERERERKQZbS+qZXZ2KR/tr+Dig2t5JHcJF5TuJbyuommO\n46L+kJhgY8qWQ4VEREREROQMeX2GTw9V8Vp2CV8drSW4sZZfbnqZMfuW/XNSZBR07o7VuRskpdoX\ntoVRIREREREROU0V9V7m7y5n7o5SfEePMDj/K64u28uQoi2ElxeCOxDrpp9gDbwMYhOxLMvuyC2O\nComIiIiIyCk6UF7P3JwyFuwuI+3oTu7Z+R7D8r7AaXz/nJSajuNnj2N16GRf0FZAhURERERE5CQY\nY1hfUMNr2aUsP1RFRF0FUzfPZPSB5ccnOAOg/zCsbn2wOmdC+vlYTv26/V30X0hERERE5L+o9/r4\ncF8ls7cXEbVjPR0r8riv9hhXHVpJWHUpuNxYV03EunICVky83XFbHRUSEREREZH/oKimkTd3lvFG\nTgm99nzOI9lv0Kn84ImTumfhuPtXWO21SP10qZCIiIiIiPyLnOI6Zu8oYVFuJdGVhTy+7v/ocywb\nABObiKPfEIhNwErpBH0vxnI4bE7cuqmQiIiIiIjf8/oMKw5XMTu7lHUFNWAMw/LW8vBXLxBSVwlR\nsVjj78Bx2dVYLpfdcdsUFRIRERER8VtVDT4W7C5nbk4pBysaiKot444DS7n+8HKiig8fn9R3CI6f\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ce1ceb8>"
"<matplotlib.figure.Figure at 0x7f14ac4cb9b0>"
]
}
],
"prompt_number": 11
"prompt_number": 41
},
{
"cell_type": "markdown",
@@ -703,7 +703,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
"prompt_number": 42
},
{
"cell_type": "code",
@@ -722,13 +722,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAyQAAAGkCAYAAADAJeH1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl0VOXBx/Hvncm+ThKyQAIhQDZ2CCAiIruiCKK4AC5U\nW6u1VqQt1b59i7Vqa1+LFlvtiiKICOKCIouAgIAoIMiWQICwJCEhQPZ1MvO8f8TG0loFDEyS+X3O\nyZHc+8zkN+eamfzOvfd5LGOMQURERERExANsng4gIiIiIiLeS4VEREREREQ8RoVEREREREQ8RoVE\nREREREQ8RoVEREREREQ8RoVEREREREQ8RoVEREREREQ85pwLyW9+8xv69+9PeHg4MTExjBs3jr17\n9/7HuMcee4z4+HiCgoIYNmwY+/btO2t/bW0tDz74INHR0YSEhDB+/Hjy8vK+/SsREREREZEW55wL\nyfr16/nhD3/Ixx9/zNq1a/Hx8WHkyJEUFxc3jnn66aeZNWsWf/zjH9m6dSsxMTGMGjWKioqKxjHT\npk3jzTffZOHChXz00UeUlZUxduxY3G53074yERERERFp9qwLXam9srKS8PBw3nnnHa677jqMMbRr\n144f/ehHPProowDU1NQQExPDM888w7333ktpaSkxMTG8/PLLTJo0CYDc3FwSExNZvnw5o0ePbrpX\nJiIiIiIizd4F30NSVlaG2+0mIiICgJycHAoLC88qFQEBAQwZMoTNmzcDsH37dpxO51ljEhISSE9P\nbxwjIiIiIiLew+dCH/jQQw/Rp08fLr/8cgAKCgoAiI2NPWtcTEwM+fn5jWPsdjtRUVFnjYmNjaWw\nsLDx+9LS0guNJSIiIiIiHhQeHn5e4y+okEyfPp3NmzezceNGLMv6xvHnMkZERERERLzPeV+y9fDD\nD/P666+zdu1aOnbs2Lg9Li4O4KwzHf/8/p/74uLicLlcnD59+qwxBQUFjWNERERERMR7nNcZkoce\neojFixfz4YcfkpKScta+pKQk4uLiWLVqFRkZGUDDTe0bN27kmWeeASAjIwNfX19WrVp11k3tWVlZ\nDBo06Ct/5vme8pGWa9u2bfTr18/TMeQS03H3Pjrm3kfH3DvpuHuXb3PLxTkXkgceeID58+fz9ttv\nEx4e3njPSGhoKMHBwViWxbRp03jqqadIS0sjOTmZJ554gtDQUCZPngw0lIt77rmHGTNmEBMTQ2Rk\nJNOnT6dXr16MHDnygl+EiIiIiIi0TOdcSF588UUsy2LEiBFnbX/sscf45S9/CcCMGTOorq7mgQce\noLi4mIEDB7Jq1SqCg4Mbxz/33HP4+Phw6623Ul1dzciRI5k/f77uMxERERER8ULnXEjOdeHCmTNn\nMnPmzP+638/Pj9mzZzN79uxz/dEiIiIiItJKXfA6JCIiIiIiIt+WComIiIiIiHiMComIiIiIiHiM\nComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComI\niIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiI\niHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIiHiMComIiIiIyCVgjGHLiSqmr8un\npNbl6TjNho+nA4iIiIiItGY19W7ezylnQWYJh0rrAOgWVco9PSI9nKx5UCEREREREbkIiqrqWbS/\nhDeySympdWMZNxl1J7jLdpTu7cZ7Ol6zoUIiIiIiItKE9p2uYUFmCSuPlhNVcYrxxzcyuCyb7qey\n8K0qB8DWsxNEXenhpM2DComIiIiIyLfkchvW5VbyamYxO07WgDFcf2w9P9v1EgF11V8OjIrB6toH\nQsI8F7aZUSEREREREblA5XUu3j5YxsKsEvIrnLSvKGBiyQFuLd5GUvYnDYP6DcG68mqs9N4Q3RbL\nsjwbuplRIREREREROU/HyupYuL+Udw6W4qytY3TuJv5w6H2Sio98OSgwGOt7M7CGXa8S8jVUSERE\nREREzoExhm2F1byaWcKG3EqMMYzO3cyMvfNwVJ5pGBQaDl37YqX3xrpiNFZ0nGdDtwAqJCIiIiIi\nX6PO5WbFkQpezSzm0Olq4qqKuLKygB/kraRLzvaGQR2TscbdjnXlNVi+fp4N3MKokIiIiIiIfIXT\n1fW8caCURQdKcZWWMCX7Pf52eCXBzqovBwWHYk2dhjXiBiyb1hy/ECokIiIiIiL/Yv+ZWhZkFbM8\npwJ3fT13HniHuw+8TaCzpmFAVCy064CVlIp141QsR5RnA7dwKiQiIiIi4vVcbsNHeZUsyCxha2HD\nNL0dyk/w7K4XSSzIahjUdxC2W+7FSuvlwaStjwqJiIiIiHitSqebdw6WsXB/CcfLndjdLoaf+py7\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ce4b7f0>"
"<matplotlib.figure.Figure at 0x7f14b41eeda0>"
]
}
],
"prompt_number": 13
"prompt_number": 43
},
{
"cell_type": "markdown",
@@ -775,11 +775,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6cc8e438>"
"<matplotlib.figure.Figure at 0x7f14afea5b38>"
]
}
],
"prompt_number": 14
"prompt_number": 13
},
{
"cell_type": "markdown",
@@ -792,7 +792,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"pos2, zs2 = generate_data(250, noise_factor=0.2)\n",
"pos2, zs2 = generate_data(120, noise_factor=0.2)\n",
"xs2 = pos2[:,0]\n",
"z_xs2 = zs2[:,0]\n",
"\n",
@@ -808,7 +808,7 @@
" res.append(cvfilter.y[0])\n",
"xs = np.asarray(xs)\n",
"plt.subplot(121)\n",
"plt.plot(t, z_xs2, label='measurment')\n",
"plt.plot(t, z_xs2, label='measurement')\n",
"plt.plot(t, xs, label='filter')\n",
"plt.legend(loc=4)\n",
"plt.subplot(122)\n",
@@ -824,13 +824,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAyQAAAGNCAYAAADghrULAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4U2XCxuFfkqb7vkPLpiKbsrsriuCOgDM6zsiMoijK\n4IKICMo2CuKCiogLo6O4jOt8bqijyLALCgURseyrFFq6pm26pcn5/ogGKygF2p4mee7r8upJctI+\nB6TJk/ec97UYhmEgIiIiIiJiAqvZAUREREREJHipkIiIiIiIiGlUSERERERExDQqJCIiIiIiYhoV\nEhERERERMY0KiYiIiIiImEaFRERERERETFPvQjJ9+nROO+004uLiSE1NZeDAgfzwww+H7DdlyhQy\nMjKIjIykb9++ZGdn13m8urqaO+64g5SUFKKjoxk0aBA5OTnHfyQiIhLwli5dysCBA8nMzMRqtfLq\nq68ess+RXodERKR5qXchWbJkCbfffjsrV65k4cKFhISE0L9/f4qLi337PProozz55JPMnj2b1atX\nk5qaykUXXUR5eblvn1GjRvH+++/z9ttvs2zZMkpLSxkwYAAej6dhj0xERAKO0+mka9euPP3000RE\nRGCxWOo8Xp/XIRERaV4sx7pSu9PpJC4ujo8++ogrrrgCwzBo2bIld955J+PHjwegqqqK1NRUZsyY\nwfDhw3E4HKSmpjJ37lz+8pe/ALB3717atGnDf//7Xy6++OKGOzIREQloMTExPPvss1x//fUA9Xod\nEhGR5ueYryEpLS3F4/GQkJAAwM6dO8nLy6tTKsLDw+nTpw8rVqwAYM2aNbhcrjr7ZGZm0qlTJ98+\nIiIix6I+r0MiItL8hBzrE++66y569OjBWWedBUBubi4AaWlpdfZLTU1l3759vn1sNhtJSUl19klL\nSyMvL8932+FwHGssERE5gri4OLMjNIr6vA79TK8zIiKN52hfZ46pkIwePZoVK1awfPnyQ87fPZz6\n7CMiItJY9DokItJ8HfUpW3fffTfvvPMOCxcupG3btr7709PTAeqMdPx8++fH0tPTcbvdFBYW1tkn\nNzfXt4+IiMixqM/rkIiIND9HNUJy11138d5777Fo0SJOPvnkOo+1a9eO9PR05s+fT69evQDvxYTL\nly9nxowZAPTq1Qu73c78+fPrXNS+adMmzj777MP+zEA9tQAgKyuL3r17mx2jUekYA4OO0f8FwylK\n9XkdOhy9zvg3HWNg0DH6v+N5nal3IRk5ciRvvPEGH374IXFxcb5zdWNiYoiKisJisTBq1Cgefvhh\nOnbsSPv27Zk6dSoxMTFcd911gPeX/rBhwxg7diypqakkJiYyevRounXrRv/+/Y/5IEREJDg4nU62\nbt0KgMfjYffu3axbt46kpCRatWp1xNchERFpfupdSJ5//nksFgv9+vWrc/+UKVOYNGkSAGPHjqWy\nspKRI0dSXFzMmWeeyfz584mKivLtP3PmTEJCQrj22muprKykf//+vPHGGzq/V0REjmj16tVceOGF\ngPe6kMmTJzN58mSGDh3Kyy+/XK/XIRERaV7qXUjqu3Dhzy8OvyU0NJRZs2Yxa9as+v5oERERAC64\n4IIjvh4d6XVIRESal2Neh0REREREROR4qZCIiIiIiIhpVEhERERERMQ0KiQiIiIiImIaFRIRERER\nETGNComIiIiIiJhGhUREREREREyjQiIiIiIiIqZRIREREREREdOokIiIiIiIiGlUSERERERExDQq\nJCIiIiIiYhoVEhERERERMY0KiYiIiIiImEaFRERERERETKNCIiIiIiIiplEhERERERER06iQiIiI\niIiIaVRIRERERETENCokIiIiIiJiGhUSERGTVe7awY8vzcYwDLOjiIiINLkQswOIiASzAxuzsf3j\n77SscpCfnEzq4D+bHUlERKRJqZCIiJhk/7rviJh+OzHV5axv2Y34sy8zO5KIiEiTUyERETHB9pXf\nkPzkaKJdFaxtfRodH55JTHSk2bFERESanK4hERFpYo7VK0ifcRfRrgrWtT+XTo88ozIiIiJBS4VE\nRKQJbVmwgNDpowh3V7Pi5L50ffhJoiPDzI4lIiJiGhUSEZEmUrDwC1o/N55Qj4tFnS+l46RHsNvt\nZscSERExla4hERFpAsvefI8z3nsEm+FhSY+r6DthAjabPhMSERHRq6GISCP79t//5sx3p2MzPMzr\n+SdOG3e/yogEnIKcXLJH3sCGz780O4qI+Bm9IoqINKIdb7xC1/dmYMVgw6U3M2jiOGLCNDgtgWfn\n3Dl0yFlPpxfGmh1FRPyMComISCPZ/9o/afOfWQAs6H8b3W4bicViMTmVSOOwOst823m7fzQxiYj4\nG31MJyLSwAzDwPXv50h9/yU8WPjvJXcy4LYbzI4l0qiiCnN823sWfMnuSidUlHP62PEmphIRf6BC\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6ce71d30>"
"<matplotlib.figure.Figure at 0x7f14b41b5f98>"
]
}
],
"prompt_number": 15
"prompt_number": 45
},
{
"cell_type": "markdown",
@@ -916,13 +916,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6cde05f8>"
"<matplotlib.figure.Figure at 0x7f14ac40c0f0>"
]
}
],
"prompt_number": 16
"prompt_number": 46
},
{
"cell_type": "markdown",
@@ -968,8 +968,8 @@
" cvfilter.Q /= Q_scale_factor\n",
" count -= 1\n",
" \n",
"plt.plot(t[0:100], z_xs2[0:100], label='measurement')\n",
"plt.plot(t[0:100], xs[0:100], label='filter')\n",
"plt.plot(t, z_xs2, label='measurement')\n",
"plt.plot(t, xs, label='filter')\n",
"plt.ylabel('$\\epsilon$')\n",
"plt.xlabel('time (sec)')\n",
"plt.legend(loc=4)\n",
@@ -981,13 +981,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f3c6cbeac18>"
"<matplotlib.figure.Figure at 0x7f14b4175550>"
]
}
],
"prompt_number": 17
"prompt_number": 48
},
{
"cell_type": "markdown",
@@ -995,6 +995,171 @@
"source": [
"The performance of this filter is markedly better than the constant velocity filter. The constant velocity filter took roughly 10 seconds to reacquire the signal after the start of the manuever. The adaptive filter takes under a second to do the same. "
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Fading Memory Filter"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fading memory filters are not normally classified as an adaptive filter since they do not adapt to the the input, but they do provide good performance with manuevering targets. They also have the benefit of having a very simple computational form for first, second, and third order kinematic filters (e.g. the filters we are using in this chapter). This simple form does not require the Ricatti equations to compute the gain of the Kalman filter, which drastically reduces the amount of computation. However, there is also a form that works with the standard Kalman filter. I will focus on the latter in this chapter since our focus is more on adaptive filters. Both forms of the fading memory filter are implemented in `FilterPy`.\n",
"\n",
"The Kalman filter is recursive, but it incorporates all of the previous measurements into the current computation of the filter gain. If the target behavior is consistant with the process model than this allows the Kalman filter to find the optimal estimate for every measurement. Consider a ball in flight - we can clearly estimate the position of the ball at time t better if we take into account all the previous measurement. If we only used some of the measurements we would be less certain about the current position, and thus more influenced by the noise in the measurement. If this is still not clear, consider the worst case. Suppose we forget all but the last measurement and estimates. We would then have no confidence in the position and trajectory of the ball, and would little choice but to weight the current measurement heavily. If the measurement is noisy, the estimate is noisy. We see this effect every time a Kalman filter is initialized. The early estimates are noisy, but then they settle down as more measurements are acquired.\n",
"\n",
"However, if the target is manuevering it is not always behaving like the process model predicts. In this case remembering all of the past measurements and estimates is a liability. We can see this in all of the charts above. The target initiates a turn, and the Kalman filter continues to project movement in a straight line. This is because the filter has built a history of the target's movement, and incorrectly 'feels' confident that the target is moving in a straight line at a given heading and velocity. \n",
"\n",
"The fading memory filter accounts for this problem by giving less weight to older measurements, and greater weight to the more recent measurements. \n",
"\n",
"There are many formulations for the fading memory Filter; I use the one provided by Dan simon in *Optimal State Estimation* [1]. I will not go through his derivation, but only provide the results.\n",
"\n",
"The Kalman filter equation for the covariances of the estimation error is\n",
"\n",
"$$ \\mathbf{P} = \\mathbf{FPF}^\\mathtt{T} + \\mathbf{Q}$$\n",
"\n",
"We can force the filter to forget past measurements by multiplying a term $\\alpha$\n",
"\n",
"$$ \\tilde{\\mathbf{P}} = \\alpha^2\\mathbf{FPF}^\\mathtt{T} + \\mathbf{Q}$$\n",
"\n",
"where $\\alpha > 1.0$. If $\\alpha == 1$ then we get the normal Kalman filter performance. $\\alpha$ is an attribute of `FilterPy`s Kalman filter class; its value defaults to 1 so the filter acts like a Kalman filter unless $\\alpha$ is assigned a value other than 1. There is no hard and fast rule for choosing $\\alpha$, but it is typically very close to 1, such as 1.01. You will need to make many runs with either simulated or real data to determine a value that responds to manuevers without causing the estimate to become too noisy due to overly weighting the noisy measurement.\n",
"\n",
"Why does this work? If we increase the estimate error covariance the filter becomes more uncertain about it's estimate, hence it gives more weight to the measurement. \n",
"\n",
"One caveat - if we use $\\alpha$ than we are computing $\\tilde{\\mathbf{P}}$, not $\\mathbf{P}$. In other words, `KalmanFilter.P` *is not* equal to the covariance of the estimation error, so do not treat it as if it is.\n",
"\n",
"Let's filter our data using the fading memory filter and see the result. I will inject a lot of error into the system so that we can compare various approaches."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# reinitialize filter\n",
"\n",
"pos2, zs2 = generate_data(70, noise_factor=1.2)\n",
"xs2 = pos2[:,0]\n",
"z_xs2 = zs2[:,0]\n",
"\n",
"\n",
"cvfilter.x = array([0., 0.])\n",
"cvfilter.Q = Q_discrete_white_noise(dim=2, dt=dt, var=0.02)\n",
"cvfilter.alpha = 1.00\n",
"\n",
"xs = []\n",
"res = []\n",
"for z in z_xs2:\n",
" cvfilter.predict()\n",
" cvfilter.update([z])\n",
" xs.append(cvfilter.x[0])\n",
" res.append(cvfilter.y[0])\n",
"xs = np.asarray(xs)\n",
"plt.subplot(221)\n",
"plt.plot(t[0:100], z_xs2, label='measurement', alpha=0.5)\n",
"plt.plot(t[0:100], xs, label='filter')\n",
"plt.legend(loc=2)\n",
"plt.title('Standard Kalman Filter')\n",
"\n",
"cvfilter.x = array([0., 0.])\n",
"cvfilter.Q = Q_discrete_white_noise(dim=2, dt=dt, var=20.)\n",
"cvfilter.alpha = 1.00\n",
"\n",
"xs = []\n",
"res = []\n",
"for z in z_xs2:\n",
" cvfilter.predict()\n",
" cvfilter.update([z])\n",
" xs.append(cvfilter.x[0])\n",
" res.append(cvfilter.y[0])\n",
" \n",
"xs = np.asarray(xs)\n",
"\n",
"plt.subplot(222)\n",
"plt.plot(t[0:100], z_xs2, label='measurement', alpha=0.5)\n",
"plt.plot(t[0:100], xs, label='filter')\n",
"plt.legend(loc=2)\n",
"plt.title('$\\\\mathbf{Q}=20$')\n",
"\n",
"\n",
"cvfilter.x = array([0., 0.])\n",
"cvfilter.Q = Q_discrete_white_noise(dim=2, dt=dt, var=0.02)\n",
"cvfilter.alpha = 1.02\n",
"\n",
"xs = []\n",
"res = []\n",
"for z in z_xs2:\n",
" cvfilter.predict()\n",
" cvfilter.update([z])\n",
" xs.append(cvfilter.x[0])\n",
" res.append(cvfilter.y[0])\n",
"xs = np.asarray(xs)\n",
"plt.subplot(223)\n",
"plt.plot(t[0:100], z_xs2, label='measurement', alpha=0.5)\n",
"plt.plot(t[0:100], xs, label='filter')\n",
"plt.legend(loc=2)\n",
"plt.title('Fading Memory ($\\\\alpha$ = 1.02)')\n",
"\n",
"cvfilter.x = array([0., 0.])\n",
"cvfilter.Q = Q_discrete_white_noise(dim=2, dt=dt, var=0.02)\n",
"cvfilter.alpha = 1.05\n",
"\n",
"xs = []\n",
"res = []\n",
"for z in z_xs2:\n",
" cvfilter.predict()\n",
" cvfilter.update([z])\n",
" xs.append(cvfilter.x[0])\n",
" res.append(cvfilter.y[0])\n",
"xs = np.asarray(xs)\n",
"plt.subplot(224)\n",
"plt.plot(t[0:100], z_xs2, label='measurement', alpha=0.5)\n",
"plt.plot(t[0:100], xs, label='filter')\n",
"plt.legend(loc=2)\n",
"plt.title('Fading Memory ($\\\\alpha$ = 1.05)')\n",
"\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f14aa800d30>"
]
}
],
"prompt_number": 79
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first plot shows the performance of the Kalman filter. The filter diverges when the manuever starts and does not reacquire the signal until about 10 seconds. I then made the filter track the manuever very quickly by making the process noise large, but this has the cost of making the filter estimate very noisy due to unduly weighting the noisy measurements. I then implemented a fading memory filter with $\\alpha=1.02$. The filtered estimate is very smooth, but it does take a few seconds to converge when the target regains steady state behavior. However, the time to do so is considerably smaller than for the Kalman filter, and the amount of lag is much smaller - the estimate for the fading memory is much closer to the actual track than the Kalman filter's track is. Finally, I bumped up $\\alpha$ to 1.05. Here we can see that the filter responds almost instantly to the manuever, but that the estimate is not as straight during the steady state operation because the filter is forgetting the past measurements. \n",
"\n",
"This is quite good performance for such a small change in code! Note that there is no 'correct' choice here. You will need to design your filter based on your needs and the characteristics of the measurement noise, process noise, and manuevering behavior of the target."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"References"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* [1] Dan Simon. \"Optimal State Estimation.\" John Wiley & Sons. p. 208-212. (2006)"
]
}
],
"metadata": {}