609 lines (608 with data), 159.1 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Interpolation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We've previously discussed how signals are sampled at discrete points in time. When we want to work with multiple signals that are sampled differently in time, we need techniques that allow us to compare them. **Interpolation** is a technique to estimate a signal at points in time between existing samples.\n",
"\n",
"Let's see how it works."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Imports"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy as sp\n",
"from matplotlib import pyplot as plt\n",
"from scipy import signal"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's create two signals that are exactly the same but with different sampling rates."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"fs1 = 60\n",
"ts1 = np.arange(0, 10, 1/fs1)\n",
"s1 = np.sin(2 * np.pi * 1 * ts1)\n",
"\n",
"fs2 = 25\n",
"ts2 = np.arange(0, 10, 1/fs2)\n",
"s2 = np.sin(2 * np.pi * 1 * ts2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plottings the signals you can see that they are both 1 Hz sine waves, but the one that is sampled at 60 Hz has many more data points than the one sampled at 25 Hz."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3d2cb0beb8>]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2eb35b70>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12, 8))\n",
"plt.plot(ts1, s1, '.')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3d2ca792e8>]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2caf76a0>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12, 8))\n",
"plt.plot(ts2, s2, '.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use linear interpolation to approximate what `s2` would have been had we sampled it at the same time points as `s1`."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"s2_interp = np.interp(ts1, ts2, s2)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(250, 600, 600)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(s2), len(s1), len(s2_interp)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3d2c9e7400>]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2c87cd30>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12, 8))\n",
"plt.plot(ts1, s2_interp, '.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After plotting and verifying the lengths of the signals, it might appear that `s2_interp` and `s1` are the same. Careful, they are most certainly not!"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3d2c990470>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2ca0e6a0>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.clf()\n",
"plt.plot(ts1, s1, '.', ms=10, label='s1')\n",
"plt.plot(ts1, s2_interp, '.', ms=10, label='s2_interp')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By plotting the original and the interpolated signal together we can see that linear interpolation estimates points in between existing points by using a weighted average of the original points."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3d2c90f470>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2ca07710>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.clf()\n",
"plt.plot(ts1, s2_interp, '.', ms=10, label='s2_interp')\n",
"plt.plot(ts2, s2, '.', ms=10, label='s2')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Non-Uniform Sampled Signals"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So far, we've only discussed uniformly sampled signals where the signal is sampled at fixed intervals in time. Sometimes we may encounter signals that are sampled haphazardly in time. This is bad because a lot of signal processing techniques that we are about to learn require that the signal is sampled uniformly. We can fix this again with linear interpolation."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Make some continuous signal."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3d2c6c0240>]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2c9296d8>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"i = 18\n",
"np.random.seed(i)\n",
"fs = 300\n",
"signal = np.random.randn(fs * 2)\n",
"orig_ts = np.cumsum(np.ones(len(signal)) * 1/fs) - 1/fs\n",
"b, a = sp.signal.butter(3, 2, btype='lowpass', fs=fs)\n",
"orig_signal = sp.signal.filtfilt(b, a, signal)\n",
"plt.clf()\n",
"plt.plot(orig_ts, orig_signal)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Uniformly sample this signal at 30 Hz."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"ts = orig_ts[::10]\n",
"signal = orig_signal[::10]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3d2c626a58>]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2c6ca908>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(ts, signal, '.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Randomly sample the continuous signal."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f3d2c60d9b0>]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2c68b940>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"idx = sorted(np.random.choice(range(len(orig_ts))[6::5], 60, replace=False))\n",
"non_uniform_ts = orig_ts[idx]\n",
"non_uniform_signal = orig_signal[idx]\n",
"plt.plot(non_uniform_ts, non_uniform_signal, '.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's take a closer look at these two discrete-time signals."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3d2c56aef0>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xt8VeWd7/HPb18CKqgRbwiBBMVGqAomptAOlYvDqDN4G2u1WtDRcZjjzOnxVq32VNvpWC22dlrb+rJYBG+1RUW0XhFs6dQYSAkoEAUhKSDHagi2TgnJzn7OH3vtuAk75LLve33frxev7Mvaa/2ysvjttZ7nWb/HnHOIiIi/BHIdgIiIZJ+Sv4iIDyn5i4j4kJK/iIgPKfmLiPiQkr+IiA8p+YuI+JCSv4iIDyn5i4j4UCjXAfTkyCOPdOXl5bkOQ0SkoNTX13/onDuqt+XyNvmXl5ezevXqXIchIlJQzKy5L8up2UdExIeU/EVEfEjJX0TEh/K2zV9E8ltHRwfbt2+nra0t16H40uDBgxk5ciThcHhAn1fyF5EB2b59O0OHDqW8vBwzy3U4vuKco6Wlhe3bt1NRUTGgdajZR0QGpK2tjWHDhinx54CZMWzYsJSuupT8M6y+uZUfr9hMfXNrrkMRSTsl/txJdd+r2SeN6ptbqd3SwqQxw6gaXUp9cyuXza+lPRKlJBTg0asnUTW6NNdhiojozD8tttWx49lvM2/+Ir738ttcNr+264ugPRIl6qAjEqV2S0vXR3RFIJK6trY2ampqOPXUUxk/fjy33347AFu3buUzn/kMY8eO5Ytf/CLt7e0A3HHHHdxzzz37rKO8vJwPP/ww67HnmpJ/qrbVwcJzGV7/PRYEvs0E3ulK9JPGDKMkFCBoEA4FmDRmGBBL/PPmL+Kvr36XefMX6QtAZIAGDRrE8uXLWbt2LQ0NDbz44ovU1tZy8803c91117Fp0yZKS0t58MEHcx1q3lHyT1XTSuhsJ0CUMBEmBzd2Jfqq0aU8evUkrp/5qX2afLauWcGCwLe5LvgrFgS+zdY1K3L8S4hkR7qveM2MIUOGALGhpx0dHZgZy5cv56KLLgJgzpw5LFmypNd13X///UyYMIEJEyZQUVHBtGnT0hJjvlKb/wDFm3VmDDmVymBJ7AsgGKZi4lk8OvGTRF81unS/dv7JwQ2EiRCyKLgIk4MbgAtz8FuIZE+m+sA6Ozupqqpi8+bNXHvttRx//PEcfvjhhEKx9DZy5Eh27NjRtfy9997LI4880vX8vffeA2Du3LnMnTuXjo4Opk+fzvXXX59ybPlMyX8AEg/iH4UCLDn3ESrb1hIon8JFZTW9fn7EhJlEG35EtLODQCjMiAkzsxC1SG4l6wNLR/IPBoM0NDSwe/duLrjgAjZu3LjfMokjY6677jpuvPHGrufdqwd/5StfYfr06cyaNSvl2PKZkv8AdD+IX/24nMppZ/Z9BWU1BK54NtZkVD4F+vCFIVLo4n1gHZHoPn1g6XL44YczdepUamtr2b17N5FIhFAoxPbt2znuuOP6tI6HHnqI5uZm7rvvvrTGlo+U/AcgLQdxWc1+Sb9x1TJaNyyndNx0Kk/vx5eJSAGI94ElDodO1QcffEA4HObwww9nz549LFu2jJtvvplp06axePFiLrnkEhYuXMh5553X67rq6+u55557WLlyJYFA8XeHKvkPQCYO4sZVyxj93KWcQISOLT+jkcf1BSBFJ1kfWCp27tzJnDlz6OzsJBqNcvHFF/MP//APjBs3jksuuYSvf/3rTJw4kauuuqrXdd13333s2rWrq6O3urqa+fPnpy3WfGPOuVzHkFR1dbXz02Qury+8ldO3/JSQRYm4AKvG/CuT59yZ67BEerRx40ZOOumkXIfha8n+BmZW75yr7u2zxX9tUyBKx02ngxARF6CDEKXjpuc6JBEpYmr26YPuZRsyofL0M2nkcbX5i0hWKPn3Ipv1eSpPPxOU9EUkC9Ts04sD1ecRESlUSv696Kk+j4hIIVOzTy8yMayzP7LR3yAi/qMz/z6oGl3KtdNOyEniV/VPkcJwzjnnsHv3bgB++MMfctJJJ3HZZZflOKqe6cw/j8Wrf4aJ0MHT/HpNGVWjVQBOJB89//zzXY9/8pOf8MILL/R5ft14KYps0pl/Hkus/hkrF70h1yGJpGZbHaz8XuxnGjQ1NXHSSSfxz//8z4wfP56ZM2eyZ88eGhoamDRpEqeccgoXXHABra2xq+apU6dy8803U1NTw4knnsjKlSuTrnfq1KnEbzL98MMPu4q/PfTQQ1x44YWcddZZjB07lq9+9atdn4lPCjN37ly2bNnCueeey7333suuXbs4//zzOeWUU5g0aRLr1q0DYhPLXHPNNcycOZPZs2fz0EMPcf755zNr1iwqKiq47777+P73v8/EiROZNGkSu3btSss+i1Pyz2MjJswkECohSpBAqETVP6WweRMfsfw/Yz/T9AWwadMmrr32WtavX8/hhx/Ok08+yezZs7n77rtZt24dJ598Mt/85je7lo9EItTV1fGDH/xgn9f7qqGhgSeeeII333yTJ554gm3btu3z/v33389xxx3HihUruO6667j99tuZOHEi69at484772T27Nldy9bX1/PMM8/w2GOPAfDWW2/x2GOPUVdXx2233cbBBx/MmjVrmDx5MosWLRrgHkpOyT+fedU/AzNui1UBVfVPKWTexEe4ztjPpuRn3f1VUVHBhAkTAKiqquLdd99l9+7dnHHGGUBsMpff/va3XctfeOGFXcs2NTX1e3szZszgsMMOY/DgwYwbN47m5uYDLv+73/2OL3/5ywBMnz6dlpYWPvroIwDOPfdcDjrooK5lp02bxtChQznqqKM47LDDuspKn3zyyQOK9UDU5p/vklT/FClI5VPAm/iIYEnseRoMGjSo63EwGOzqdO1t+WAwSCQSAeDKK69kzZo1HHfccTz//POEQiGi0SgQmyf4QNuLr6MnyeqnxecXOOSQQ3pcdyAQ6HoeCAR63U5/6cxfRLKjrAbmLIXpt8V+Zuik5rDDDqO0tLSrPf/hhx/uugroyYIFC2hoaOjqtC0vL6e+vh6AxYsXpxTP5z//eR599FEAXnvtNY488kgOPfTQlNaZDjrzF5HsydKV7MKFC5k7dy5//etfGTNmDAsWLOjX52+88UYuvvhiHn74YaZPT63I4h133MGVV17JKaecwsEHH8zChQtTWl+6qKRzAdKNX5IPVNI591Ip6awz/27yPbFms9CciBQvJf8EhZBYMzUJtoj4izp8ExRCBU8VmpN8kq/Nxn6Q6r5PS/I3s7PM7G0z22xmtyR5//Nm9gczi5jZRenYZiYUQmKNF5q7fuan8vLKRPxj8ODBtLS06AsgB5xztLS0MHjw4AGvI+UOXzMLAu8AfwtsB1YBlzrnNiQsUw4cCtwILHXO9Tp2Klcdvvne5i+SLzo6Oti+fft+4+AlOwYPHszIkSMJh8P7vJ7NDt8aYLNzbou34V8A5wFdyd851+S9F03D9jKqanSpkr5IH4TD4T4XLpP8k45mnxFAYnGL7d5r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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2c686cc0>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.clf()\n",
"plt.plot(ts, signal, '.', label='30Hz')\n",
"plt.plot(non_uniform_ts, non_uniform_signal, '.', label='non-uniform')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Interpolate the non-uniform signal onto the same time grid as the uniform 30Hz signal."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"rec_sig = np.interp(ts, non_uniform_ts, non_uniform_signal)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot the resampled non-uniform signal on top of the original uniformly sampled signal. You can notice artifacts at the edge of the resampled signal, and there is more error when the gap between existing samples is larger."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f3d2c562f60>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xt4VfWd7/H3d+ci9VYj3rkkxMvRIBpMDEHLKCgMrSI61Ypj29jK+Njb9OhIseq0dobjcarzWM/Yp30UqziHUY+0KnacDkVsy1HSkNRYC1KlEIYgY2mM9FAHk539PX/snbCz2SGXfd/r83oenr33Wmuv9c3ai+9a6/f7rd/P3B0REQmWUK4DEBGR7FPyFxEJICV/EZEAUvIXEQkgJX8RkQBS8hcRCSAlfxGRAFLyFxEJICV/EZEAKs11AEM57rjjvKqqKtdhiIgUlLa2tj+4+/HDLZe3yb+qqorW1tZchyEiUlDMbMdIllOxj4hIACn5i4gEkJK/iEgA5W2Zv4iMXW9vL52dnezfvz/XoUiGjBs3jokTJ1JWVjam7yv5ixShzs5OjjrqKKqqqjCzXIcjaebudHV10dnZyZQpU8a0DhX7iBSh/fv3M378eCX+ImVmjB8/PqU7OyX/LGjb0c13X95K247uXIciAaLEX9xS/X1V7JNmbTu6ad7WRWP1eOoqK2jb0c31y5vpCUcoLw2xcnEjdZUVuQ5TRAJOV/5p1Lajm/uWP8EHL32b+5Y/MXAi6AlHiDj0hiM0b+saWFZ3A1LM9u/fT0NDA+eeey5Tp07lm9/8JgDbt29nxowZnH766Vx77bX09PQAcPfdd3P//fcPWkdVVRV/+MMfsh57ECj5p9H2117msdAybil5hsdCy9j+2ss0Vo+noXQrXyp9nvNLt9JYPT7pSUKk2Bx22GGsW7eO119/nfb2dn7yk5/Q3NzM0qVLueWWW3j77bepqKjg0UcfzXWogaTkn0YzSzZTRphSi1BGmJklm6kLvc2/lN/D35Q+w7+U30Nd6O2kJwmRXEv33aiZceSRRwLRpqe9vb2YGevWrePqq68GoKmpieeee27YdX3/+9+ntraW2tpapkyZwuzZs9MSY5Ap+Y9Rsv8oE2rnESotJ0IJodJyJtTOg471hCK9hIgQivRCx/qkJwmRXOqvm/rHNb/l+uXNaTsB9PX1UVtbywknnMDcuXM59dRTOeaYYygtjVY3Tpw4kV27dg0s/8ADDwwk+draWt555x0Abr75Ztrb29m4cSMTJ07k1ltvTUt8QaYK3zEYshJ3UgOhG16AjvVQNQsmNUS/UFIOfT3R16pZTAAi7f9EpK+XUGlZ9CQhkkPJ6qbS0TChpKSE9vZ23n//fa666irefPPNg5aJb7Vyyy23cNtttw18TuzZ96tf/Spz5sxhwYIFKccWdEr+Y3DI/yiTGg4k/f7PTasPOiEkPUmI5Ehj9XjKS0P0hiOUlYZorB6f1vUfc8wxXHzxxTQ3N/P+++8TDocpLS2ls7OTU045ZUTrePzxx9mxYwcPPfRQWmMLKiX/MeivxK3zTbTZVBqrLzj0FxJPCENM27JxLd2b11FRM4czz780zVGLDK2usoKVixsHNVNO1Z49eygrK+OYY47hv/7rv1i7di1Lly5l9uzZrFq1ikWLFrFixQoWLlw47Lra2tq4//77Wb9+PaGQSqvTQcl/DPorcaNFOc8TCs0EUrt637JxLZU/vo7TCNO77RG28KROAJJVdZUVaX0GZffu3TQ1NdHX10ckEuFTn/oUl19+OTU1NSxatIi77rqL6dOnc+ONNw67roceeoj33ntvoKK3vr6e5cuXpy3WIFLyH4tYJS5EIFaJm2rRTffmdZwWqwTGw3RvXgdK/lLAzjnnHF577bWDpldXV9PS0nLQ9LvvvvugaR0dHQA89thj6Q4v8HT/NBZVs6KVt1YyUImbqoqaOfRSSthD9FJKRc2cNAQqIpKcrvxHILHLhqEqcVNx5vmXsoUnVeYvIlmh5D+MQzXrTHcrnTPPv1RFPSKSFSr2GcZQffOIiBQyJf9h9Ld/LjEy0v5ZRCQXVOwzjEy0fx4Ntf0XkUzQlf8I1FVW8KXZp+Uk8Vf++DrO3/Y9Kn98HVs2rs3q9kWKTbJuo4fT3zndSCxevJjNm9PfV9doYhgpJf+R2NkC6/8x+ppF3ZvXDeoArnvzuqxuXyQd3J1IJJLrMLJi+fLl1NTU5DqMEVHyH87OFlhxBaz7H9HXLJ4A1PZfsiqNFzkdHR2cddZZfPGLX+S8885j586drFmzhpkzZ3LeeedxzTXXsG/fPgBuv/12ampqOOeccwY6dXvhhReYMWMG06dP59JLL+Xdd98FolfuTU1NzJs3j6qqKn70ox/xta99jWnTpjF//nx6e3uBaIdwS5cupaGhgYaGBrZu3XpQjL/73e+YP38+dXV1zJo1iy1btgDRwWZmzpzJ+eefz9/+7d8m/fv+9Kc/cdlll3Huuedy9tln8/TTTwNw8cUX09raCsCjjz7KGWecwcUXX8xf/dVf8eUvfxmAG264gb/+67/mggsuoLq6mlWrVgGwb98+LrnkEs477zymTZvG888/n/LvcEjunpf/6urqPC/84n73uyvcv3l09PUX92d182+2/NRfffzr/mbLT7O6XSlsmzdvHt0X/uOX7n9/YvQY//sTo59TsH37djcz37Bhg7u779mzx2fNmuX79u1zd/d7773Xv/Wtb3lXV5efccYZHolE3N29u7vb3d3fe++9gWmPPPKI33rrre7u/s1vftMvvPBC7+np8fb2dv/IRz7iL774oru7X3nllf7ss8+6u3tlZaUvW7bM3d1XrFjhl1122cD377vvPnd3nzNnjr/11lvu7t7c3OyzZ892d/cFCxb4ihUr3N39oYce8iOOOOKgv2/VqlW+ePHigc/vv/++u7tfdNFFvnHjRt+1a5dXVlZ6V1eX9/T0+Mc+9jH/0pe+5O7uTU1NfvXVV3tfX59v2rTJTz31VHd37+3t9b179w7sr1NPPXVgHySLwT357wy0+ghyrCp8h9P/NG9cl8zZpLb/khUd66PHuPdFX9PQZUllZSWNjY0ANDc3s3nzZi688EIAenp6mDlzJkcffTTjxo1j8eLFXHbZZVx++eUAdHZ2cu2117J79256enqYMmXKwHo//vGPU1ZWxrRp0+jr62P+/PkATJs2baA7CIDrrrtu4PWWW24ZFNu+fft49dVXueaaawamffjhhwC88sor/PCHPwTgM5/5DEuXLj3ob5s2bRq33XYbS5cu5fLLL2fWrMF5oaWlhYsuuohjjz0WgGuuuYa33nprYP6VV15JKBSipqZm4K7G3bnjjjv4xS9+QSgUYteuXbz77rucdNJJI9rfo6XkP5wMPM0rkncycJFzxBFHDLx3d+bOncuTTz550HItLS289NJLPPXUUzz00EOsW7eOr3zlK9x6661cccUV/OxnPxvU789hhx0GQCgUoqysbGA8gFAoRDgcHlgufpyA+PcAkUiEY445hvb29qSxJy6f6IwzzqCtrY0XX3yRr3/968ybN49vfOMb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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3d2c5c49e8>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.clf()\n",
"plt.plot(ts, signal, '.', label='30Hz')\n",
"plt.plot(ts, rec_sig, '.', label='resampled signal')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}