Added MMAE filtering section.

This commit is contained in:
Roger Labbe committed 2015-07-30 21:45:13 -07:00
1 parent e8b17d668b
commit 625c89bee4
3 files changed
+250 -90

No files matched your search

+246 -89
View File
@@ -28,6 +28,7 @@
"@import url('http://fonts.googleapis.com/css?family=Source+Code+Pro');\n",
"@import url('http://fonts.googleapis.com/css?family=Vollkorn');\n",
"@import url('http://fonts.googleapis.com/css?family=Arimo');\n",
"@import url('http://fonts.googleapis.com/css?family=Fira_sans');\n",
"\n",
" div.cell{\n",
" width: 900px;\n",
@@ -118,9 +119,9 @@
" white-space: nowrap;\n",
" }\n",
" div.text_cell_render{\n",
" font-family: 'Arimo',verdana,arial,sans-serif;\n",
" font-family: 'Fira sans', verdana,arial,sans-serif;\n",
" line-height: 125%;\n",
" font-size: 120%;\n",
" font-size: 115%;\n",
" text-align:justify;\n",
" text-justify:inter-word;\n",
" }\n",
@@ -410,7 +411,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x6e4c908>"
"<matplotlib.figure.Figure at 0x5126908>"
]
},
"metadata": {},
@@ -470,9 +471,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvUAAAE6CAYAAACWFK1xAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8Tdf+//HXOREyihgSU0UozRXXVGlwiTFUa0oojaGG\n+6VRraGU6kC0KUVNRVu0JagqVVzVRm5LEUPNs6ZFzBJBhERiSPbvj/xyrtMkakyc9P18PDweztpr\n7/1Zy5F8zjprr2UyDMNARERERERsljm/AxARERERkQejpF5ERERExMYpqRcRERERsXFK6kVERERE\nbJySehERERERG6ekXkRERETEximpFxH5C2azGW9v7/wOQ0REJFdK6kUkX5jN5nv6ExERka/xmkym\nfL3//crqPzs7O44dO5ZrvcDAQEvdWbNm5WGEkheOHz+O2WymadOm+R2KiDwihfI7ABH5exo9enS2\nRHnu3LmcOHGCXr16UbFiRatjtWvXzsPoCpZChQpx69YtPv/8c8aOHZvt+LFjx/j5558t9Wz1A4zk\nLuvfVP+2IgWXknoRyRejR4/OVrZ27VpLUh8QEJAPURVMJUqUwNvbm3nz5vH+++9jZ2dndfyLL74A\noG3btixfvjw/QpRHTJvHixR8mn4jIo+9Jk2aYDabiY2NZdq0aVSvXh1HR0eCgoIAuHLlChMnTqRZ\ns2aUL1+eIkWK4OHhQbt27diyZUuu142JieHf//433t7eODg44OHhwb/+9S+mTJlyV3EtXboUBwcH\nqlSpwtGjR3Otl5aWhru7OyVLluTmzZs51hk2bBhms5n58+dbyjZu3Ei7du144okncHBwwNPTEz8/\nP4YNG3ZX8WUxmUz07duXuLg4Vq1aZXXs1q1bzJ07F39/f2rUqJHrNZKSkhg1ahTVq1fH2dmZokWL\n0qhRI7799ttsdW/evMmMGTN47rnn8PLywsHBgeLFi9OiRQtWr16d4/X37dtH165d8fb2xtHRkVKl\nSlGzZk0GDBjAlStXLPXCwsIwm81s2LAhx+vkNMUk65yIiAh++OEHAgICKFq0KMWLF7fUSUtL46OP\nPuLpp5/GxcUFFxcX/Pz8cpyKdPtUlvPnz9OnTx88PT1xcXGhYcOGbN68GYCrV68yePBgKlSogIOD\nA9WrV2fZsmW59vGyZcto0aIFxYsXx8HBgapVqzJy5EiuXr2arW7FihUxm82kp6czduxYqlSpgoOD\n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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x6e319b0>"
"<matplotlib.figure.Figure at 0x6fe87b8>"
]
},
"metadata": {},
@@ -507,7 +508,7 @@
"from filterpy.kalman import KalmanFilter\n",
"from filterpy.common import Q_discrete_white_noise\n",
"\n",
"def make_cv_filter(dt):\n",
"def make_cv_filter(dt, noise_factor):\n",
" cvfilter = KalmanFilter(dim_x = 2, dim_z=1)\n",
" cvfilter.x = array([0., 0.])\n",
" cvfilter.P *= 3\n",
@@ -519,13 +520,15 @@
" \n",
" return cvfilter\n",
"\n",
"def initialize_filter(kf):\n",
"def initialize_filter(kf, noise_factor=None):\n",
" \"\"\" helper function - we will be reinitialing the filter\n",
" many times.\n",
" \"\"\"\n",
" \n",
" kf.x.fill(0)\n",
" kf.P = np.eye(kf.x.shape[0]) * .1"
" kf.P = np.eye(kf.dim_x) * .1\n",
" if noise_factor is not None:\n",
" kf.R = np.eye(kf.dim_z) * noise_factor"
]
},
{
@@ -561,19 +564,9 @@
"outputs": [
{
"data": {
"image/png": "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\nfdS32UP9mj3Ur9lD/Zo97mXqt+nhPS4ujqeffprTp0/j5+dHtWrVWLlyJc2bNwfgtdde49q1a/Tp\n04f4+HgeeughYmJi7nsLbRERERERR2V6eJ85c+Zdz4mKisrUzoAiIiIiIs7MLue8i4iIiIjI7RTe\nRUREREQchMK7iIiIiIiDUHgXEREREXEQCu8iIiIiIg5C4V1ERERExEEovIuIiIiIOAiFdxERERGR\nbJCamkrz5s05fvx4ll1T4V1EREREJBu4uLjQoEED3nzzzSy7puk7rIqIiIiIOItNmzbx9ddfM378\neABef/11UlNTs+z6GnkXEREREckilSpV4rPPPmPXrl0AeHl5kTdv3iy7vsK7iIiIiMg/MGzYMPbu\n3QuAn58fW7ZsoXLlytnyXgrvIiIiIiL/QEBAAP369bM9L1GiBBaLJVveS+FdREREROQenDp1ilGj\nRtmev/TSS0yePDlH3lvhXURERETkHvj7+xMdHc3KlSsBcHNz44EHHsiR99ZqMyIiIiIid7FixQoK\nFy5M7dq18fLy4ssvvyQ4ODjH69DIu4iIiIjIXcTHx/PCCy+QkpICQLVq1ShQoECO16GRdxERERGR\nv7l+/Tpz586lW7duWCwWOnfujKenp9llaeRdREREROTvXFxcmDJlCl988QUAFouFyMhIXF1dza3L\n1HcXEREREbETv//+O9u3bwesN6F+/PHHlChRwuSq0lJ4FxEREREBdu3aRadOnUhISACgZs2a1K9f\n3+Sq0tKcdxERERHJtbZs2ULt2rVxdXXlkUceYd++fVy5cgUvLy+zS0uXRt5FREREJFcyDIOhQ4cy\nY8YMW9ugQYMoWLCgiVVlzC7C+5tvvknt2rXx8/MjICCAiIgI9uzZk+acbt264eLikuanXr16JlUs\nIiIiIo4oJSWFAwcOANabUKdNm8b169dNrirz7CK8r1u3jpdffpnNmzezevVq3NzcaNasGfHx8bZz\nLBYLzZs35/Tp07afFStWmFi1iIiIiDia2NhYGjduzIULFwCoVKkSAwcONLmqzLOLOe83tpa9Yc6c\nOfj5+bFp0ybatGkDWP9Zw8PDg4CAADNKFBEREREHde7cOby9vfHy8qJmzZo899xzHDlyhOrVq5td\n2j2zi5H3v7t48SKpqan4+/vb2iwWCxs2bCAwMJDy5cvTq1cvzpw5Y2KVIiIiIuIIBLine truncated
"text/plain": [
"<matplotlib.legend.Legend at 0x752fe10>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x74060f0>"
"<matplotlib.figure.Figure at 0x70a9ba8>"
]
},
"metadata": {},
@@ -584,9 +577,10 @@
"# extract the x coordinates\n",
"import numpy as np\n",
"\n",
"noise_factor = 2\n",
"dt = 0.1\n",
"# initialize filter\n",
"cvfilter= make_cv_filter(dt)\n",
"cvfilter= make_cv_filter(dt, noise_factor)\n",
"initialize_filter(cvfilter)\n",
"\n",
"xs = pos[:, 0]\n",
@@ -597,7 +591,7 @@
"bp.plot_track(t, xs)\n",
"bp.plot_filter(t, kxs[:, 0], label='KF')\n",
"bp.set_labels(title='Track vs KF', x='time (sec)', y='X');\n",
"plt.legend(loc=4)"
"plt.legend(loc=4);"
]
},
{
@@ -616,9 +610,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7410240>"
"<matplotlib.figure.Figure at 0x81162e8>"
]
},
"metadata": {},
@@ -659,9 +653,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7458128>"
"<matplotlib.figure.Figure at 0x811e8d0>"
]
},
"metadata": {},
@@ -698,9 +692,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x75eb080>"
"<matplotlib.figure.Figure at 0x706d7b8>"
]
},
"metadata": {},
@@ -737,11 +731,11 @@
},
"outputs": [],
"source": [
"def make_ca_filter(dt):\n",
"def make_ca_filter(dt, noise_factor):\n",
" cafilter = KalmanFilter(dim_x=3, dim_z=1)\n",
" cafilter.x = array([0., 0., 0.])\n",
" cafilter.P *= 3\n",
" cafilter.R *= 1\n",
" cafilter.R *= noise_factor\n",
" cafilter.Q = Q_discrete_white_noise(dim=3, dt=dt, var=0.02)\n",
" cafilter.F = array([[1, dt, 0.5*dt*dt],\n",
" [0, 1, dt], \n",
@@ -763,9 +757,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x764e3c8>"
"<matplotlib.figure.Figure at 0x70079e8>"
]
},
"metadata": {},
@@ -773,7 +767,7 @@
}
],
"source": [
"cafilter = make_ca_filter(dt)\n",
"cafilter = make_ca_filter(dt, noise_factor)\n",
"initialize_const_accel(cafilter)\n",
"\n",
"kxs2, _, _, _ = cafilter.batch_filter(z_xs2)\n",
@@ -824,7 +818,7 @@
"data": {
"image/png": "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\njps8Knd5jdEOI0eOVLt27dSxY0eP+2fPnq1+/fppzpw5+eqvZ8+eat68uV5++WU7hwngJiNYAwDy\nbe/evXr99dc9htYOHTooMTFRAwYMKISRXZPbGO2wbds2bdiwQSNHjvS4PyYmRpcvX9bu3bt17tw5\nzZ07N1/9Dh8+XMuWLdOBAwfsHC6Am4hgDQDwmmVZ2bY5HA6VKFFCPj63xv+1eBqjHWbOnKng4GD9\n9re/9bi/ffv2GjVqlCRp7NixatOmTb767dOnj8qUKaP333/ftrFeD8uyFB8frxMnTri2HT9+XPHx\n8Tfs2gJF3a3xXz8AKEIWLFggHx8fbdq0Se+8847q1q2rUqVKqWHDhvrwww+ztU9OTtbkyZPVtGlT\nlS5dWkFBQerRo4f27t3ranP8+HH5+PgoOjra7djIyEj5+PhoxowZbttbt26tJk2a5DnW/JzbKSkp\nSdHR0WrYsKECAgIUFBSku+++W6NHj5YkRUdH6/HHH5ckRUREyMfHRz4+PhoyZIgkzzXWzmsVGxur\nN998U7Vr11aZMmXUunVrffvtt67j2rZtq7Jly6p69ep688033cZ15coVvfLKK2rdurWCg4NVqlQp\n1a9fX2PHjlViYqJb27zG6O01ySotLU3Lly9Xp06d5Ovr67FNw4YN3V43atQoz34lKSAgQO3atdPS\npUvz1f5GsixLO3bs0B/+8ActWrTItT0mJkaPPPKIdu7cSbgGPPAr7AEAQFE1btw4JSUlKSoqSiVK\nlNCsWbM0ePBg1atXTw888IAkKTU1VV27dtW2bds0aNAgPf/887p06ZJiYmLUpk0bbd26VS1bttRd\nd92lkJAQxcbGusJ1SkqKvvnmG1cwHTFihCQpISFBu3fv1tChQ3MdX37P7fTMM89o/vz5euyxx/TA\nAw8oLS1NP/zwgzZt2iRJevjhh/Xrr7/qgw8+0Pjx49W4cWNJUt26dd3O66nGesyYMcrIyNCIESOU\nnJysadOmqWvXrpo7d66ioqI0dOhQDRw4UJ999plee+011alTR/3795cknTx5UnPnzlXfvn01YMAA\n+fn5afPmzZo6dar27NmjNWvWuM6T1xi9vSZZ7dq1S1evXlVYWFiu176g7rvvPq1du1aHDh3KFtDt\ntHLbD9px8KT+9LuWqnlHebd9zlDdtWtXxcfHZzt27dq12r59u9asWaPWrVsXek09cLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x758def0>"
"<matplotlib.figure.Figure at 0x5126828>"
]
},
"metadata": {},
@@ -852,9 +846,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8110860>"
"<matplotlib.figure.Figure at 0x8309630>"
]
},
"metadata": {},
@@ -866,10 +860,12 @@
"\n",
"def show_residual_chart():\n",
" dt = 0.1\n",
" noise_factor = 0.2\n",
" \n",
" # initialize filter\n",
" cvfilter= make_cv_filter(dt)\n",
" cvfilter= make_cv_filter(dt, noise_factor)\n",
" initialize_filter(cvfilter)\n",
" pos2, zs2 = generate_data(120, noise_factor=0.2)\n",
" pos2, zs2 = generate_data(120, noise_factor)\n",
" xs2 = pos2[:, 0]\n",
" z_xs2 = zs2[:, 0]\n",
"\n",
@@ -960,9 +956,9 @@
"outputs": [
{
"data": {
"image/png": "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\n5uXlYeXKlTh58iROnDiBdevWoby8HC+88AK+//3v9+j9A69/7tw5zeOB/VqBbLwEsvfr1q0DAPzz\nn//EuXPncNddd4WtFZCIa3CpBa7l7bffDp/PF/EPJ+gS0aXCYJ+IKEG2bdum2e890K5x/Pjxms+7\n/PLLcffdd+Pdd99FaWkpPvjgA7S1tXX7/SdMmAAAeP/998OOOZ1OfPTRR5AkCV//+te7/dqxuu66\n6zBmzBi8/fbbaGxs1Czh0dLTa2A0GgHE/utDvI0ePRp5eXn49NNP2WKTiJICg30iogQ5evQonn32\nWdW+119/HZ988glGjRqFG264AYC/5eOJEyfCnt/a2oqOjg6YzWalZKQ7fvjDH8JiseCZZ57BkSNH\nVMcee+wx1NbW4rbbbotY5hMv9957L1wuF/7rv/4Lb7zxBkaMGIEpU6aozonXNQiU+pw+fTo+g+8m\no9GIBx98EDabDQsWLNBcrbehoQH79+/XYXRE1B+xZp+IKAayLOORRx6JuDLrrbfeiuuvv16179vf\n/jYWL16Mv//977j66qtx9OhRbN68GZmZmfif//kf5bx9+/bhzjvvRHl5OUaPHo2SkhI0NzfjzTff\nRHNzM372s5+FTQ6NxWWXXYY1a9bg/vvvR3l5Ob7//e+jqKgIO3bswIcffoihQ4eG3Ywkwo9+9CMs\nXboUjz76KNxuN+6+++6wc+J1DWbMmIHXXnsN//Zv/4Y777wTOTk5GDhwIBYsWKCcE+m/Ybz8+te/\nxueff47nn38eb731FqZNm4bS0lKcP38ex48fx0cffYQHHngg4oJjRERxpW8zIFmura2V7777brmw\nsFBOT0+Xx4wZo2odJ8v+lnIlJSVyRkaGfNNNN8kHDx5UHXc4HPIDDzwgDxo0SM7KypJvv/12ubq6\n+lJ+DCJKYYH2ml213nzyySeV8wOtNx955BH5o48+kqdNmybn5OTIAwYMkG+99VZ5z549qtevrq6W\nf/WrX8k33nijPHjwYDktLU0eMmSIXFFRIb/22mua4wltvbls2TLZYDCE/f0py7L83nvvybfeequc\nn58vWywWecSIEfKDDz4o19fXh5177733RnydkydPypIkyT/+8Y9jvnYBM2fOlCVJUvXWF3X3GkTi\n8/nkhx9+WL7iiitki8UiS5IkDx8+XDl+0003RWy9qfW5Ap859HoHhL6+6OWXX5ZnzJghFxQUyBaL\nRS4pKZFvuOEGedmyZfKxY8di/kxERL0hyXKCUxxduHDhAr7+9a9jypQpeOCBB1BYWIgTJ05g8ODB\nGDVqFADg8ccfx+9+9zusX78eV155JR599FFs374dR44cQXZ2NgDg/vvvx1//+le8+OKLyM/Px+LF\ni3HhwgXs3r07bFl0IqJEW7duHX7yk59g2bJlePjhh/UeDhER9WO6lvE88cQTGDJkiNKlAYCy1Dng\n/6l19erVWLp0KWbPng3A35/ZarVi48aNuO+++9DS0oK1a9di3bp1mD59OgDgpZdewrBhw7BlyxbM\nmDHjkn4mIiIiIqJkoWva+4033sDEiRMxZ84cFBUVYfz48Xj66aeV4ydPnoTNZlMF7Onp6ZgyZQp2\n7NgBANi9ezfcbrfqnNLSUowePVo5h4iIiIioP9I12D9x4gSeeeYZXHHFFaiqqsKDDz6IX/ziF0rA\nX1dXByB8YRqr1aocq6urg9FoDFtspaioKGKPayKiRJIkiYsmERFRUtC1jMfn82HixIn43e9+B8C/\nVPnRo0fx9NNPqzonaOnuP6RaK0QSESXCHXfcgTvuuAMA/+4hIqL46ckiiLpm9ktKSjBmzBjVvlGj\nRuHMmTMAgku8h2bobTabcqy4uBher1dZojygrq4u4b2jiYiIiIiSma7B/o033ojDhw+r9n311Ve4\n/PLLAQDDhw9HcXExqqqqlOMOhwPbt2/H5MmTAfhXiDSbzapzqqurcfjwYeUcIiIiIqL+SNcynoce\negiTJ0/GihUr8P3vfx979+7FH/7wBzz22GMA/KU6ixYtwooVKzBq1CiUlZVh+fLlyMnJwbx58wD4\nf86YP38+lixZAqvVqrTeHDduHCoqKjTftyc/gZC2Xbt2AQDKy8t1Hklq4XVNHF7bxOB1TQxe18Tg\ndU0MXtfE6G05qK7Bfnl5Od544w388pe/xG9/+1sMGzYMy5cvx/3336+cs2TJEtjtdixYsADNzc2Y\nNGkSqqqqkJWVpZyzevVqmEwmzJkzB3a7HRUVFdiwYQMnyBERERFRv6ZrsA8At912G2677bYuz6ms\nrERlZWXE4xaLBWvWrMGaNWviPTwiIiIioj6Ly8sSEREREaUoBvtERERERCmKwT4RERERUYpisE9E\nRERElKIY7BMRERERpSgG+0REREREKYrBPhERERFRimKwT0RERESUohjsExERERGlKLine truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8235d68>"
"<matplotlib.figure.Figure at 0x70a9898>"
]
},
"metadata": {},
@@ -973,13 +969,12 @@
"from filterpy.common import dot3\n",
"from numpy.linalg import inv\n",
"\n",
"# reinitialize filter\n",
"initialize_filter(cvfilter)\n",
"noise_factor = 0.2\n",
"cvfilter= make_cv_filter(dt, noise_factor)\n",
"_, zs2 = generate_data(120, noise_factor)\n",
"\n",
"cvfilter.R = np.eye(1)*0.2\n",
"cvfilter.Q = Q_discrete_white_noise(dim=2, dt=dt, var=0.02)\n",
"epss = []\n",
"for z in z_xs2:\n",
"for z in zs2[:, 0]:\n",
" cvfilter.predict()\n",
" cvfilter.update([z])\n",
" y = cvfilter.y\n",
@@ -1012,9 +1007,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuoAAAE6CAYAAABAsXcUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8T9fjx/HXJ3sgYiQRe0SMkhpFUWrWVtWiqJXSqtEa\n1VJqVI0fNRpqlFqlk1ClRgipLUTtFWKFxEhSRMYnub8/8u1HP40usuj7+Vdzzzn3nnPaR72dnHuu\nyTAMAxERERERyVFssrsDIiIiIiKSnoK6iIiIiEgOpKAuIiIiIpIDKaiLiIiIiORACuoiIiIiIjmQ\ngrqIiIiISA6koC4i8h+xbds2bGxsGDt2rNX1559/Hhsb/XEgIpLT6P/MIiL/MSaT6R9de1xt374d\nW1tbbGxsGD58eHZ3R0TkodlldwdERCRr1KxZk5MnT1KgQIHs7kqmiYuLo1u3bri6unLnzp0n6i8g\nIvLfoxV1EZH/CGdnZ8qWLUu+fPmyuyuZpn///sTHxzNixIjs7oqIyCNTUBcRyQIHDx6kU6dOeHt7\n4+joiLe3N926dSM8PNyqXo8ePbCxsWH79u0sWrSIp59+GhcXF7y8vOjduzfR0dHp7n3u3DneeOMN\nfHx8cHFxIV++fFSoUAF/f38uXbpkqfdne9T/jGEYLFiwgFq1apE7d25cXV2pWrUq06ZNw2w2p6tf\nokQJbGxsSElJYcKECfj4+ODk5ESxYsV4//33SU5O/pez9u989913LF++nFmzZuHl5ZWpzxIRyQra\n+iIiksmWL19Ojx49cHJyok2bNhQtWpQzZ87w1VdfsXbtWrZt24afn59Vm2nTphEUFESnTp1o2bIl\n27dvZ+HChQQHB7Nv3z7LqvjVq1d55plnuH37Ns2bN6d9+/YkJSVx4cIFVq1aRZcuXShatKjVvf/p\ndpDu3bvz5ZdfUqRIEfz9/bG3t+eHH35g6NChbNq0iXXr1mFra5uu3auvvsqOHTto0aIFefLkYd26\ndfzf//0f0dHRfPHFFw85i38tMjKSN998k1deeYWOHTuyePHiTHmOiEhWUlAXEclEZ8+exd/fnxIl\nShASEkKhQoUsZdu3b6dx48b4+/sTGhpq1W7jxo3s3bvXKsAPHDiQWbNmMWLECObOnQvA999/T0xM\nDDNmzGDgwIFW90hOTiYpKemh+v3NN9/w5Zdf4ufnx88//0yuXLkAmDBhAs2bN2fTpk3MmDGDIUOG\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x827da58>"
"<matplotlib.figure.Figure at 0x8366f98>"
]
},
"metadata": {},
@@ -1026,10 +1021,10 @@
"from numpy.linalg import inv\n",
"\n",
"# reinitialize filter\n",
"initialize_filter(cvfilter)\n",
"cvfilter.R = np.eye(1)*0.2\n",
"noise_factor = 0.2\n",
"cvfilter= make_cv_filter(dt, noise_factor)\n",
"_, zs2 = generate_data(120, noise_factor)\n",
"\n",
"cvfilter.Q = Q_discrete_white_noise(dim=2, dt=dt, var=0.02)\n",
"\n",
"Q_scale_factor = 1000.\n",
"eps_max = 4.\n",
@@ -1037,7 +1032,7 @@
"epss = []\n",
"xs = []\n",
"count = 0\n",
"for i, z in zip(t, z_xs2):\n",
"for i, z in zip(t, zs2[:, 0]):\n",
" cvfilter.predict()\n",
" cvfilter.update([z])\n",
" y = cvfilter.y\n",
@@ -1097,9 +1092,9 @@
"outputs": [
{
"data": {
"image/png": "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\nHx9CQ0NZtmwZ33zzDb/99hsVKlS457Hzco8AOHToEB07duTmzZs0b96c5557jpSUFE6cOMGcOXOy\n3Cduv94PGDAATdPYs2cP3bp1s7luFi9enGHDhvH++++zfPnybHvXly9fDmQ8qJ9p//79JCYm8tRT\nT2Vpf/XqVRo1akR8fDzBwcE8//zzpKWlER4eztdff02fPn2oVKkS3bt3JzY2li1bttCyZUtatmxp\n3Ufm+52amkqbNm04dOgQjz/+OC+//DIxMTHMnDmTn3766Z7vc37TNA0nJydSU1Nt/j6ZnnzySTRN\nY+fOnUydOrXA4xO3sfcnCeE4MnuiNU1TL774ok3duXPnVPHixZXBYFDh4eFKKaXWr1+vNE1TdevW\nVfHx8da2aWlpqk2bNkrTNDV//nxr+ejRo5Wmadn2gickJKjU1FTr68we+Tt7TjRNU1WqVMnxHDRN\nU61atbIpGzp0qNI0TQ0aNMimPCIiQpUrV07pdDp18ODBbN+HV155RVksFmvd8ePHlZOTkwoMDLTZ\n14ULF5SmaapNmzZZYoqJiVGapqlGjRops9mcpf7GjRu5PsewsDDl7OysSpQoocLCwqzlFotF9ejR\nQ2malm2v2JQpU/L0s3nz5myPn925lS1bVjk5OamTJ09m22bOnDlK0zT18ccf52qfQoj8N3fuXKVp\nmlq4cGGWunfeecfmertnzx6laZpq2rSpzTelSim1du1apWmaev75523Ks+uRz+s9IjU1Vfn5+Smd\nTqfWrl2bJc7IyEhlMpmsr319fbNcK6dMmXLXXvfOnTsrTdPUkSNHbMqTk5NViRIlVJkyZVRaWpq1\nfOrUqUrTtGzj+eijj5SmaerDDz/MUpeWlqYSEhKsrzPvadOmTcs2rlmzZilN01T37t1tysPDw1Xp\n0qWz7ZE/fPhwnq/tt3/jcjeff/659d9ATmrWrKlcXFxUcnJyrvYpHg5J5IVVZgLr7Oyc7f/s48eP\nV5qmqVmzZimllGrbtq3SNE199913WdoeOXJEaZqmatSoYS3LTOR37Nhxz1jyK5FPS0tTbm5uysPD\nQ0VFRWVpv3jxYqVpmnr11VetZZnvg4eHh83NJ1Pz5s2VTqdTiYmJ1rJdu3YpTdNUv379srSPjY1V\nmqapZs2a3fWcc3OOM2fOVJqmqYkTJ2apCwsLU3q9PttEPjPBz+nr3dt/dDpdrr7CNZvNqnv37krT\nNPXaa6/l2G7dunVK0zQ1fvz4e+5TCPFwXLlyRTk5Oam6devalJtMJlWuXDnl6elpvaY999xzStM0\ndfTo0Wz3Va9ePeXk5GRzfcwukc/rPeLLL79UmqapTp065eqc7ieRzxwSMmLECJvyNWvWKE3T1Dvv\nvGNT3rdvX6Vpmtq9e3eWfWXeP5YvX37PWO+VyFerVk3p9Xp1+vTpLHXTp0/PNpFfvXp1rq7pt1/b\nbx/Kk5MzZ85Yh1MdOHAgx3aZf9/sYhYFR2atEVlUrlw524dXmjdvDmQ8wQ/wxx9/oGlatvO2165d\nmzJlynDmzBmSkpIAePHFF9Hr9XTr1s36EOTJkycf4plkzGKTnJxM7dq1KVmyZJb6tm3bAmQ7jVZA\nQAAeHh5ZyitVqoRSiujoaGvZ9evXAbI9hpeXF507d2b//v08/vjjTJ06lR9++IGEhIQ8n88ff/wB\nQIsWLbLU+fn5UalSpWy3s1gsmM1mLBbLPX/MZjMrV668axxKKYYPH87mzZtp1aoVCxYsyLFtqVKl\nAPj7779ze5pCiHxWrlw52rVrR2hoqM3Dizt37uTatWu88MILuLm5AfDLL7/g5OTEV199xdSpU7P8\npKamYjabOX369F2Pmdd7xG+//QZAcHBwfp12Fh07dsTf359169ZZjwsZw2p0Oh2vvvqqTfu7Xdu7\ndOmCh4cHI0eO5LnnnuPf//43oaGheX6gNT4+nnPnzuHj40NAQECW+sx775369euXq2v67df2nPaV\nKSIigg4dOnDz5k2WLFlC48aNc2wr13bHIIm8yKJs2bJ3LY+NjbX+t1ixYhgMhmzblytXzqZ9o0aN\n2LdvH+3atWPTpk0MGjSIwMBA/P39rWMT81vmsX18fLKtzyyPiYnJUle8ePFst8kcC242m61lmeM0\nc7qAf/HFF0ybNo309HSmT59O+/btKVWqFC+88ALh4eG5PJtb53Ovv9HDpJRi6NChrFixgrZt2/Lt\nt9/mOD4esC6MVdRm8hGisMlcUOj2OdYzf+/fv7+1LCoqCpPJxLRp05g+fXqWnxMnTqBpGomJiXc9\nXl7vEZnX4dyMvX8QQ4cOJS4ujs8//xyAo0eP8uuvv9K6dWuqVq1q0/Zu1/bKlStz8OBBXnjhBX76\n6SeGDx9OvXr1KF++PLNnz871ooCOcF0HuHjxIi1btiQ8PJylS5cyePDgu7aXa7tjkLine truncated
"image/png": "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\nk08+4fvvv+fgwYNUqFDhnufOyTMC4I8//qBz585ER0fTqlUrevXqRXJyMidOnGDOnDlZnhOZ7/dD\nhgxB0zT27t1Ljx49rO6bpUqVYtSoUcyfP5+lS5fabF1funQpkD5QP8OBAwdISEigRYsWWba/cuUK\nTZo04datW3Tp0oWnn36alJQULly4wHfffceAAQOoVKkSPXv2JDY2ls2bN9O6dWtat25tOUbG+200\nGmnXrh1//PEH9erV4/nnnycmJoaZM2fyyy+/3PN9zmuapmEwGDAajVY/nwzNmjVD0zR27NjB1KlT\nCzw+kYm9/5IQhUdGS7Smaapv375WdefOnVOlSpVSTk5O6sKFC0oppdavX680TVMNGjRQt27dsmyb\nkpKi2rVrpzRNUwsWLLCUv/baa0rTNJut4PHx8cpoNFpeZ7TI39lyommaCgoKyvYaNE1Tbdq0sSob\nOXKk0jRNDRs2zKo8PDxc+fv7K51Opw4dOmTzfRg+fLgym82WuuPHjyuDwaBq165tdaywsDClaZpq\n165dlphiYmKUpmmqSZMmymQyZam/cePGfV9jaGiocnBwUN7e3io0NNRSbjabVe/evZWmaTZbxaZM\nmZKjr02bNtk8v61rK1u2rDIYDOrkyZM2t5kzZ47SNE0tX778vo4phMh7c+fOVZqmqUWLFmWp+89/\n/mN1v927d6/SNE099thjVp+UKqXUmjVrlKZp6umnn7Yqt9Uin9NnhNFoVIGBgUqn06k1a9ZkiTMy\nMlKlpaVZXgcEBGS5V06ZMuWure7du3dXmqapo0ePWpUnJSUpb29v5evrq1JSUizlU6dOVZqm2Yzn\nww8/VJqmqQ8++CBLXUpKioqPj7e8znimTZs2zWZcs2bNUpqmqZ49e1qVX7hwQZUpU8Zmi/yRI0dy\nfG/P/InL3Xz55ZeW/wPZqVmzpnJ0dFRJSUn3dUyRPySRFxYZCayDg4PNX/aJEycqTdPUrFmzlFJK\ntW/fXmmaprZt25Zl26NHjypN01SNGjUsZRmJ/E8//XTPWPIqkU9JSVGurq7K3d1dRUVFZdl+8eLF\nStM09eKLL1rKMt4Hd3d3q4dPhlatWimdTqcSEhIsZbt371aapqlBgwZl2T42NlZpmqaaN29+12u+\nn2ucOXOm0jRNTZo0KUtdaGio0uv1NhP5jAQ/u493M3/pdLr7+gjXZDKpnj17Kk3T1EsvvZTtdmvX\nrlWapqmJEyfe85hCiPxx+fJlZTAYVIMGDazK09LSlL+/v/Lw8LDc03r16qU0TVN///23zWM1bNhQ\nGQwGq/ujrUQ+p8+Ib775Rmmaprp163Zf1/QgiXxGl5AxY8ZYla9atUppmqb+85//WJUPHDhQaZqm\n9uzZk+VYGc+PpUuX3jPWeyXyVatWVXq9Xp0+fTpL3fTp020m8itXrryve3rme3vmrjzZOXPmjKU7\n1W+//Zbtdhk/X1sxi4Ijs9aILCpXrmxz8EqrVq2A9BH8AIcPH0bTNJvzttetWxdfX1/OnDlDYmIi\nAH379kWv19OjRw/LIMiTJ0/m45Wkz2KTlJRE3bp1KV26dJb69u3bA9icRqtatWq4u7tnKa9UqRJK\nKW7evGkpu379OoDNc3h6etK9e3cOHDhAvXr1mDp1Kj///DPx8fE5vp7Dhw8D8Pjjj2epCwwMpFKl\nSjb3M5vNmEwmzGbzPb9MJhNffPHFXeNQSjF69Gg2bdpEmzZtWLhwYbbb+vj4AHDt2rX7vUwhRB7z\n9/enQ4cOhISEWA1e3LFjB1evXuWZZ57B1dUVgP/7v//DYDDw7bffMnXq1CxfRqMRk8nE6dOn73rO\nnD4jDh48CECXLl3y6rKz6Ny5M8HBwaxdu9ZyXkjvVqPT6XjxxRettr/bvf3JJ5/E3d2dsWPH0qtX\nLz799FNCQkJyPKD11q1bnDt3jnLlylGtWrUs9RnP3jsNGjTovu7pme/t2R0rQ3h4OJ06dSI6Opol\nS5bQtGnTbLeVe3vhIIm8yKJs2bJ3LY+NjbX86+XlhZOTk83t/f39rbZv0qQJ+/fvp0OHDmzcuJFh\nw4ZRu3ZtgoODLX0T81rGucuVK2ezPqM8JiYmS12pUqVs7pPRF9xkMlnKMvppZncD/+qrr5g2bRqp\nqalMnz6djh074uPjwzPPPMOFCxfu82puX8+9fkb5SSnFyJEjWbZsGe3bt2fLli3Z9o8HLAtjFbeZ\nfIQoajIWFMo8x3rG94MHD7aURUVFkZaWxrRp05g+fXqWrxMnTqBpGgkJCXc9X06fERn34fvpe58b\nI0eOJC4uji+//BKAv//+m//973+0bduWKlWqWG17t3t75cqVOXToEM888wy//PILo0ePpmHDhpQv\nX57Zs2ff96KAheG+DnDx4kVat27NhQsX+Pjjj3nhhRfuur3c2wsHGewqsoiMjLxreLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8267e10>"
"<matplotlib.figure.Figure at 0x81a5588>"
]
},
"metadata": {},
@@ -1114,13 +1109,13 @@
"def zarchan_adaptive_filter(Q_scale_factor, std_scale, \n",
" std_title=False,\n",
" Q_title=False):\n",
" cvfilter = make_cv_filter(dt, 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",
" # reinitialize filter\n",
" initialize_filter(cvfilter)\n",
"\n",
" cvfilter.R = np.eye(1)*0.2\n",
"\n",
" phi = 0.02\n",
@@ -1197,9 +1192,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvIAAAE6CAYAAAB0yLYIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8TOf+wPHPmZlksiJCxJoIsZba21LELkpLtSittVVL\n99u6rdq30rpoFVdbu5+2aNGF0pZS161yqX0JImqLSCSyJzPz/P6IjIxMQkgyk+T7fr3ykjnPWb4z\nkXO++Z7nPI+mlFIIIYQQQgghihSdowMQQgghhBBC5J0k8kIIIYQQQhRBksgLIYQQQghRBEkiL4QQ\nQgghRBEkibwQQgghhBBFkCTyQgghhBBCFEGSyAuntHz5cnQ6HStWrMjTdjqdjnbt2hVQVPemU6dO\n1KpVC4vFUujHDgkJQadzjl/rkSNHUrZsWWJiYhwdihCigDni3BMYGEj16tUL5Vjnzp3DaDQyderU\nQjleVufPn0en0zFkyJBCP/adEhISKF++PAMHDnR0KOIW57jiC3EHTdOsX1npdLq7nrjv3KYwbd68\nmV9//ZWJEyfe90XtXt5jbgri/YeFhfHhhx/SsWNHqlWrhtFoxM/Pj9DQUL7//nu727z//vskJSUx\nZcqUfI9HCOF8Cvvca+8aMWnSpPsqAt3Nu+++i7e3N2+88cZ9bZ9ZnJo8efJ9x1AQn+/WrVt57bXX\naNKkCb6+vri5uVGzZk1GjhzJ+fPns63v5eXFmDFj+L//+z8OHjyY7/GIvJNEXjilXr16ceLECXr2\n7JmtLbeT2cmTJ1m5cmVBhpar999/n2rVqtG/f/8H2o8j/xixZ/z48bz77rtcvnyZrl278vbbb9Oh\nQwd27NjBU089xZgxY7JtU6VKFQYMGMCiRYu4fPmyA6IWQhRn27dv59dff7Xblp/n0L/++ov169cz\nYsQIvL29H2hfznRuT0lJITQ0lM8++4yyZcsyZMgQXn31VcqXL8/ixYtp2LAhe/fuzbbd6NGj8fT0\nZPz48Q6IWtzJ4OgAhLCnVKlSlCpVKs/b1apVqwCiuTd79uzh0KFDvPvuu051ss4PXbt2ZcyYMTRp\n0sRm+bFjx2jVqhWzZ8/mueeeo3HjxjbtL7zwAsuWLWPJkiVy0hdC5Kvc7lzm56T1CxcuBMiX7iT5\nGdeDMhgMTJs2jZEjR+Lj42PTNm3aNCZMmMDw4cM5dOiQTZuHhwdPP/00q1evJiIigoCAgMIMW9xJ\nCXFLeHi40jRNhYSEqIsXL6r+/furcuXKKXd3d9WsWTP19ddfZ9vGYrGozz//XD3yyCPKy8tLeXh4\nqMaNG6t//etfKj09Pdv6hw4dUs8995wKDAxUbm5uqly5cqphw4Zq1KhRKi4uzrresmXLlKZpavny\n5UoppXbs2KE0TbP7NXjwYOt2mfHf6ebNm+r9999XtWvXVm5ubqpMmTKqffv2atOmTbl+DtevX1cv\nvfSS8vf3V0ajUdWvX18tW7bM7uc3dOhQpWmaOnToULa21NRU9cknn6gmTZooX19f5e7urqpVq6ZC\nQ0PVt99+m6f3qJRSX375pWrSpIlyd3dXfn5+6oUXXlCXLl1Sbdu2VTqdzm58BWX48OFK0zQ1Z84c\nu+3+/v4qICCgUGMSQtz23//+V2mapnr06JHjOk2bNlU6nU6dP3/eumz79u2qR48eqly5csrV1VUF\nBASoUaNGqatXr2bbPqdzT16vEUopdfHiRfX666+r4OBg5e7urnx8fFTTpk3VhAkTbLYJCAhQgYGB\nNjHkdA49f/68evfdd5WmaWrFihV2j3vixAmlaZp6/PHHrcuSkpKUl5eXaty4sd1tzp49q4YPH65q\n1qxpjbVu3bpq6NCh6sKFC0oppQYNGpRjXDt37rTu6+bNm+rNN99UlStXVm5ubqpOnTpqzpw56uzZ\ns0rTNDVkyBC7MRQEk8mk3N3dlU6nUzExMdnat2zZojRNUxMnTiy0mIR9UpEX2dy4cYPHH3+csmXL\n8uKLLxITE8PatWvp168fly9ftukjOGjQIFavXk2VKlUYNmwYLi4ufPfdd7z99tts27aNH3/8Eb1e\nD8Dhw4d55JFH0Ov1dO/enRo1apCQkMC5c+dYsWIF//jHP7JV4TMr29WrV2fixIlMnjyZ0qVL8+ab\nb1rXadSokd1tMsXFxfH4449z7NgxmjRpwhtvvMGNGzdYt24dPXv2ZPLkyXarxbGxsbRq1Qqj0Uif\nPn1ITU1l7dq1DB06FJ1Ol6068/PPP1OqVCkaNmyYbV+DBw/mq6++on79+jz//PN4enpy6dIl/vzz\nTzZs2ECvXr3u+T3OnTuXf/zjH5QpU4aBAwfi4+PD1q1badWqFaVLl7b/Qy1ABoPB5t87tWzZkg0b\nNnD69GmH3jERoqR69NFHqVOnDj/99BNRUVGUL1/epv3YsWMcOHCAkJAQa3V11qxZvPfee/j6+vLE\nE0/g7+/PoUOHWLRoEd999x1//PEHlStXvuux83KNANi/fz9du3YlJiaGNm3a8PTTT5OSksKJEyeY\nOXNmtutE1vP9kCFD0DSNnTt30rNnT5vzZpkyZRg5ciQfffQRixcvtltdX7x4MZDxoH6mPXv2kJiY\nyOOPP55t/StXrtC8eXPi4+MJDQ2ld+/epKWlERERwbfffsuAAQOoWrUqvXr1Ii4ujk2bNhESEkJI\nSIh1H5mfd2pqKh06dGD//v00bNiQF154gdjYWKZNm8Zvv/121885v2mahsFgIDU11ebnk+mxxx5D\n0zS2bdvGpEmTCj0+kYWj/5IQziOzEq1pmurXr59N29mzZ1WZMmWU0WhUERERSimlvvrqK6VpmmrU\nqJGKj4+3rpuWlqY6dOigNE1Ts2fPti5/6623lKZpdqvgCQkJKjU11fo6syJ/Z+VE0zRVvXr1HN+D\npmmqXbt2NstGjBihNE1Tw4YNs1l+8eJFVbFiRaXT6dS+ffvsfg4vvfSSslgs1rbjx48rg8Gg6tWr\nZ7Ov8+fPK03TVIcOHbLFFBsbqzRNU82bN1dmszlb+/Xr1+/5PYaHhysXFxfl4+OjwsPDrcstFovq\n06eP0jTNblVs4sSJefrauHGj3ePbe28VKlRQBoNBnTx50u46M2fOVJqmqc8///ye9imEyH+zZs1S\nmqapuXPnZmt75513bM63O3fuVJqmqZYtW9rcKVVKqVWrVilN01Tv3r1tlturyOf1GpGamqoCAwOV\nTqdTq1atyhZnZGSkMplM1tcBAQHZzpUTJ07Mtereo0cPpWmaOnz4sM3y5ORk5ePjo8qXL6/S0tKs\nyydNmqQ0TbMbzyeffKI0TVMff/xxtra0tDSVkJBgfZ15TZs8ebLduKZPn640TVO9evWyWR4REaHK\nlStntyJ/8ODBPJ/bs95xyc2XX35p/T+Qkzp16ihXV1eVnJx8T/sUBUMSeWGVmcC6uLjY/WUfO3as\n0jRNTZ8+XSmlVMeOHZWmaWrLli3Z1j18+LDSNE3Vrl3buiwzkd+6detdY8mvRD4tLU15eHgoLy8v\nFR0dnW39+fPnK03T1Msvv2xdlvk5eHl52Vx8MrVp00bpdDqVmJhoXbZ9+3alaZoaNGhQtvXj4uKU\npmmqVatWub7ne3mP06ZNU5qmqXHjxmVrCw8PV3q93m4in5ng53R7N+uXTqe7p1u4ZrNZ9erVS2ma\npl599dUc11u9erXSNE2NHTv2rvsUQhSMy5cvK4PBoBo1amSz3GQyqYoVKypvb2/rOe3pp59Wmqap\nI0eO2N1X48aNlcFgsDk/2kvk83qNWL9+vdI0TXXv3v2e3tP9JPKZXUJGjx5ts3zFihVK0zT1zjvv\n2CwfOHCg0jRN7dixI9u+Mq8fixcvvmusd0vka9asqfR6vTp9+nS2tilTpthN5JcvX35P5/Ss5/as\nXXlyEhYWZu1OtXfv3hzXy/z52otZFB4ZtUZkU61aNbsPr7Rp0wbIeIIf4MCBA2iaZnfc9gYNGlC+\nfHnCwsJISkoCoF+/fuj1enr27Gl9CPLkyZMF+E4yRrFJTk6mQYMGlC1bNlt7x44dAewOoxUcHIyX\nl1e25VWrVkUpxY0bN6zLoqKiAOweo1SpUvTo0YM9e/bQsGFDJk2axC+//EJCQkKe38+BAwcAaNu2\nbba2wMBAqlatanc7i8WC2WzGYrHc9ctsNrN06dJc41BKMWrUKDZu3Ei7du2YM2dOjuv6+voCcO3a\ntXt9m0KIfFaxYkU6derEoUOHbB5e3LZtG1evXuWZZ57Bw8MDgP/85z8YDAa++eYbJk2alO0rNTUV\ns9nM6dOncz1mXq8Rf/zxBwChoaH59baz6dq1K0FBQaxevdp6XMjoVqPT6Xj55Zdt1s/t3P7kk0/i\n5eXFK6+8wtNPP82///1vDh06lOcHWuPj4zl79iz+/v4EBwdna8+89t5p0KBB93ROz3puz2lfmS5e\nvEiXLl2IiYlhwYIFtGjRIsd15dzuHCSRF9lUqFAh1+VxcXHWf0uXLo3RaLS7fsWKFW3Wb968Obt3\n76ZTp05s2LCBYcOGUa9ePYKCgqx9E/Nb5rH9/f3ttmcuj42NzdZWpkwZu9tk9gU3m83WZZn9NHM6\ngX/99ddMnjyZ9PR0pkyZQufOnfH19eWZZ54hIiLiHt/N7fdzt59RQVJKMWLECD777DM6duzIjz/+\nmGP/eMA6MVZxG8lHiKImc0KhrGOsZ34/ePBg67Lo6GhMJhOTJ09mypQp2b5OnDiBpmkkJibmery8\nXiMyz8P30vf+QYwYMYKbN2/y5ZdfAnDkyBH++9//0r59e2rUqGGzbm7n9mrVqrFv3z6eeeYZfvvt\nN0aNGkXjxo2pVKkSM2bMuOdJAZ3hvA5w4cIFQkJCiIiIYOHChbz44ou5ri/nducgDLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x81390b8>"
"<matplotlib.figure.Figure at 0x8374a58>"
]
},
"metadata": {},
@@ -1226,9 +1221,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvIAAAE6CAYAAAB0yLYIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVNX7wPHPnYVhEVBR3DfcNTeUFs0t93LN3BO3tFy+\nZYuVpqLmVpmWZmaLS/lDU8ul0sJcMrNMSzF3c8GdFAXZYWbO7w9kZGRQUGQGed6vFy+Yc+6dee6g\ndx7Ofe45mlJKIYQQQgghhMhXdM4OQAghhBBCCJFzksgLIYQQQgiRD0kiL4QQQgghRD4kibwQQggh\nhBD5kCTyQgghhBBC5EOSyAshhBBCCJEPSSIvXNKSJUvQ6XQsXbo0R/vpdDpatmx5n6LKnjZt2lCt\nWjWsVmuev3aLFi3Q6Vzjv/Xw4cMpWrQoV69edXYoQoj7zBnnnooVK1KpUqU8ea2TJ09iMpl4++23\n8+T1Mjp9+jQ6nY5Bgwbl+WvfKi4ujuLFixMcHOzsUMQNrvGJL8QtNE2zfWWk0+nueOK+dZ+8tGHD\nBjZv3kxISMhdf6hl5xhv534c/9mzZxkxYgSPPPIIJUuWxN3dndKlS9OkSRM++eQTkpKSMu3z1ltv\nkZCQwJQpU3I9HiGE68nrc6+jz4hJkybd1SDQnbz55pt4e3szevTou9o/fXBq8uTJdx3D/Xh/165d\nS69evahRowZFixbFw8ODKlWq0KNHD3bs2JFp+0KFCvH666/zf//3f+zduzfX4xE5J4m8cEndunXj\n8OHDdO3aNVPf7U5mR44c4csvv7yfod3WW2+9Rfny5enbt+89PY8z/xhx5MSJE4SGhlKkSBGefvpp\nXnvtNTp37sy5c+cYMWIEzZo1y5TMly1bln79+rFgwQIuXLjgpMiFEA+qLVu2sHnzZod9uXkO3bdv\nH6tXr+aFF17A29v7np7L1c7t69ev56+//qJBgwYMGjSI0aNHU79+fb7//nuaNWvGrFmzMu0zcuRI\nvLy8mDBhghMiFrcyODsAIRzx8fHBx8cnx/tVq1btPkSTPTt37iQ8PJw333zT5U7W96pJkyZER0dn\najebzbRt25Zt27axfPnyTJd++/fvz+LFi/niiy/kpC+EyFW3u3KZm4vWf/zxxwC5Uk6Sm3HlhgUL\nFmAymTK1HzhwgKCgICZOnMioUaNwd3e39Xl6evL000+zbNkyIiIiqFChQl6GLG4hI/LCJr0Or2XL\nlpw/f55+/fpRvHhxPD09CQoKYuXKlZn2UUrx+eef8+ijj+Lt7Y2XlxeBgYHMnj0bs9mcafv9+/fT\nt29fKlWqhIeHB8WLF6devXqMHDmS69ev27a7tUZ+27ZttlKV9DjTvzImj1nVyMfGxjJ+/Hhq1KiB\nh4cHRYoUoVWrVqxfv/6270NUVBTDhg2jVKlSuLu789BDD7FkyRKH798XX3wBQO/evTP1paSkMG/e\nPBo2bEixYsXw9PSkQoUKPPnkk6xZsyZHxwiwYsUKGjZsiKenJyVKlCA4OPi+jnobjUaH7QaDgS5d\nugBw8eLFTP0tWrSgRIkStvdGCJH3/vjjD3Q6HZ07d85ym0aNGqHX64mIiLC1bd26lc6dO1O8eHFM\nJhMVK1Zk5MiRREZGZvu1c/oZAXD+/HlGjx5NtWrV8PT0pGjRojRq1IiQkBC7fW6tkW/RooWtlG/Q\noEF259CIiAjGjh2LTqfL8qrtkSNH0Ol0NG3a1NaWmJjI8uXLqV+/vsOBopMnT/L8889TtWpVW6y1\natViyJAhnD17FoCBAwcyePBgACZPnmwX1/bt223PFRsbyyuvvELZsmXx8PCgZs2azJkz577eb+Uo\niQd46KGHqFGjBsnJyQ7vc+rduzdWq5XFixfft9hE9siIvMjk2rVrPP744xQtWpTnnnuOq1evsnLl\nSnr37s2FCxfsagQHDBjAsmXLKFu2LEOGDMFoNLJ+/Xpee+01wsLC+OGHH9Dr9UBaEv/II4+g1+vp\n2LEjlStXJi4ujpMnT7J06VJeffXVTKPw6SPblSpVIiQkhMmTJ+Pr68vLL79s26Z+/foO90kXExPD\n448/zsGDBwkMDGT06NFcu3aNVatW0bVrVyZPnuxwtDg6OpomTZpgMpno2bMnycnJrFy5ksGDB6PT\n6TKNzmzatAkfHx/q1q2b6bkGDhzIihUrqF27Ns8++yxeXl6cP3+eP//8kzVr1tCtW7dsH+OcOXN4\n9dVXKVy4MMHBwRQpUoSffvqJJk2a4Ovr6/iXep9YLBY2bNiApmm0aNHC4TaNGzdmzZo1HDt2zKlX\nTIQoqB599FFq1KjBjz/+yOXLlylevLhd/8GDB/n7779p0aKFbXT1nXfeYezYsfj5+fHUU09RsmRJ\nwsPDWbBgAevXr+ePP/6gTJkyd3ztnHxGAOzZs4f27dtz9epVmjVrxtNPP01SUhKHDx9m5syZmT4n\nMp7vBw0ahKZp/PLLL3Tt2tXuvFm4cGGGDx/Oe++9x8KFCx2Ori9cuBBIu1E/3c6dO4mPj+fxxx/P\ntP3FixcJCgoiNjaWDh060L17d1JSUoiIiODbb7+lX79+lCtXjm7duhETE8O6deto0aKF3bky/f1O\nTk6mVatW7Nmzh7p169K/f3+io6OZOnUq27Ztu+P7nNuOHTvG0aNHqVq1KqVLl87U/9hjj6FpGmFh\nYUyaNCnP4xMZKCFuOHXqlNI0TWmapnr37m3Xd+LECVW4cGFlMplURESEUkqpFStWKE3TVP369VVs\nbKxt25SUFNWqVSulaZqaNWuWrf2VV15RmqapdevWZXrtuLg4lZycbHu8ePFipWmaWrp0qd12mqap\nSpUqZXkMmqapli1b2rW98MILStM0NWTIELv2c+fOqVKlSimdTqd2797t8H0YOnSoslqttr5Dhw4p\ng8GgatWqZfdcp0+fVpqmqVatWmWKKTo6WmmapoKCgpTFYsnUf+XKlWwf46lTp5TRaFRFihRRp06d\nsrVbrVbVs2dPpWma0ul0mfYLCQnJ0dfatWsdvv6VK1dUSEiImjhxoho+fLiqUqWK8vHxUfPnz3e4\nvVJKzZw5U2mapj777LMstxFC3F/vvPOO0jRNzZkzJ1PfmDFj7M63v/zyi9I0TTVu3FjFxMTYbfvV\nV18pTdNU9+7d7dqbN2+e6dyT08+I5ORkVbFiRaXT6dRXX32VKc7IyEhlNpttjytUqJDpXBkSEuLw\nsyNdp06dlKZpav/+/XbtiYmJqkiRIqp48eIqJSXF1j5p0iSlaZrDeObOnas0TVMffvhhpr6UlBQV\nFxdne5z+mTZ58mSHcU2bNk1pmqa6detm1x4REaGKFSumNE1TgwYNsuvbu3dvjs/tp0+fdvj6mzZt\nUiEhIWrs2LGqd+/eysvLS9WrV08dPHjQ4fZKKVWjRg3l5uamEhMTs9xG3H+SyAub9ATWaDQ6/M8+\nbtw4pWmamjZtmlJKqdatWytN09TGjRszbbt//36laZqqXr26rS09kf/pp5/uGEtuJfIpKSnK09NT\nFSpUSEVFRWXaft68eUrTNPX888/b2tLfh0KFCtl9+KRr1qyZ0ul0Kj4+3ta2ZcsWpWmaGjBgQKbt\nY2JilKZpqkmTJrc95uwc49SpU5WmaWr8+PGZ+k6dOqX0er3DRD49wU//A+V2XzqdLtMHRrrDhw9n\neq7g4GB1/PjxLI9n2bJlStM0NW7cuGwdvxAi9124cEEZDAZVv359u3az2axKlSqlvL29bee0p59+\nWmmapv755x+Hz9WgQQNlMBjszo+OEvmcfkasXr1aaZqmOnbsmK1juptEfuPGjUrTNDVy5Ei79qVL\nlypN09SYMWPs2oODg5WmaWrr1q2Zniv982PhwoV3jPVOiXyVKlWUXq9Xx44dy9Q3ZcoUh4n8kiVL\nsnVOz3hu/+WXXxy+/ptvvmm3bbFixdSsWbNUampqlseU/vt1FLPIO1IjLzIpX768w5tXmjVrBqTd\nwQ/w999/o2maw5r0OnXqULx4cY4fP05CQgKQVlOn1+vp2rWr7SbII0eO3McjSat5TExMpE6dOhQt\nWjRTf+vWrQEcTqNVtWpVChUqlKm9XLlyKKW4du2are3y5csADl/Dx8eHTp06sXPnTurWrcukSZP4\n+eefiYuLy/Hx/P333wA0b948U1/FihUpV66cw/2sVisWiwWr1XrHL4vFwqJFixw+T40aNbBarZjN\nZiIiIpg7dy7r16/n4Ycf5uDBgw738fPzA+C///7L8fEKIXJHqVKlaNOmDeHh4YSHh9vaw8LCuHTp\nEs888wyenp4A/PbbbxgMBr755hsmTZqU6Ss5ORmLxcKxY8du+5o5/Yz4448/AOjQoUNuHXYm7du3\nJyAggGXLltleF9LKanQ6Hc8//7zd9rc7t3fu3JlChQoxatQonn76aT755BPCw8NzfENrbGwsJ06c\noGTJklStWjVTf/pn760GDBiQrXN6xnN7Vs81Y8YMrFYr8fHx7N27lw4dOjBmzBieeuqpLOOWc7tr\nkEReZFKiRInbtsfExNi++/r6ZnmzTKlSpey2DwoKYseOHbRp04Y1a9YwZMgQatWqRUBAgK02Mbel\nv3bJkiUd9qe3O5qRpXDhwg73MRjSbi2xWCy2tvQ6zaxO4F9//TWTJ08mNTWVKVOm0LZtW/z8/Hjm\nmWfsbi67k/TjudPv6H7TNI1y5coxatQoFi5cSHR0NCEhIQ63Tb9R60GbyUeI/Cb9pvmMc6yn/zxw\n4EBbW1RUFGazmcmTJzNlypRMX4cPH0bTNOLj42/7ejn9jEg/D2en9v5evPDCC1y/fp3ly5cD8M8/\n//D777/zxBNPULlyZbttb3duL1++PLt37+aZZ55h27ZtjBgxggYNGlC6dGmmT5+e7Line truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8087d68>"
"<matplotlib.figure.Figure at 0x81ef198>"
]
},
"metadata": {},
@@ -1255,9 +1250,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x81aa5c0>"
"<matplotlib.figure.Figure at 0x7752b70>"
]
},
"metadata": {},
@@ -1265,9 +1260,9 @@
},
{
"data": {
"image/png": "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\nf6pUqULv3r2Jj4/nxx9/pF27drRr1860jZzPOz09nQ4dOnDgwAHq16/P888/T1xcHDNmzGDHjh2F\nfs6l7eGHH0bTNLZs2cKUKVMsHU7ZpoT4T3h4uNI0TWmapvr06WNWd/bsWeXu7q70er06f/68Ukqp\nVatWKU3TVMOGDVViYqJpWYPBoDp06KA0TVPz5s0zlY8ZM0ZpmqZ+/PHHXPtOSkpS6enpptdffvml\n0jRNLVu2zGw5TdNUUFBQvu9B0zTVvn17s7KXX35ZaZqmhg4dalZ+8eJF5evrq3Q6ndq/f3+en8OL\nL76ojEajqe7YsWPK1tZWhYSEmG0rIiJCaZqmOnTokCumuLg4pWmaatq0qcrKyspVf+3atTt+j+Hh\n4crOzk55eHio8PBwU7nRaFTPPPOM0jRN6XS6XOtNnjy5SI9169bluf9bt6dpmlqyZEmByyml1OzZ\ns5WmaerTTz8tdFkhRMmYM2eO0jRNLViwIFfd//3f/5kdb3fu3Kk0TVMtWrRQ8fHxZst+9dVXStM0\n9eSTT5qVt23bNtexp6jniPT0dBUYGKh0Op366quvcsUZFRWlMjMzTa8DAgJyHStzjk23nztyPPbY\nY0rTNHX48GGz8tTUVOXh4aG8vLyUwWAwlU+ZMkVpmpZnPB988IHSNE29//77ueoMBoNKSkoyvc45\np02dOjXPuGbOnKk0TVO9e/c2Kz9//ryqUKGC0jRNDR482Kzu0KFDRT62R0RE5Ln/HAEBAUqn05md\nj/NTq1YtZW9vr1JTUwtdVpQcSeSFSU4Ca2dnl+cf+4QJE5SmaWrmzJlKKaU6duyoNE1TmzZtyrXs\n4cOHlaZpqmbNmqaynER+8+bNhcZSXIm8wWBQTk5OysXFRcXGxuZaftGiRUrTNPXSSy+ZynI+BxcX\nF7OTT442bdoonU6nkpOTTWXbtm1TmqapgQMH5lo+Pj5eaZqmWrZsWeB7vpP3OGPGDKVpmpo4cWKu\nuvDwcGVjY5NnIp+T4Of8QCnoodPpcp0wbleURH7FihVK0zQ1YcKEQpcVQpSMy5cvK1tbW9WwYUOz\n8szMTOXr66tcXV1Nx7QnnnhCaZqmjhw5kue2GjVqpGxtbc2Oj3kl8kU9R3z33XdK0zTVo0ePO3pP\nd5PIb9q0SWmapkaMGGFWvmzZMqVpmvq///s/s/IBAwYoTdPU9u3bc20r5/xxJ8fBwhL5atWqKRsb\nG3Xq1KlcddOmTcszkV+6dOkdHdNvPbbv3LmzwDiLksjnfL95xSxKj/SRF7n4+/ubLvfdqk2bNkD2\nCH6AgwcPomlann3S69Wrh5eXF6dPnyYlJQXI7lNnY2NDr169eP755/nyyy85ceJECb6T7D6Pqamp\n1KtXj/Lly+eq79ixI0Ce02hVr14dFxeXXOVVqlRBKcWNGzdMZTExMQB57qNcuXI89thj7Nmzh/r1\n6zNlyhR+/fVXkpKSivx+Dh48CEDbtm1z1QUGBlKlSpU81zMajWRlZWE0Ggt9ZGVl8cUXXxQ5tvx4\nenoCEB0dXWzbFEIUja+vL506dSIsLIywsDBT+ZYtW7h69SpPPfUUTk5OAPzxxx/Y2try/fffM2XK\nlFyP9PR0srKyOHXqVIH7LOo5Yu/evQB069atuN52Ll27diU4OJgVK1aY9gvZ3Wp0Oh0vvfSS2fIF\nHdt79uyJi4sLr776Kk888QSffPIJYWFhRR7QmpiYyNmzZ/Hx8aF69eq56nPOvbcbOHDgHR3Tbz22\n57etuyHHdusgibzIJb8BjTnl8fHxpv+7ubnlO0gmZ4rCnOWbNm3K7t276dSpE2vXrmXo0KGEhIQQ\nHBxc4Hzk9yJn3z4+PnnW55THxcXlqnN3d89zHVvb7KElWVlZprKcfpr5HcBXr17N1KlTycjIYNq0\naXTu3BlPT0+eeuqpIo36z3k/hX1H1iRnoNaDNpOPEPebnEHzt86xnvN80KBBprLY2FgyMzOZOnUq\n06ZNy/U4fvw4mqaRnJxc4P6Keo7IOQ7fSd/7e/Hyyy+TkJDAN998A8CRI0f4888/eeSRR6hatarZ\nsgUd2/39/dm/fz9PPfUUO3bs4JVXXqFRo0ZUqlSJWbNm3fEg1fvxuA5ybLcWMthV5JLfjAQ55TkD\nKt3c3IiLiyM9PT3PA/WVK1fMlgdo3rw5P/74I5mZmRw8eJCtW7fy4YcfMnz4cJycnHj++eeL9b3k\n7Pvq1at51ucV492oUKECQL53MXVwcOCdd97hnXfe4cqVK/z++++sXLmSH374gaNHj3LkyBHTD4SC\n5MQZFRVFvXr1ctXn990VdTBSo0aNePzxx4u0Tn5yPpPbB9gJIUrX448/joeHBytXrmTevHkkJCTw\n448/EhwcbNZS6+bmRmZmZp4NHEVR1HNETuPJxYsX72m/hRkyZAiTJk1iyZIlDB061Line truncated
"image/png": "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\nbt26DBs2jLi4ODZv3kyvXr3o1auX4Rg533daWhp9+vThyJEjtGzZkieeeILY2FgWLlzI7t27C/2e\ny9p9992Hpmls376defPmWTqcqk0J8Y+QkBClaZrSNE2NHj3aqO7SpUuqWrVqys7OToWGhiqllFq/\nfr3SNE21bt1aJSQkGLZNT09Xffr0UZqmqSVLlhjKn3/+eaVpmtq8ebPJuRMTE1VaWprh/RdffKE0\nTVOrV6822k7TNBUQEJDvZ9A0TfXu3duo7KmnnlKapqnJkycblV+/fl35+PgonU6nDh8+bPZ7mDp1\nqtLr9Ya606dPK2tra9W0aVOjY125ckVpmqb69OljElNsbKzSNE116NBBZWVlmdRHRkYW+TOGhIQo\nGxsbVb16dRUSEmIo1+v1auTIkUrTNKXT6Uz2mzt3brF+Nm3aZPb8uY+naZpasWJFgdsppdRbb72l\nNE1TK1euLHRbIUTpePvtt5WmaWrp0qUmdS+++KLR9XbPnj1K0zTVpUsXFRcXZ7Ttl19+qTRNU488\n8ohRec+ePU2uPcW9R6SlpSl/f3+l0+nUl19+aRJneHi4yszMNLz38/MzuVbmXJvy3jtyPPjgg0rT\nNHXixAmj8pSUFFW9enXl6emp0tPTDeXz5s1TmqaZjeeDDz5Qmqap999/36QuPT1dJSYmGt7n3NPm\nz59vNq5FixYpTdPUsGHDjMpDQ0OVh4eH0jRNTZw40aju2LFjxb62X7lyxez5c/j5+SmdTmd0P85P\n48aNla2trUpJSSl0W1F6JJEXBjkJrI2Njdlf9lmzZilN09SiRYuUUkr17dtXaZqmtm3bZrLtiRMn\nlKZpqlGjRoaynET+l19+KTSWkkrk09PTlaOjo3J2dlZRUVEm2y9btkxpmqaefPJJQ1nO9+Ds7Gx0\n88nRo0cPpdPpVFJSkqFs586dStM0NX78eJPt4+LilKZpqmvXrgV+5qJ8xoULFypN09Ts2bNN6kJC\nQpSVlZXZRD4nwc/5A6WgH51OZ3LDyKs4ifzatWuVpmlq1qxZhW4rhCgdYWFhytraWrVu3dqoPDMz\nU/n4+CgXFxfDNW348OFK0zR18uRJs8dq06aNsra2Nro+mkvki3uP+Pbbb5WmaWrIkCFF+kx3k8hv\n27ZNaZqmZs6caVS+evVqpWmaevHFF43Kx40bpzRNU7t27TI5Vs79oyjXwcIS+fr16ysrKyt1/vx5\nk7o33njDbCK/atWqIl3Tc1/b9+zZU2CcxUnkc/59zcUsyo70kRcmfH19DY/7cuvRoweQPYIf4OjR\no2iaZrZPeosWLfD09OTChQskJycD2X3qrKysGDp0KE888QRffPEFZ8+eLcVPkt3nMSUlhRYtWlCj\nRg2T+r59+wKYnUarQYMGODs7m5TXrVsXpRQxMTGGsoiICACz53B1deXBBx9k//79tGzZknnz5vHr\nr7+SmJhY7M9z9OhRAHr27GlS5+/vT926dc3up9frycrKQq/XF/qTlZXF559/XuzY8uPu7g7A7du3\nS+yYQoji8fHxoV+/fhw/fpzjx48byrdv386tW7cYMWIEjo6OAPzxxx9YW1uzceNG5s2bZ/KTlpZG\nVlYW58+fL/Ccxb1HHDhwAIBBgwaV1Mc2MXDgQOrVq8fatWsN54XsbjU6nY4nn3zSaPuCru0PPfQQ\nzs7OPP300wwfPpxPPvmE48ePF3tAa0JCApcuXaJmzZo0aNDApD7n3pvX+PHji3RNz31tz+9Yd0Ou\n7eWDJPLCRH4DGnPK4+LiDP91c3PLd5BMzhSFOdt36NCBffv20a9fP77//nsmT55M06ZNqVevXoHz\nkd+LnHPXrFnTbH1OeWxsrEldtWrVzO5jbZ09tCQrK8tQltNPM78L+Ndff838+fPJyMjgjTfeoH//\n/ri7uzNixIhijfrP+TyF/RuVJzkDtSrbTD5CVDQ5g+Zzz7Ge83rChAmGsqioKDIzM5k/fz5vvPGG\nyc+ZM2fQNI2kpKQCz1fce0TOdbgofe/vxVNPPUV8fDzr1q0D4OTJk/z555/cf//9BAYGGm1b0LXd\n19eXw4cPM2LECHbv3s2MGTNo06YNtWrVYvHixUUepFoRr+sg1/byQga7ChP5zUiQU54zoNLNzY3Y\n2FjS0tLMXqhv3rxptD1Ap06d2Lx5M5mZmRw9epQdO3bw4YcfMn36dBwdHXniiSdK9LPknPvWrVtm\n683FeDc8PDwA8l3F1N7entdff53XX3+dmzdv8vvvvxMUFMR3331HcHAwJ0+eNPyBUJCcOMPDw2nR\nooVJfX7/dsUdjNSmTRsefvjhYu2Tn5zvJO8AOyFE2Xr44YepXr06QUFBLFmyhPj4eDZv3ky9evWM\nWmrd3NzIzMw028BRHMW9R+Q0nly/fv2ezluYSZMmMWfOHFasWMHkyZMNDUlPPfWUyLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8076f28>"
"<matplotlib.figure.Figure at 0x8504b38>"
]
},
"metadata": {},
@@ -1297,9 +1292,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9431898>"
"<matplotlib.figure.Figure at 0x80e60b8>"
]
},
"metadata": {},
@@ -1307,9 +1302,9 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvIAAAE6CAYAAAB0yLYIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VMX6B/DvnN3sbnojgSRCEiCUBKT33gmKFK9gqAGk\nSOjSQXoXkSLXi1wFBNFr+QmogFSJNEWlSC8hYCiBhFRStr2/P+IesuymQcimvJ/nyUN2Zs457+6S\nc96dnTMjiIjAGGOMMcYYK1EkWwfAGGOMMcYYKzhO5BljjDHGGCuBOJFnjDHGGGOsBOJEnjHGGGOM\nsRKIE3nGGGOMMcZKIE7kGWOMMcYYK4E4kWf5tnnzZkiShC1bthRoO0mS0K5duxcUVf506tQJ1apV\ng9FotGkcRennn3+GJEmYP3++rUMpEkajESEhIWjTpo2tQ2GsWGjbti0kqWgv8wEBAQgMDCySY0VF\nRUGtVmPhwoVFcrziIjw8HJIk4fbt27YOpUicPHkSkiTh008/tXUoxRIn8izfhBDyT3aSJOV54n56\nm6K0e/duHDx4EHPnzs3xorZz50707t0bfn5+0Gg08PT0RNOmTbF48WIkJSUVccSFy5avvYler8ea\nNWswZMgQ1K1bFyqVCpIkYcOGDXlu+9lnn6FJkyZwdnaGm5sb2rVrhx9//NGinSRJmDdvHn755Rfs\n2LHjRTwNxkqcov77t3aNmDdv3jN1AuVl+vTpcHZ2xoQJE6zWJyUlYcmSJWjatCk8PDyg0Wjw0ksv\noXfv3iX+HFEczusAcOnSJcydOxc9evRApUqVIEkSJEmCVqvNdbuEhARMnDgRAQEB0Gg08PPzw7Bh\nw3Dnzh2Ltk2bNkVoaCjmzJmD9PT0F/VUSi5iLJ+SkpLoypUrlJSUZFYuhKDAwMAct7ty5Qr9/fff\nLzq8HNWtW5f8/f3JaDRa1CUlJVFoaCgJIcjV1ZXCwsJo5syZNHbsWKpRowYJIah8+fJ07NgxG0T+\nfA4fPkxCCJo/f76tQ6GEhAQSQpAkSeTj40OVKlUiIQRt2LAh1+0mT55MQgiqVKkSTZo0iSIiIsjT\n05OEEPThhx9a3aZq1aoUEhLyIp4GYyVKmzZtSJKkIj1mVFQURUVFmZXNnTuXhBC0ZcuWQjvO6dOn\nSQhBs2bNslp/9OhR8vb2JiEE1ahRgyIiImjWrFkUFhZGrq6uJISg0NBQSk5OLrSYisrgwYNJCEG3\nbt2ydSj0wQcfkBCC7OzsKDg4mOzt7UmSJMrMzMxxm7i4OKpevToJIahjx440Y8YM6tmzp3y9ffr/\nDxFRZGQkCSHovffee5FPp0TiRJ49t7wSeVs6duwYCSFoxowZFnUGg4E6d+5MQgjq1KkTxcXFWbRZ\nvXo1SZJELi4udPny5aIIudAUp0Req9XS3r176f79+0T05MKeWyJveu+CgoIoMTFRLo+OjiZPT0/S\naDQUHR1tsZ1p35GRkYX/RBgrQWyRyFtj+pvcvHlzoe1z+PDhJISgK1euWNRdunSJnJ2dSaFQ0Acf\nfGBRHxcXR506dSIhBHXt2tVqJ09xVpwS+StXrtBvv/1GGRkZRETk7++fZyI/YsQIEkLQ5MmTzcrX\nrl0rvyfWBAYGUtWqVQsv+FKCE/li7ObNmySEoLZt21JMTAz169ePypUrR/b29tSwYUP63//+Z3U7\no9FIGzdupCZNmpCTkxM5ODhQvXr16P333yedTmfR/uzZsxQWFkYBAQGk0WioXLly9PLLL9Po0aPN\net83bdpkdjI2JYrWfsLDw+XtTM/hacnJyTRr1iyqXr06aTQacnNzo/bt29POnTtzfS3i4uJo+PDh\nVKFCBVKr1RQSEkKbNm2y+loMHTqUhBB09uxZi7pt27aREIKqVKlCjx8/tro9EdGUKVNICEFdunTJ\nsc3Tdu3aRR06dCAfHx9Sq9Xk4+NDLVq0oCVLlli0TUtLoxUrVlDDhg3JycmJHB0dqXr16jR69Gi6\nffu23O7KlSs0bdo0atCgAZUrV47UajX5+/vTW2+9ZdbOJLdEPjExkd59910KCQkhBwcHcnZ2ppYt\nW9LXX3+d7+f4PPKTyA8cODDHi/+cOXNICEFz5861qLt06RIJIWjw4MGFGDFjhefEiRMkhKDu3bvn\n2KZBgwYkSZLFh9VDhw5R9+7dqVy5cqRSqcjf359Gjx4tf0jOLqdEvqDXCCKimJgYGj9+PAUFBZG9\nvT25u7tTgwYNaM6cOWbb+Pv7U0BAgFkMOV0noqOjafr06bn21pv+nlu2bCmXpaWlkZOTE9WrV8/q\nNh07diQhBE2bNs1qPRFRamoqBQYGkhCCvvjiixzbZZecnEwLFy6kWrVqkaurKzk5OVFgYCD17t2b\nfv75Z4v2ly9fpqFDh1JAQACp1Wry8vKi5s2b06pVq8zafffdd9S/f38KCgoiR0dHcnR0pPr169Pq\n1avJYDBY7De3RP6PP/6gvn37ko+PD6lUKvLx8aGBAwfS9evX8/Ucn1deiXxKSgrZ29uTs7Mzpaam\nmtUZjUby9/cnIYTVXvlp06aREIIOHz78IkIvsTiRL8ZMyWudOnUoICCA6tevT9OnT6cRI0aQm5sb\nCSGs9jaYEqCKFSvS+PHjafLkyVStWjU5GdXr9XLbs2fPkkajIUdHR+rbty/NnDmTxo0bR6+++io5\nOjrSjRs35LamRN50wo2OjqZ58+aREILc3Nxo/vz58k/2ZFwIQe3atTOLMTExkWrVqkVCCGrQoAFN\nnz6dRo4cSR4eHiSEoAULFlh9LerWrUvVq1enl19+mcaNG0cjR44kd3f3HC8EFStWJFdXV6uvb+vW\nrUkIQR999FGu78OjR49IrVZbvahas2HDBhJCkI+PDw0fPpxmzZpFI0eOpJYtW5K/v7/FvuvWrSt/\n/Tt+/HiaNm0a/etf/yI3Nzez13Hp0qXk5uZGvXv3pvHjx9OUKVMoNDSUJEmi8uXLU0xMjNm+c0rk\nY2JiKCgoiIQQ1KZNG5o0aRKNGDGC/Pz8SAhB8+bNy/M5Pq/8JPJ+fn4kSZLVBMWUCLVu3drqtp6e\nnuTn51do8TJW2GrWrEl2dnb04MEDi7rz589bPW8uW7aMhBBUrlw5Gjx4ME2bNo26du1KQgh66aWX\nLM4BOSXyBblGEBGdOnVKHtLWpk0bmjZtGo0fP546d+5MKpXKrMPH39/f7BvazZs3U9u2bUkIQb16\n9TK7TiQmJtKtW7dIoVBQ8+bNrb5OEyZMICEEff7553LZgQMHSAhBY8eOtWgfFRVFQgiyt7enhIQE\nq/s0Wb9+vdXX2Rqj0UjNmzcnIQQ1bdqUJk2aRNOnT6cBAwZQQEAAvfvuu2btf/jhB3mYSbdu3Wjm\nzJkUERFBrVu3Jk9PT7O2NWrUoJCQEBo0aBDNmDGDRo8eLQ896devn0UsOSXy27ZtI6VSSU5OTtSv\nXz+aNm0a9e7dm5RKJbm5udGZM2fyfJ7PK69Efv/+/bn2uo8cOZKEEPTJJ59Y1H3//fc5fsNelnEi\nX4yZklchBL355ptmdTdu3CA3NzdSq9Vmf8xffvmlnPCmpKTI5Vqtljp06EBCCFq5cqVcPmnSJBJC\nWO0FT01NNftjfDqRN8lraI21E+WoUaNICEHDhg0zK4+JiSEfHx+SJIlOnTpl9bUYPny42VehFy9e\nJKVSScHBwWb7io6OJiEEdejQwSImnU5HKpWKJEnKV09Fs2bNSAhB27Zty7Nt/fr1SaPRWL1Ax8fH\nmz0OCwsjIQSNGDHCom16ejo9evRIfnznzh3SarUW7fbt20cKhYJGjRplVp5TIt+hQwdSKBT05Zdf\nmpUnJydT/fr1SZIki28w5s6dW6CfHTt25PDqPNlfbol8amoqCSHIxcXFav3Dhw9JCEEVKlSwWm9K\nbq5du5ZrHIzZyvLly3PsjDF9C5j9XHvkyBESQlDz5s0t7lPaunUrCSHo9ddfNyu3lsgX9BqRmZlJ\nAQEBJEkSbd261SLW2NhYs8T/6USeKO8x8t27dychBJ07d86sPD09ndzd3cnLy8vs3GfqQLIWz2ef\nfWbRg5+Tq1evykl/XsNrzp07J38YsSb7uf3hw4fk4uJCKpXKau/x0x+4rPU+G41GOWE/efKkWZ21\nRP7atWukVqupatWqdPfuXbP2P//8MymVSmrQoIFZ+enTpwt8bs+rMyuvRP7DDz8kIQSNGzfOav17\n771HQgiaPn26RV1sbGy+39uyhBP5YsyUvNrZ2Vn945k5cyYJIWjx4sVymekrxT179li0N52Iqlev\nLpeZEvmffvopz3gKK5HXarXk4OBATk5OFoktEdG6detICEEjR46Uy0yvhZOTk9nFx6R169YkSZLZ\nEJlDhw7lOMTCdELIayyfSZ8+fSwucDmpX78+OTo6miXh1sTGxso3f+Y2tCc/ateuTZUrVzYrs5bI\nm/4PPH3BN9m1axcJIWjq1Klm5abXKqevyLP/SJJEQ4YMyTXevBL5O3fuyD2G1mi1WhJCkEajsVr/\n1ltvkRCC9u3bl2scjNnK3bt3SalUUt26dc3K9Xo9+fj4kLOzs9l5oXfv3iSEoL/++svq/urVq0dK\npdLs/GgtkS/oNeKbb74hIQS9+uqr+Xpez5LI79mzh4QQFBERYVa+ZcsWEkLQlClTzMoHDRqU4xAL\n0weksLCwPGNNS0uTz1nW7pHKzvTa5Ge/K1euJCEEjRkzJs+2ufnjjz9ICEELFy40K7eWyJuu5d9/\n/73VffXq1YuEEHTx4kW5bPPmzfk6p2c/tx85ciTXmPNK5BcvXkxCCItvMEw+/vhjEkJYdEyZ2NnZ\nka+vb64xlDVKW8+aw/JWqVIl+Pv7W5S3bt0aS5cuxZkzZ+SyP//8E0IIq/O2165dGLine truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9473be0>"
"<matplotlib.figure.Figure at 0x832bdd8>"
]
},
"metadata": {},
@@ -1317,9 +1312,9 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x94984e0>"
"<matplotlib.figure.Figure at 0x77b0dd8>"
]
},
"metadata": {},
@@ -1327,9 +1322,9 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvIAAAE6CAYAAAB0yLYIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4U2X7B/Dvc5ImadM9aQsdQCkUkVX2RoaAyBDZMgWU\nIktepkrZIsjmRV4XICIOfgzny1J5cQGCiIyyWqCMSuneTXL//og5NE26aGk67s919YI8Z91J03Pu\nPHnO/QgiIjDGGGOMMcYqFcnWATDGGGOMMcZKjhN5xhhjjDHGKiFO5BljjDHGGKuEOJFnjDHGGGOs\nEuJEnjHGGGOMsUqIE3nGGGOMMcYqIU7kq6lt27ZBkiRs3769RNtJkoQuXbo8pqiKp3v37qhXrx4M\nBoNN4yhPP/zwAyRJwqJFi2wdSpXy6aefQpIkfP/997YOhbFCde7cGZJUvpfsoKAgBAcHl8uxrl+/\nDrVajSVLlpTL8SqKMWPGQJIk3Lx509ahVCm9evVCSEgIcnNzbR3KY8eJfDUlhJB/8pIkqcgTd/5t\nytM333yDI0eOYOHChQVe1Pbv34+BAwfC398fGo0GHh4eaN26NZYtW4bk5ORyjrhs2fK1N9HpdFi/\nfj3Gjh2LJk2aQKVSQZIkbN26tchtd+zYgVatWsHJyQmurq7o0qULvv766wLXz8zMRGRkJEJDQ2Fv\nbw8fHx8MGTIEly5dKnCb2NhYjB8/Hn5+ftBoNAgODsaMGTOQlJRkse7gwYPRsGFDzJo1CzylBqvo\nyvvv39o1IjIy8pE6gYoyd+5cODk5Yfr06VaXJycnY/ny5WjdujXc3d2h0WhQs2ZNDBw4EPv27SvT\nWMpbRTivA8DFixexcOFC9OvXDwEBAZAkCZIkIScnp9DtEhMTMWPGDAQFBUGj0cDf3x/jx4/H7du3\nCz3W4MGD4e3tDXt7e9SvXx+RkZHIysoqcJuvv/4aXbp0gYuLC5ycnNC6dWvs2LHD6rqLFi3CtWvX\nsHnz5uI9+cqMWLWUnJxMUVFRlJycbNYuhKDg4OACt4uKiqJbt2497vAK1KRJEwoMDCSDwWCxLDk5\nmXr16kVCCHJxcaFhw4bR/Pnz6ZVXXqH69euTEIJ8fHzop59+skHkpfP999+TEIIWLVpk61AoMTGR\nhBAkSRL5+vpSQEAACSFo69athW43a9YsEkJQQEAAzZw5kyIiIsjDw4OEELRp0yaL9bOysqh9+/Yk\nhKCWLVvS3Llzafjw4WRnZ0darZZ+++03i22uXbtGPj4+JISgAQMG0Lx586hr164khKD69evTgwcP\nLLbZsWMHCSHo888/f/QXhbHHrFOnTiRJUrke8/r163T9+nWztoULF5IQgrZv315mxzlz5gwJIWjB\nggVWlx8/fpy8vb3lv+OIiAhasGABDRs2jFxcXEgIQb169aKUlJQyi6m8jB49moQQdOPGDVuHQmvX\nriUhBNnZ2VFYWBjZ29uTJEmUnZ1d4Dbx8fEUGhpKQgjq1q0bzZs3j/r37y9fb/O/f4iIfvvtN9Jq\ntaRWq2nEiBE0d+5catGiBQkhqH379laPt2nTJhJCkJeXF02ZMoVmzpxJtWrVIiEEzZo1y2psXbt2\nJU9PT8rKynr0F6US4ESemSkqkbeln376iYQQNG/ePItler2eevToQUII6t69O8XHx1uss27dOpIk\niZydnenSpUvlEXKZqUiJfE5ODn333Xd07949Inp4YS8skTf97kJCQigpKUluj4mJIQ8PD9JoNBQT\nE2O2zfLly0kIQYMHDzZr379/PwkhqGHDhhYf6EzvgfwfDGbOnElCCHrppZcsYktLSyOtVktdu3Yt\n3gvAmA3YIpG3xvT3vm3btjLb54QJE0gIQVFRURbLLl68SE5OTqRQKGjt2rUWy+Pj46l79+4khKCn\nn37aaidPRVaREvmoqCg6ceKEnPgGBgYWmchPnDjRajK9YcMG+XeSl06nowYNGpAkSfTll1/K7QaD\ngQYNGkRCCHrzzTfNtomOjia1Wk2enp5mr1NiYiLVrVuXhBD0yy+/WMT24YcfkhCCduzYUfwXoRLi\nRL6cREdHkxCCOnfuTLGxsTR8+HDy9PQke3t7Cg8Pp08//dTqdgaDgd59911q1aoVOTo6koODAzVt\n2pTefvttys3NtVj/7NmzNGzYMAoKCiKNRkOenp705JNP0uTJk816301vcNPJ2JQoWvsZM2aMvJ3p\nOeSXkpJCCxYsoNDQUNJoNOTq6kpdu3al/fv3F/paxMfH04QJE6hGjRqkVqupYcOG9OGHH1p9LcaN\nG0dCCDp79qzFsp07d5IQgurUqUPp6elWtyci+te//kVCCOrZs2eB6+R34MABeuqpp8jX15fUajX5\n+vpSu3btaPny5RbrZmRk0FtvvUXh4eHk6OhIWq2WQkNDafLkyXTz5k15vaioKJozZw41b96cPD09\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x82d1a20>"
"<matplotlib.figure.Figure at 0x80e65c0>"
]
},
"metadata": {},
@@ -1337,9 +1332,9 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x808bba8>"
"<matplotlib.figure.Figure at 0x832be48>"
]
},
"metadata": {},
@@ -1410,9 +1405,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x95a65c0>"
"<matplotlib.figure.Figure at 0x81c7470>"
]
},
"metadata": {},
@@ -1420,12 +1415,11 @@
}
],
"source": [
"# reinitialize filter\n",
"\n",
"pos2, zs2 = generate_data(70, noise_factor=1.2)\n",
"xs2 = pos2[:, 0]\n",
"z_xs2 = zs2[:, 0]\n",
"\n",
"cvfilter = make_cv_filter(dt, noise_factor=1.2)\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",
@@ -1572,9 +1566,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x76322b0>"
"<matplotlib.figure.Figure at 0x840c320>"
]
},
"metadata": {},
@@ -1591,7 +1585,7 @@
"source": [
"For this problem we saw that the constant velocity filter performed better the constant acceleration filter while the object was in steady state, and the opposite was true when the object is maneuvering. In the chart above that transition occurs at 4 seconds. \n",
"\n",
"So the algorithm is easy. Initialize both a constant velocity and constant acceleration filter and run them together in a predict/update loop. After every update examine the residual of the constant velocity filter. If it falls within theoretical bounds use the estimate from the constant velocity filter as the estimate, otherwise use the estimate from the constant acceleration filter. If you have enough insight into your problem, you can also choose to blend the outputs of the two filters proportional to the size of the residual."
"So the algorithm is easy. Initialize both a constant velocity and constant acceleration filter and run them together in a predict/update loop. After every update examine the residual of the constant velocity filter. If it falls within theoretical bounds use the estimate from the constant velocity filter as the estimate, otherwise use the estimate from the constant acceleration filter."
]
},
{
@@ -1603,9 +1597,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9468710>"
"<matplotlib.figure.Figure at 0x8357080>"
]
},
"metadata": {},
@@ -1613,12 +1607,11 @@
}
],
"source": [
"def run_filter_bank(threshold):\n",
"def run_filter_bank(threshold, show_zs=True):\n",
" dt = 0.1\n",
" cvfilter= make_cv_filter(dt)\n",
" cafilter = make_ca_filter(dt)\n",
"\n",
" pos, zs = generate_data(120, noise_factor=0.2)\n",
" cvfilter= make_cv_filter(dt, noise_factor=0.8)\n",
" cafilter = make_ca_filter(dt, noise_factor=0.8)\n",
" pos, zs = generate_data(120, noise_factor=0.8)\n",
" z_xs = zs[:, 0]\n",
" t = np.arange(0, len(z_xs) * dt, dt)\n",
" xs, res = [], []\n",
@@ -1636,7 +1629,10 @@
" xs.append(cafilter.x[0])\n",
" res.append(cvfilter.y[0])\n",
" xs = np.asarray(xs)\n",
" plot_track_and_residuals(t, xs, z_xs, res)\n",
" if show_zs:\n",
" plot_track_and_residuals(t, xs, z_xs, res)\n",
" else:\n",
" plot_track_and_residuals(t, xs, None, res)\n",
"\n",
"run_filter_bank(threshold=1.4)"
]
@@ -1645,7 +1641,168 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we get nearly ideal performance. While the target is not maneuvering our estimate is nearly noise free, and then once it does maneuver we quickly detect that and switch to the constant acceleration filter. "
"Here the filter tracks the maneuver closely. While the target is not maneuvering our estimate is nearly noise free, and then once it does maneuver we quickly detect that and switch to the constant acceleration filter. However, it is not ideal. Here is the filter output plotted alone:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x817da58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"run_filter_bank(threshold=1.4, show_zs=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can see that the estimate jumps when the filter bank switches from one filter to the other. I would not use this algorithm in a production system. The next section gives a state of the art implementation of a filter bank that eliminates this problem."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## MMAE\n",
"\n",
"The core idea of using several filters to detect a maneuver is sound, but the estimate is jagged when we abruptly transition between the filters. Choosing one filter over the other flies in the face of this entire book, which uses probability to determine the *likelihood* of measurements and models. We don't choose *either* the measurement or prediction, depending on which is more likely, we choose a *blend* of the two in proportion to their likelihoods. We should do the same here. This approach is called the **Multiple Model Adaptive Estimator**, or MMAE.\n",
"\n",
"In the **Designing Kalman Filters** chapter we learned the **likelihood function** $\n",
"\\mathcal{L} = \\frac{1}{\\sqrt{2\\pi S}}\\exp [-\\frac{1}{2}\\mathbf{y}^\\mathsf{T}\\mathbf{S}^{-1}\\mathbf{y}]$, which tells us how likely a filter is to be performing optimally given the inputs. We can use this to compute the probability that each filter is the best fit to the data. If we have N filters, we can compute the probability that filter i is correct in relation to the rest of the filters with\n",
"\n",
"$$p_k^i = \\frac{\\mathcal{L}_k^ip_{k-1}^i}{\\sum\\limits_{j=1}^N \\mathcal{L}_k^jp_{k-1}^j}$$\n",
"\n",
"That looks messy, but it is straightforward. The numerator is just the likelihood from this time step multiplied by the probability that this filter was correct at the last time frame. We need all of the probabilities for the filter to sum to one, so we normalize by the probabilities for all of the other filters with the term in the denominator. \n",
"\n",
"That is a recursive definition, so we need to assign some initial probability for each filter. In the absence of better information, use $\\frac{1}{N}$ for each. Then we can compute the estimated state as the sum of the state from each filter multiplied the the probability of that filter being correct.\n",
"\n",
"Here is a complete implementation:"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtsAAAEPCAYAAACTNwgMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4U3X/xvF30t3SljJKoSDLKkNAoCKyZAiKbBXcoqgo\nIooLf6ACItOBqEzRR1EfHhfLgVgVBBFQEBDZe9NSoHSvJOf3R/VgHRSahpO09+u6uGg+yUlvaPn2\n5uTkHJthGAYiIiIiIlLi7FYHEBEREREprVS2RUREREQ8RGVbRERERMRDVLZFRERERDxEZVtERERE\nxEP8L9QnSk1NvVCfSkTEcpGRkVZHuGC0votIWVGctV17tkVEREREPERlW0RERETEQy7YYSR/5m0v\nr65btw6A+Ph4i5P8M2/Op2zFo2zF483ZQIdTgNb38+HN2cC78ylb8Shb8bi7tmvPtoiIiIiIh6hs\ni4iIiIh4iMq2iIiIiIiHqGyLiIiIiHiIyraIiIiIiIeobIuIiIiIeIjKtoiIiIiIh6hsi4iIiIh4\niMq2iIiIiIiHqGyLiIiIiHiIyraIiIiIiIeobIuIiIiIeIjKtoiIiIiIh6hsi4iIiIh4iMq2iIiI\niPi8fIdhdYR/VGTZdjgcjBgxgjp16hASEkKdOnV47rnncDqdhR43evRoYmNjCQ0NpUOHDmzdutVj\noUVEiuuXHT+w+8gWq2NYTmu7iJQmx1MMGt95mlf+l2J1lL8psmyPHz+eWbNm8cYbb7Bjxw5ee+01\npk+fzoQJE8zHTJo0icmTJzN16lTWrl1LdHQ0nTt3JiMjw6PhRUTOxy87fuC9r19l5qIX2HV4s9Vx\nLKW1XURKiwOJBk37p7PjYHmGTYvgg69PWB2pkCLL9tq1a+nZsyfdunXjoosuokePHnTv3p2ffvoJ\nAMMwmDJlCsOHD6dPnz40bNiQOXPmkJ6ezty5cz3+BxARORfrd67k/a9fxTBc5OXn8NnKORiGd77k\neCFobReR0iAv36DL0FMcOxn++8Tg+w0bLc30V0WW7a5du7J06VJ27NgBwNatW1m2bBndunUDYN++\nfSQlJdGlSxdzm+DgYNq1a8eqVas8FFtE5Nxt2LWK95ZMxmW4AIipUIOBPZ/BZrNZnMw6WttFpDS4\n64Ud7DpUAQC7PZ/7en3M9CfbWpyqMP+iHvDQQw9x+PBh6tevj7+/Pw6Hg2effZYHH3wQgMTERACq\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x81332e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def run_filter_bank():\n",
" dt = 0.1\n",
" cvfilter = make_cv_filter(dt, noise_factor=0.2)\n",
" cafilter = make_ca_filter(dt, noise_factor=0.2)\n",
"\n",
" _, zs = generate_data(120, noise_factor=0.2)\n",
" z_xs = zs[:, 0]\n",
" #z_xs = [i for i in range(120)]\n",
" t = np.arange(0, len(z_xs) * dt, dt)\n",
" xs, probs = [], []\n",
"\n",
" pv, pa = 0.8, 0.2\n",
" pvsum, pasum = 0., 0.\n",
" \n",
" for i, z in enumerate(z_xs):\n",
" cvfilter.predict()\n",
" cafilter.predict()\n",
" cvfilter.update([z])\n",
" cafilter.update([z])\n",
" \n",
" cv_likelihood = cvfilter.likelihood * pv\n",
" ca_likelihood = cafilter.likelihood * pa\n",
" \n",
" pv = (cv_likelihood) / (cv_likelihood + ca_likelihood)\n",
" pa = (ca_likelihood) / (cv_likelihood + ca_likelihood)\n",
" \n",
" x = (pv * cvfilter.x[0]) + (pa*cafilter.x[0])\n",
" xs.append(x)\n",
" probs.append(pv / pa)\n",
"\n",
" xs = np.asarray(xs)\n",
" plt.subplot(121)\n",
" plt.plot(t, xs)\n",
" plt.subplot(122)\n",
" plt.plot(t, xs)\n",
" plt.plot(t, z_xs)\n",
"\n",
"run_filter_bank()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I plot the filter's estimates alone on the left so you can see how smooth the result is. On the right I plot both the estimate and the measurements to prove that the filter is tracking the maneuver. \n",
"\n",
"Again I want to emphasize that this is nothing more than the Bayesian algorithm we have been using throughout the book. We have two (or more) measurements or estimate, each with an associated probability. We choose are estimate as a weighted combination of each of those values, where the weights are proportional to the probability of correctness. The computation of the probability at each step is $\\frac{\\texttt{Prob(meas|state)} \\times\\texttt{prior}}{\\texttt{normalization}}$, which is Bayes therom.\n",
"\n",
"For real world problems you are likely to need more than two filters in your bank. In my job I track objects using computer vision. I track hockey pucks. Pucks slide, they bounce and skitter, they roll, they ricochet, they are picked up and carried, and they are 'dribbled' quickly by the players. I track humans who are athletes, and their capacity for nonlinear behavior is nearly limitless. A two filter bank doesn't get very far in those circumstances. I need to model multiple process models, different assumptions for noise due to the computer vision detection, and so on. But you have the main idea. \n",
"\n",
"### Limitations of the MMAE Filter\n",
"\n",
"The MMAE as I have presented it has a significant problem. Look at this chart of the ratio of the probability for the constant velocity vs constant acceleration filter."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAE6CAYAAAAoQvUsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlclOX6P/DPM8PAsIsIsssibghuSOaSuIupmaVmVuqx\nb4u29/1lloaeXCrNjqX19dgiZZZmVmZmehIxlxJyyx0REREwXNgEgZn794eHR0YGBGaGZwY+79er\n13nmfrZrbobjxT3Xc9+SEEKAiIiIiIjMSqV0AERERERETRETbSIiIiIiC2CiTURERERkAUy0iYiI\niIgsgIk2EREREZEFMNEmIiIiIrIAJtpEVGcqlQohISEWvUdsbCxUKhXOnz9f53OCg4OrxbV69Wqo\nVCokJCTc8dimbMqUKfXuz8aSn58PLy8vTJs2rdHuGRcXh/DwcJSXlzfaPQFgyJAhaNeuHfR6faPc\nr6ioCF5eXnjsscca5X5EZBwTbSKqF0mSrO4ekiTVeM7t7caOnTt3rtGk3BZUJtJJSUlG99fWN0pb\nsGABCgoKMGfOnEa757x585CWloYVK1bc8dgePXogLCzM5Htu2bIFv/76K+Lj46FSNc4/uy4uLnjl\nlVfw5Zdf4uDBg41yTyKqjok2EVmd+q6jtWPHDvz6668mH2utCWld1BT7okWLcOLECfj5+TVyRLXL\nzc3F+++/j3HjxiE4OLjR7hsTE4MBAwZgwYIFuHHjRo3HZWRk4ODBgxg7dqzJ93z99dcRFBSEhx9+\n2ORr1ceMGTPg7OzcqH/IEJEhJtpEZPNCQkLqXA5S27G2vFBuTbH7+PigXbt2sLOza+SIavfJJ5+g\nrKxMkdKGRx99FJcvX8b69etrPGbjxo0AYHKivXfvXhw+fBgPP/xwo/8h5+TkhLFjx2Lr1q3IyMho\n1HsT0U1MtIlswLlz56BSqTBgwABkZWVh0qRJ8PLygpOTE3r27Gk0Ydi5cydUKhWmTp2KU6dOYdy4\ncfDy8oJarcbhw4cBAGVlZVi8eDG6du0KZ2dnuLm54e6778Znn31Wazz5+fmYPn06/Pz84OjoiM6d\nO+PDDz80euzq1avxwAMPIDQ0FE5OTnB3d0ffvn3xxRdf1Hh9SZKg0+mwZMkStG/fHo6OjggKCsL/\n/u//oqioqNrx9am7vv3Y2NhY/POf/wQATJ06FSqVSv4vIyMDs2bNgkqlwueff270eidPnoRKpUK/\nfv3ueO/afiZHjhwBACQmJuKJJ55Ap06d4O7uDicnJ3Tu3Blz585FaWlptfdSGdeAAQMMYq9UW432\nxo0bMWDAALi7u8PR0RGdOnVCfHw8iouL7/heKlXWws+bNw979uzBoEGD4O7uDnd3d4wYMaLGsoVP\nPvkErVq1wpAhQ4zuLykpweLFi9GzZ0+4urrCxcUFHTp0wIwZM5CZmQkAGD58OFQqFQ4cOGD0Gps3\nb4ZKpcI//vEPg/YHH3wQdnZ2+OSTT2p8X9999x18fX1x9913A2jY72Dl+wSAhx56qMZ7rV+/HkOG\nDIGnpye0Wi2Cg4Mxfvx47NmzRz6moKAAixcvxsCBAxEQEAAHBwd4e3tj9OjR2LdvX43Xfuihh6DX\n6+/4O01ElmFdQxxEVKurV6+ib9++aNmyJR5//HFcuXIF69evx0MPPYSLFy/ihRdeqHbOmTNn0KtX\nL3Tq1AmTJ09GQUEBnJ2dUV5ejri4OCQmJqJ9+/aYPn06bty4gY0bN2LatGnYvXu30UTkxo0bGDx4\nMAoLC/HII4+gtLQU33zzDZ555hmcPn0a//rXvwyOnz59Ojp37ozY2Fj4+voiLy8PW7ZsweTJk3Hy\n5EksWLCg2j2EEHj++eexZ88eTJgwAe7u7tiyZQuWLl2K3bt3Y9euXbC3tzc4pz6jhVWPnTp1KiRJ\nQlJSEsaMGYOuXbvK+1q0aIGnn34aixcvxsqVK42Ovq5cuRIA8PTTT9f5/sZ+Jk5OTgCAd955B6dO\nnULv3r0xatQolJaWYvfu3fjnP/+JxMRE7NixA2q1GgDw4osvYvXq1Th8+DCmTJlSYwmGsb554403\nMH/+fHh6euLhhx9GixYtsG3bNrz55pvYtGkTfvvtN7i4uNT5Pf3xxx9YtGgRhg4dimeffRanT5/G\nxo0bkZSUhP/85z9ywgoAaWlpSE9Px8iRI43GdvXqVQwcOBCHDx9G+/btMW3aNGi1WqSlpWHt2rUY\nNmwYAgMDMXXqVGzbtg0JCQno3r17tetU1txPmTLFoN3FxQWRkZHYu3cvrl+/Lvd9pUuXLmHv3r14\n4oknjMZWn9/B7du3w83NDVFRUdWuJYTA1KlT8fnnn6NVq1a4//770bp1a1y4cAG7du3Ct99+iz59\n+gAAjh8/jtmzZ6N///4YNWoUPDw8kJGRgU2bNuHnn3/Gpk2bEBcXV+0ed999NyRJwrZt2zB37txq\n+4nIwgQRWb309HQhSZKQJEk89NBDBvvS0tJEixYthIODg8jIyJDbExMT5XNmz55d7ZpvvfWWkCRJ\nDB8+XJSXl8vt+fn5onPnzkKSJLFhwwaDcyqv169fP1FWVia35+XliZCQECFJkti7d6/BOWfPnq12\n77KyMjFo0CBhZ2cnLly4YLCvf//+QpIk4eXlJTIzM+V2nU4nxowZIyRJEosWLTI4p02bNiIkJMSg\n7bPPPhOSJImEhIQ7HhsfH2/02EqjRo0SkiSJI0eOGLSXlJQIDw8P4eXlZdAfNbnTz0QI4/0lhBBz\n5swRkiSJr7/+2qB98uTJQpIkkZSUZPS8yv1VPxv79u0TkiSJwMBAkZ2dbfT4Z5555o7vR4hb/SxJ\nkvjwww8N9n377bdCkiTRoUMHg/bVq1cLSZLEm2++afSaEydOFJIkiSeeeKLavpKSEnHlyhUhhBCl\npaVy/1f9DAshxJUrV4SDg4MICwszeo+nnnpKSJIktm/fXm3fypUrq+1ryO/guXPnhCRJYtCgQUZj\nqLxPz549xbVr1wz26fV6kZWVJb/Oz88Xly9frnaNCxcuCD8/v2p9XFWHDh2Evb29KCkpqfEYIrIM\nlo4Q2RA7Ozu89dZbBm2hoaGYPn06ysrKsGbNmmrn+Pj44I033qjW/vHHH0OSJCxdutSgftfNzQ2L\nFi0CAKxataraeZIkYdGiRdBoNHKbp6cnZs2aBQDVvqI2VtKh0Wgwffp06HQ67Nixw+h7ff755xEQ\nECC/VqlUePvttyFJEj799FOj51jK9OnTAdwava60fv16XLt2DVOmTDHojzup6WcCGO8vAPJI6fbt\n2+t8n5pUflPx2muvwcfHx2DfO++8A61Wi4SEBFRUVNT5muHh4dVG9ceOHYu7774bp06dwt69e+X2\ns2fPAoDBz7fSpUuXsG7dOvj4+OC9996rtl+r1cLDwwMA4ODggIceegh5eXnYvHmzwXFfffVVrTXg\nlfdOT0+vtm/jxo1o2bIlBgwYUG1ffX4Ha3ufAPDBBx9AkiR89NFHcHd3N9gnSZLBA6xubm5o2bJl\ntWv4+/vjgQcewKlTp3DhwoUa32t5eblcckNEjYeJNpENCQoKQps2baq133PPPQCAQ4cOVdvXpUuX\naklgYWEh0tLS0Lp1a3Ts2LHaOQMHDgQAo/W1dnZ26N27d7X2/v37G43h/PnzmDFjBjp06ABnZ2e5\nhvjBBx8EAFy8eNHoe628XlXt2rWDt7c30tLS6lVHbKrhw4cjNDQUa9aswfXr1+X2lStXQqVS4ckn\nn6zX9Yz9TCoVFxdj4cKF6NmzJ9zd3aFWq6FSqdCqVSsAQFZWVsPfyH9V1jRX/pyr8vb2RmRkJIqK\nipCamlrna9ZUo27ss/n3338DgNHEMTk5GUII9O3bt1pJhzGVZSG3T82YkJAAlUqFyZMnGz3P09MT\nwM3Evqr8/Hzs2LEDI0eOlEt0qqrP72Bt77O4uBjHjh2Dp6cnevToUdPbM7Bnzx6MHz8egYGB0Gq1\n8u/S8uXLAdT82ajpvRKR5bFGm8iGtG7dutb2/Pz8avtuH7GsepyxfcDN2Qrc3Nxw7dq1avtatWpl\ntK7W29u7Wgxnz55FTEwMrl27hnvuuQfDhw+Xk8f09HQkJCTUOMVabe/10qVLcq15Y3nqqafwyiuv\n4KuvvsK0adPw119/Yd++fRg8eHC951quqd/Ly8sxcOBAJCcnIzIyEhMnToSXlxc0Gg2EEJg3b16t\nU9LVVX5+PiRJqjEOX19fADD6869JfT6blZ8fYWSmlMp7+vv71+m+MTEx6NixI7Zs2YLLly/D09MT\nJ0+eRHJyMmJjY40mxQDkhWNu/yxv3rwZFRUVuP/++2t9PzW1W+p9fvfdd3jwwQfh5OSEIUOGICws\nTP7DNTExEUlJSTV+Nmp6r0RkeUy0iWxIbm5ure23f/0MGP/HtfK4nJwco9e7fv06CgoK5FHUqvLy\n8iCEqHZdYzEsXboUV65cwerVq6t9hf/VV1/VukBMbm4uwsPDjbYDN79Kb0z/+Mc/8MYbb2DlypWY\nNm2aXEby1FNP1ftaNSU8P/zwA5KTkzF16tRqD6JmZ2dj3rx59Q/ciMqfUXZ2ttF+zM7ONjiuLurz\n2az8XF25cqXa8ZVlIfUZuZ8yZQpmzpyJL7/8Es899xxWr14tt9ek8t5eXl4G7Rs3boSzszOGDx9u\n9Dxzvc8WLVoAqPv7nDNnDrRaLVJSUtC+fXuDfVlZWTUuWFT1/re/VyKyPJaOENmQ8+fPG50Pt/If\n2W7dutXpOq6urmjbti1ycnJw4sSJavsr66aNfaVdUVFhMO1YbTGcOXMGkiThgQceqPH4muzcubNa\n26lTp5Cbm4u2bduadTS7skRAp9PVeEzLli0xYcIEpKSkYPfu3VizZg18fX0xZswYsLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9caf860>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(t, probs)\n",
"plt.title('probability ratio p(cv)/p(ca)')\n",
"plt.xlabel('time (sec)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the first three seconds, while the tracked object travels in a straight direction, the constant velocity filter become much more probable than the constant acceleration filter. Once the maneuver starts the probability quickly changes to to favor the constant acceleration model. However, the maneuver is completed by second six. You might expect that the probability for the constant velocity filter would once again become large, but instead it remains at zero.\n",
"\n",
"This happens because of the recursive computation of the probability:\n",
"\n",
"$$p_k = \\frac{\\mathcal{L}p_{k-1}}{\\sum \\text{probabilities}}$$\n",
"\n",
"Once the probability becomes very small it can never recover. The result is that the filter bank quickly converges on only the most probable filters. A robust scheme needs to monitor the probability of each filter and kill off the filters with very low probability and replaced with filters with greater likelihood of performing well. You can subdivide the existing filters into new filters that try to span the characteristics that make them perform well. In the worst case, if a filter has diverged you can reinitialize a filter's state so that it is closer to the current measurements. "
]
},
{
@@ -1683,7 +1840,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.1"
"version": "3.4.3"
}
},
"nbformat": 4,
+2 -1
View File
@@ -11,7 +11,8 @@ import book_plots as bp
def plot_track_and_residuals(t, xs, z_xs, res):
plt.subplot(121)
bp.plot_measurements(t, z_xs, label='z')
if z_xs is not None:
bp.plot_measurements(t, z_xs, label='z')
bp.plot_filter(t, xs)
plt.legend(loc=2)
plt.xlabel('time (sec)')
+2
View File
@@ -136,6 +136,7 @@ def plot_track(xs, ys=None, label='Track', c='k', lw=2, **kwargs):
def plot_filter(xs, ys=None, c='#013afe', label='Filter', vars=None, **kwargs):
#def plot_filter(xs, ys=None, c='#6d904f', label='Filter', vars=None, **kwargs):
if ys is None:
ys = xs
xs = range(len(ys))
@@ -144,6 +145,7 @@ def plot_filter(xs, ys=None, c='#013afe', label='Filter', vars=None, **kwargs):
if vars is None:
return
print('here')
vars = np.asarray(vars)
std = np.sqrt(vars)