Skip to content

Instantly share code, notes, and snippets.

@melvincabatuan
Created April 1, 2015 04:04
Show Gist options
  • Save melvincabatuan/4368c0537ca9671d2750 to your computer and use it in GitHub Desktop.
Save melvincabatuan/4368c0537ca9671d2750 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Convolution Integral"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### A *convolution*, $(h*x)(t)$, is a mathematical operator which manipulates two functions $x$ and $h$ and produces an output that represents the amount of overlap between $x$ and a reversed and translated version of $h$. </br>\n",
"\n",
"### In signal processing, one of the functions ($h$) is taken to be a fixed filter impulse response, and is known as a *kernel*.\n",
"\n",
"$$ (x \\ast h)(t) = \\int_{-\\infty}^{\\infty} x(\\tau)h(t - \\tau) \\, d\\tau$$\n",
"\n",
"or\n",
"\n",
"$$ (h \\ast x)(t) = \\int_{-\\infty}^{\\infty} h(\\tau)x(t - \\tau) \\, d\\tau $$\n",
"\n",
"Illustration: [1]"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<iframe src=http://mathworld.wolfram.com/images/gifs/convrect.gif width=300 height=260></iframe>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 188,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import HTML\n",
"HTML('<iframe src=http://mathworld.wolfram.com/images/gifs/convrect.gif width=300 height=260></iframe>')"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<iframe src=http://mathworld.wolfram.com/images/gifs/convgaus.gif width=300 height=260></iframe>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import HTML\n",
"HTML('<iframe src=http://mathworld.wolfram.com/images/gifs/convgaus.gif width=300 height=260></iframe>')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Steps </br>\n",
"\n",
"### 1. The impulse response $h(\\tau)$ is flipped or time-reversed (that is, reflected about the origin) to obtain $h(-\\tau)$ and then shifted by to form $h(t - \\tau) = h[-(\\tau - t)]$, which is a function of $\\tau$ with parameter $t$.\n",
"### 2. The signal $x(\\tau)$ and $h(t - \\tau)$ are multiplied together for all values of $\\tau$ with $t$ fixed at some value.\n",
"### 3. The product $x(\\tau)h(t - \\tau)$ is integrated over all $\\tau$ to produce a single output value $y(t)$. \n",
"\n",
"</br>\n",
"Ex."
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def step(t, t_0):\n",
" return 1 * ((t - t_0) >= 0)"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline \n",
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic Example:\n",
"\n",
"## Calculate the convolution of a unit step input with a unit step response system.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"AABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf9c544c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"x = step(t,0) \n",
"h = step(t,0)\n",
"\n",
"fig = plt.figure(figsize=(12,4))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"plt.plot(t,x,'g-',linewidth=6);\n",
"plt.title('Input signal, $x(t)$')\n",
"plt.xlabel('t')\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"plt.plot(t,h,'r-',linewidth=6);\n",
"plt.title('Impulse response, $h(t)$')\n",
"plt.xlabel('t');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ (x \\ast h)(t) = \\int_{-\\infty}^{\\infty} u(\\tau)u(t - \\tau) \\, d\\tau$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 1: The impulse response $h(\\tau)$ is flipped or time-reversed (that is, reflected about the origin) to obtain $h(-\\tau)$ and then shifted by to form $h(t - \\tau) = h[-(\\tau - t)]$, which is a function of $\\tau$ with parameter $t$."
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf76af8c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h = step(-t, 0)\n",
"fig = plt.figure(figsize=(12,4))\n",
"plt.plot(t,h,'r-',linewidth=6);\n",
"plt.title('Impulse response, $h(-\\u03c4)$ at t = 0')\n",
"plt.xlabel('T');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 2-3 The signal $x(\\tau)$ and $h(t - \\tau)$ are multiplied together for all values of $\\tau$ with $t$ fixed at some value. Then, the product $x(\\tau)h(t - \\tau)$ is integrated over all $\\tau$ to produce a single output value $y(t)$. "
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Annotation at 0xb00f372c>"
]
},
"execution_count": 194,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAA4MAAAFdCAYAAAC5PLiMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
"AAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYZHdZJ/DvO5MhIYSrrEAukrAEBFzuBERWgqCErBLl\n",
"AREBhVVhHwnKiktQ3GXwhrqgXCIYubq6EFgUTJQQEBlwlY0GQxBJlgSI5EIgLIGMJIRM5rd/VA05\n",
"U6e6qnump2v61OfzPP08fepc6j196nTXt9/fOVWttQAAALBctiy6AAAAADaeMAgAALCEhEEAAIAl\n",
"JAwCAAAsIWEQAABgCQmDAAAAS0gYBAAAWELCIAAAwBISBgHYZ1V13H6uf7eqOny96oFltNJ56PwC\n",
"5hEGgUGpqsuq6rGLrmMZVNU9kjxiPzdzTZIXrUM5S6mqPllV3ztj/n6fD+t1Ts2r9WCwUTWu5++p\n",
"Oeeh8wuYSRgEDogFhrI2/uLAe25r7e37s4HW2q4kf1lVP7Gv2xi/1r5vX+fvj6q6U1W9u6r+dfw8\n",
"T5ux7I6quqGqdo6/Ltrf52+tfVdr7SOd55jc1zWdDyv8rNblnJqs9UDa12O+gTWu5++pFc/D9Ti/\n",
"gGETBoEDZZChrKoOWXQNG6Wq7l1V/7uqfnLKvAckuWI9nqe19g9JHrc/m0hS+zF/f/x+km8k+fYk\n",
"T0/y+qq674w6ntdau+346z4HoJ793dcD+bPaSEPZj5lWcx6uw/kFDJgwCBxw4//S/2JVfWLcEXlT\n",
"Vd2lqs6pqq9V1Qeq6g4Ty7+4qv65qr5SVW+uqkPH83aPh0XtWfatVfVrKzzvaVV1RVVdV1UXdzsF\n",
"VXVkVf1pVX2pqj5bVc+fU/+LquoTSXZW1ZZZ60953sfM26/x/PuMu0fXjoer/dBEDS+sqgur6qtV\n",
"debEulP3dS37Oam19n+T7EqyY8rsH0zy16vd1ipcU1X3nDZj/DO7dLxv/1xVP9yZ98dJviPJ2ePX\n",
"1i9OrDtz/v6oqtskeVKS/9pau7619rdJ/jzJM2ettsptP7uqzupMX1JV7+xMX15VD+h2wKbs638Z\n",
"L/6glV43E88562c1dRv7cB49dmJ66mt6FefKir8HVnPM55yj3RofXFUXjJd7Z1W9o/M8887JFV+3\n",
"62jqeVhVH6y9/3G14vkFLDdhENgoT0ry2CT3zugNzDlJXpxRR2VLkp+bWP7Hk/xAkn+b5F5JfmWF\n",
"7U7tQFbVvZM8L8lDW2u3G2/rsvG8LUnOTnJBkiPHdb2gqn5gRv0/luQJSfaE1qnrr/C8/zJvv6pq\n",
"23ib70vyb5I8P8n/rKrjO+s+JcnjkxyX5P5JnjVrX/dxP7+lRjeeOLK19i9TZj8syadWs51VujDJ\n",
"Q1aYd2mSR4337WVJ/qSq7pokrbVnJvl8kh8cd9te0V1x3vw9quovxiF82tdZ09bJ6Pjtaq1dOrEf\n",
"95uxny+vqmtq1HF99IzldiT59+PajkyyLePrwsYh6DZJPpHOa3/Kvv73jMLn1NfNpBk/q6nbqKrK\n",
"2l5fk+dqm1Pban8H7LXtecd8zjn6re1U1a2SvDvJm5PcMcnbk/zwxD7Mqn/a6/YuM/ZhX/TOw6o6\n",
"KkmNh4juMev8ApaYMAhshJbkta21a1prVyX5myQfba1d2Fq7MaM3XA+aWP701tqVrbVrk/xGkhWv\n",
"xcr0bsuuJIcmuV9VbWutfb619tnxvIcluXNr7ddba7taa59L8saMAt9K9b9mXM+Nc9af9byz9usR\n",
"SW7TWvut8TY/lOQvMnpD3K3h6vG6Zyd54HjezSs851r3c9Kjknylqk6qqp+vqlM78w5vra1pGHBV\n",
"3a6qXldVn6uqz1TVeVW1dTz72iRHT1uvtfau1trV4+/fmeSSJCes5bnnaa39YGvtjit8PXGF1Y5I\n",
"ct3EYzuT3HaF5U/LKDQcmeQPM+pc3WPaguNjtbOqHpTke5Ocm+SqcZB5dJKPrPLnP+t1s1orbeOE\n",
"7N/rKzNqW+vvgGT1w0JXOl8mPSLJ1tbaa1trN7fW3p3k7zvzZ/5s1+N1W1XHVNWTqurt4+ltVfVX\n",
"nUX2Og+r6vuT/F6Sq6uq26Fe8fwCltvSXPsCLNwXO9/fMDH9jYzeWHdd3vn+8xm9gV611tpnquoF\n",
"SbZn9Kbv3CS/0Fr7QpK7Jzmyqq7trLI1yawbR3TrWXH9Oc87a7+OnJiXjLoV3f2+uvP9DXvmtdYu\n",
"nfac+7ifXd+X5E9ba++rqq8meWGS0zvb2UtVvSjJrVfY1h8lOSajjswfJ3lOa+36if251bQVa3Tz\n",
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xafe919ac>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h = step(-t, -0.5)\n",
"x = step(t, 0)\n",
"fig = plt.figure(figsize=(12,4))\n",
"ax1 = fig.add_axes([0, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,h,'r-',linewidth=6);\n",
"plt.plot(t,x,'g-',linewidth=6);\n",
"plt.title('Impulse response, $h(-\\u03c4)$ at t = 0.5 with the input signal, $u(t)$')\n",
"plt.xlabel('T');\n",
"ax1.fill_between(t,0,h,where=x==h,color='black');\n",
"ax1.annotate('$t$', xy=(0.5, 0), xytext=(0.6, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that the time reversed Impulse response, $u(-\\tau)$, starts intersecting the signal, which is also a unit step, $u(\\tau)$, at $\\tau = 0$ until $\\tau = t$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Thus, \n",
"\n",
"$$ (x \\ast h)(t) = \\int_{0}^{t} x(\\tau)h(t - \\tau) \\, d\\tau$$ \n",
"\n",
"$$ (x \\ast h)(t) = \\int_{0}^{t} u(\\tau)u(t - \\tau) \\, d\\tau$$ \n",
"\n",
"$$ (x \\ast h)(t) = \\int_{0}^{t} (1)(1) \\, d\\tau$$ \n",
"\n",
"$$ (x \\ast h)(t) = \\left. \\tau \\right |_0^t $$\n",
"\n",
"$$ (x \\ast h)(t) = t \\, u(t) $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ (x \\ast h)(t) = \\begin{cases} \n",
" 0 & \\mbox{if } -\\infty < t < 0 \\\\ \n",
" t & \\mbox{if } \\, 0 < t < \\infty \\\\ \n",
"\\end{cases} $$"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xafbd25cc>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"\n",
"# input\n",
"x = step(t,0) \n",
"\n",
"# impulse response\n",
"h = step(t,0) \n",
"\n",
"# result\n",
"result = np.zeros(len(t))\n",
"result = t * (step(t,0))\n",
"\n",
"fig = plt.figure(figsize=(16,4))\n",
"\n",
"plt.plot(t,x,'go-',linewidth=5, label='Input signal, $x(t)$');\n",
"plt.plot(t,h,'rd-',linewidth=1, label='Impulse response, $h(t)$');\n",
"plt.plot(t,result,'b-',linewidth=3, label='Output signal, $y(t)$');\n",
"plt.xlabel('t')\n",
"plt.grid()\n",
"legend = plt.legend(loc='upper left');"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf9006cc>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"x = step(t,1) - step(t,3)\n",
"h = (t + 2)*(step(t,-2) - step(t,-1))\n",
"\n",
"fig = plt.figure(figsize=(12,4))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"plt.plot(t,x,'g-',linewidth=5);\n",
"plt.title('Input signal, $x(t)$')\n",
"plt.xlabel('t')\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"plt.plot(t,h,'r-',linewidth=3);\n",
"plt.title('Impulse response, $h(t)$')\n",
"plt.xlabel('t');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Drill Problem 1: Compute the convolution, $(x \\ast h)(t)$, of the signals represented in the figure above:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 1: The impulse response $h(\\tau)$ is flipped or time-reversed (that is, reflected about the origin) to obtain $h(-\\tau)$ and then shifted by to form $h(t - \\tau) = h[-(\\tau - t)]$, which is a function of $\\tau$ with parameter $t$."
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"YEmSJDXn/wNuqb94Pr4h8wAAAABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf7dcc0c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h = (-t + 2)*(step(t,1) - step(t,2))\n",
"fig = plt.figure(figsize=(12,4))\n",
"plt.plot(t,h,'r-',linewidth=3);\n",
"plt.title('Impulse response, $h(-\\u03c4)$ at t = 0')\n",
"plt.xlabel('T');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: This is the $h(t - \\tau)$ at $t = 0$ and the signal starts at $\\tau = t + 1$ and ends at $\\tau = t + 2$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 2-3 The signal $x(\\tau)$ and $h(t - \\tau)$ are multiplied together for all values of $\\tau$ with $t$ fixed at some value. Then, the product $x(\\tau)h(t - \\tau)$ is integrated over all $\\tau$ to produce a single output value $y(t)$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case I: NO Overlap, $y(t) = 0$ at $-\\infty \\to t_1$, where $t_1 = -1$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{-\\infty}^{-1} x(\\tau)h(t - \\tau) \\, d\\tau = 0 $$"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb03550ac>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h_4 = (-t - 2)*(step(t,-3) - step(t,-2))\n",
"h_3 = (-t - 1)*(step(t,-2) - step(t,-1))\n",
"h_2 = (-t - 0)*(step(t,-1) - step(t,-0))\n",
"h_1 = (-t + 1)*(step(t,0) - step(t,1))\n",
"fig = plt.figure(figsize=(16,4))\n",
"plt.plot(t,h_4,'r-',linewidth=3, label=\"$t=-4$\");\n",
"plt.plot(t,h_3,'c-',linewidth=3, label=\"$t=-3$\");\n",
"plt.plot(t,h_2,'m-',linewidth=3, label=\"$t=-2$\");\n",
"plt.plot(t,h_1,'y-',linewidth=3, label=\"$t=-1$\");\n",
"plt.title('Impulse response, $h(-(\\u03c4 - t))$ at t = -4,-3,-2,-1, with the input signal, $x(t)$')\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"$x(t)$\");\n",
"plt.xlabel('T');\n",
"\n",
"legend = plt.legend() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case II: Leading-edge overlap, at $t_1 \\to t_2$ or at $ -1 < t < 0 $"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{a}^{b} x(\\tau)h(t - \\tau) \\, d\\tau $$"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb0685b0c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h_half = (-t + 1.5)*(step(t,0.5) - step(t,1.5))\n",
"fig = plt.figure(figsize=(12,2.5))\n",
"ax1 = fig.add_axes([0, 0, 1, 1]) # [left, bottom, width, height]\n",
"plt.plot(t,h_half,'r-',linewidth=3, label=\"$t=0.5$\");\n",
"plt.title('Impulse response, $h(-(\\u03c4 - t))$ at t = -0.5, with the input signal, $x(t)$')\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"$x(t)$\");\n",
"plt.xlabel('T');\n",
"ax1.fill_between(t,0,h_half,where=x>=h_half,color='black')\n",
"ax1.annotate('$t + 2$', xy=(1.5, 0), xytext=(1.6, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" )\n",
"ax1.annotate('same \\n length \\n as \\n base', xy=(1, 0.2), xytext=(0.55, 0.2),\n",
" arrowprops=dict(facecolor='yellow'),\n",
" )\n",
"ax1.annotate('t+2-1', xy=(1.25, 0), xytext=(1.1, -0.15),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" )\n",
"legend = plt.legend() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The overlap starts at $\\tau = 1$ and ends at $\\tau = t + 2$. Recall that the impulse response ends at $t+2$. Thus, "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{1}^{t+2} x(\\tau)h(t - \\tau) \\, d\\tau $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the above interval, $x(\\tau) = 1$ and $h(t - \\tau) = - \\tau + t + 2 $."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{1}^{t+2} (1)(- \\tau + t + 2) \\, d\\tau $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\left. (t + 2) \\tau - \\dfrac{\\tau^2}{2} \\right |_1^{t+2} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\left((t + 2)(t + 2) - \\dfrac{(t+2)^2}{2}\\right) - \\left((t + 2) - \\dfrac{1^2}{2}\\right) $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\dfrac{(t+2)^2}{2} - t - \\dfrac{3}{2} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\dfrac{t^2}{2} + \\dfrac{4t}{2} + \\dfrac{4}{2} -t - \\dfrac{3}{2} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\dfrac{t^2}{2} + t + \\dfrac{1}{2} $$ or $$ y(t) = \\dfrac{1}{2} (t + 1)^2$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, this can be evaluated by the triangle area:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ A = \\dfrac{1}{2} bh $$\n",
"\n",
"$$ A = \\dfrac{1}{2} (t+2-1)(t+1) $$\n",
"\n",
"$$ A = \\dfrac{1}{2}(t+1)^2 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case III: Full overlap, at $t = 0$ to $t = 1$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{a}^{b} x(\\tau)h(t - \\tau) \\, d\\tau $$ "
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAA4MAAADxCAYAAABxlWKtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
"AAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm4HHWV//HPJwmQjYCKIksQlUUQZVFRRweiIgZEGBxF\n",
"EcFd5hlwBQEl/gIyCvIbRAUXXC+isvwUFAYBcYmow+AEWVRACIsEMCwSICEJJOH8/qjqpG+neru3\n",
"t/r2+/U8eZ6u6qrq0/db1anTp/qUI0IAAAAAgOEyod8BAAAAAAB6j2QQAAAAAIYQySAAAAAADCGS\n",
"QQAAAAAYQiSDAAAAADCESAYBAAAAYAiRDAIAAADAECIZBAAAAIAhRDIIAEPO9nN7uV6D7W1me2qz\n",
"eQA6q96xzPEHpI9kEMDAsX2X7df1O45hYPt5kl7Rq/WaeFDSMS3MQwfZ/rPtPRo8P67jsVPHc7M4\n",
"B0GvYuzkZ2STY5njD0gcySCAuvqYlEX+D913eESc28P16oqIVZIutX1Yo3ntyvfj1471+U6y/XTb\n",
"F9lemr/uwQ2WnWd7ue0l+b+buxFTROwUEVflr1n0t2j5eBzv+q3G2W1j3Sd6GGMnPyPrHsudOP4A\n",
"DDaSQQCNJJmU2Z7U7xh6xfb2tn9n+10Fz+0s6Z4xbHNM67UiIv5X0l7N5rW7WUkex/Od9BVJKyQ9\n",
"S9Ihkr5me8cGcR0RERvm/3boQXzj/Vv08m/ZTam8j4ZaOZY7cPwBGGAkgwBakn9TfrTtG/Mqxbdt\n",
"b2r7MtuP2r7S9sY1yx9n+y+2H7b9Hdsb5M89lV+aVFl2xPZJdV73WNv32H7M9i3V39bb3tz2j20/\n",
"YPsO2x9qEv8xtm+UtMT2hEbrF7zua5q9r/z5HfKKzuL8krE31cRwlO0bbD9i+7yadQvfazvvs1ZE\n",
"/FXSKknzCp7eT9KvWt1WB9YrZPuXNQn6g7a3qVmsaF5l/eNsL8j/bn+x/S9Vz50jaStJl+T77dE1\n",
"6zZ8vpNsT5P0ZkmfjohlEfF7ST+VdGij1cb4Wu+xfXHV9G22L6iaXmj7xfnju2y/rsnfYtd6+23V\n",
"NttefwzH8OtqpguPpxaO07qfQa3sE00+H6pj3M32dflyF9g+v+p1mn0e1N2vO6jwWG7xmASQAJJB\n",
"AO14s6TXSdpe2UnEZZKOU1blmCDpwzXLv0PS3pKeL2k7SXPqbLewAml7e0lHSHppRMzIt3VX/twE\n",
"SZdIuk7S5nlcH7W9d4P43y5pH0mVpLVw/Tqv+7dm78v2evk2L5f0TEkfkvQD29tWrftWSW+Q9FxJ\n",
"L5b07kbvdYzvcw1nzR82j4i/FTz9Mkk3tbKdDq23DttbSHJ+OVrFDZJeUrNo0byKBZJenf/dTpT0\n",
"fdvPlqSIOFTS3ZL2y6tr/1m9YrPnq+L8rzzBL/p3cdE6BbaTtCoiFtS8rxc2WOdk2w86q+7u2eLr\n",
"SFny/8957JtLWk/578LyJGhaRNyYLxuSosHfwqqz31Zrd33bVnv7du3nRDSJq9XPn1HbbrZPNPl8\n",
"WLMd2+tLukjSdyQ9TdK5kv6l5j00ir9ov960wXsYi3WO5TaOSQAJIBkE0KqQdEZEPBgR90n6raSr\n",
"I+KGiHhC2UnPrjXLnxkR90bEYkmflVT391EqroCskrSBpBfaXi8i7o6IO/LnXiZpk4j4j4hYFRF3\n",
"SvqWsoSvXvxfzuN5osn6jV630ft6hbKT7FPybf5a0n8pOymtjmFRvu4lknbJn1td5zXbfZ+1Xi3p\n",
"YduzbX/E9pFVz02NiLFcBjxqPdszbH/V9p22b7d9jVu4FNf26yWdLmmR7erq2GJJW9YsXjRPkhQR\n",
"P4qIRfnjCyTdJmn39t5SYxGxX0Q8rc6//VvczHRJj9XMWyJpwzrLH6ssSdhc0jeUVaqeV2fZ2njv\n",
"VFYB31XSHpKukHRfnsjsKamd37U12m/Hs/7uGt++rQZxtfv5I7Veha13rNZ6haSJEXFGRKyOiIsk\n",
"/aHq+YZ/107t17b3t/1G26fYPsT2Ofl+IK17LLdzTAJIwND8bgZAR9xf9Xh5zfQKZSe71RZWPb5b\n",
"2UltyyLidtsflXSCshOvKyR9PCL+Luk5kja3vbhqlYlqfJJbHU/d9Zu8bqP3tXnNc1JWMah+34uq\n",
"Hi+vPBcRC4pec4zvs9prJf04Ii63/YikoySdWbWdUWwfI2lKnW2dHRF3Fay3s7JKyTmSPhgRy1rc\n",
"1pW23yPptIi4tuq55ZLWr1m+aF4l5sMkfUzS1vms6ZKeUed1e8b2IZK+nk9eJel4STNqFttIWUK4\n",
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb014088c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h_half = (-t + 2.5)*(step(t,1.5) - step(t,2.5))\n",
"fig = plt.figure(figsize=(12,2.5))\n",
"ax1 = fig.add_axes([0, 0, 1, 1]) # [left, bottom, width, height]\n",
"plt.plot(t,h_half,'r-',linewidth=3, label=\"$h$ at $t=0.5$\");\n",
"plt.title('Impulse response, $h(-(\\u03c4 - t))$ at t = -0.5, with the input signal, $x(t)$')\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"$x(t)$\");\n",
"plt.xlabel('T');\n",
"ax1.fill_between(t,0,h_half,where=x>=h_half,color='black')\n",
"legend = plt.legend(loc='center') \n",
"ax1.annotate('$t + 2$', xy=(2.5, 0), xytext=(2.6, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" )\n",
"ax1.annotate('$t + 1$', xy=(1.5, 0), xytext=(1.2, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The overlap starts at $\\tau = t + 1$ and ends at $\\tau = t + 2$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{t+1}^{t+2} x(\\tau)h(t - \\tau) \\, d\\tau $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the above interval, $x(\\tau) = 1$ and $h(t - \\tau) = - \\tau + t + 2 $. Thus,"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{t+1}^{t+2} (1) (- \\tau + t + 2) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\left. (t + 2) \\tau - \\dfrac{\\tau^2}{2} \\right |_{t+1}^{t+2} $$\n",
"\n",
"$$ y(t) = \\left((t + 2)(t + 2) - \\dfrac{(t+2)^2}{2}\\right) - \\left((t + 2)(t+1) - \\dfrac{(t+1)^2}{2}\\right) $$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\dfrac{(t+2)^2}{2} - (t + 1)(t+2 - \\dfrac{t+1}{2}) $$\n",
"\n",
"$$ y(t) = \\dfrac{(t^2 + 4t + 4)}{2} - (t + 1)(\\dfrac{t}{2} + \\dfrac{3}{2})$$\n",
"\n",
"$$ y(t) = \\dfrac{t^2}{2} + \\dfrac{4t}{2} + \\dfrac{4}{2} - \\dfrac{t^2}{2} - \\dfrac{4t}{2} - \\dfrac{3}{2}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\dfrac{1}{2} $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, this can be evaluated by the triangle area:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ A = \\dfrac{1}{2} bh $$\n",
"\n",
"$$ A = \\dfrac{1}{2} (1)(1) $$\n",
"\n",
"$$ A = \\dfrac{1}{2} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case IV: Trailing edge overlap, at $1 < t < 2$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{a}^{b} x(\\tau)h(t - \\tau) \\, d\\tau $$"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"UQAAAABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf13950c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h_half = (-t + 3.5)*(step(t,2.5) - step(t,3.5))\n",
"fig = plt.figure(figsize=(12,2.5))\n",
"ax1 = fig.add_axes([0, 0, 1, 1]) # [left, bottom, width, height]\n",
"plt.plot(t,h_half,'r-',linewidth=3, label=\"$h$ at $t=0.5$\");\n",
"plt.title('Impulse response, $h(-(\\u03c4 - t))$ at t = -0.5, with the input signal, $x(t)$')\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"$x(t)$\");\n",
"plt.xlabel('T');\n",
"ax1.fill_between(t,0,h_half,where=x>=h_half,color='black')\n",
"legend = plt.legend(loc='center') \n",
"ax1.annotate('$t + 1$', xy=(2.5, 0), xytext=(2.2, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The overlap starts at $\\tau = t + 1$ and ends at $\\tau = 3$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{t+1}^{3} x(\\tau)h(t - \\tau) \\, d\\tau $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the above interval, $x(\\tau) = 1$ and $h(t - \\tau) = - \\tau + t + 2 $. Thus,\n",
"\n",
"$$ y(t) = \\int_{t+1}^{3} (1) (- \\tau + t + 2) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\left. (t + 2) \\tau - \\dfrac{\\tau^2}{2} \\right |_{t+1}^{3} $$\n",
"\n",
"$$ y(t) = \\left((t + 2)(3) - \\dfrac{(3)^2}{2}\\right) - \\left((t + 2)(t + 1) - \\dfrac{(t+1)^2}{2}\\right) $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\left(3t + 6 - \\dfrac{9}{2}\\right) - \\left((t + 1)((t+2)- \\dfrac{(t+1)}{2} )\\right) $$ \n",
"\n",
"$$ y(t) = (3t + \\dfrac{3}{2}) - (t + 1)(\\dfrac{t}{2} + \\dfrac{3}{2}) $$ \n",
"\n",
"$$ y(t) = 3t + \\dfrac{3}{2} - \\dfrac{t^2}{2} - \\dfrac{4t}{2} - \\dfrac{3}{2} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = t - \\dfrac{t^2}{2} $$ \n",
"\n",
"or\n",
"\n",
"$$ y(t) = t (1 - \\dfrac{t}{2}) $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, this can be evaluated by subtracting the smaller triangle area, $A_t$, from the bigger triangle, $A_T$:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ A = A_T - A_t$$\n",
"\n",
"$$ A = \\dfrac{1}{2} - \\dfrac{1}{2} bh $$\n",
"\n",
"$$ A = \\dfrac{1}{2} - \\dfrac{1}{2} (t+2-3)(t+2-3) $$\n",
"\n",
"$$ A = \\dfrac{1}{2} - \\dfrac{1}{2}(t-1)^2 $$\n",
"\n",
"$$ A = t - \\dfrac{t^2}{2} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case V: No overlap, at $ t > 2$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{2}^{\\infty} x(\\tau)h(t - \\tau) \\, d\\tau = 0 $$"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"g5IkSZK0Cf3/1HDa+34aJt0AAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xafec55ec>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"h_half = (-t + 4)*(step(t,3) - step(t,4))\n",
"fig = plt.figure(figsize=(12,2.5))\n",
"ax1 = fig.add_axes([0, 0, 1, 1]) # [left, bottom, width, height]\n",
"plt.plot(t,h_half,'r-',linewidth=3, label=\"$h$ at $t=2$\");\n",
"plt.title('Impulse response, $h(-(\\u03c4 - t))$ at t = -0.5, with the input signal, $x(t)$')\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"$x(t)$\");\n",
"plt.xlabel('T');\n",
"ax1.fill_between(t,0,h_half,where=x>=h_half,color='black')\n",
"legend = plt.legend(loc='center') \n",
"ax1.annotate('No Overlap', xy=(3, 0.4), xytext=(2.2, 0.4),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Final Answer"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Therefore, the convolution result is:\n",
"\n",
"\n",
"\n",
"$$ y(t) = \\begin{cases} \n",
"0 & \\mbox{if } -\\infty < t < -1 \\\\ \n",
"\\frac{1}{2}(t+1)^2 & \\mbox{if } -1 < t < 0 \\\\ \n",
"\\frac{1}{2} & \\mbox{if } \\, 0 < t < 1 \\\\ \n",
"t - \\frac{t^2}{2} & \\mbox{if } \\, 1 < t < 2 \\\\\n",
" 0 & \\mbox{if } \\, 2 < t < \\infty \\\\ \n",
"\\end{cases} $$"
]
},
{
"cell_type": "code",
"execution_count": 203,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"ms8AAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf8df16c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"\n",
"# input\n",
"x = step(t,1) - step(t,3)\n",
"\n",
"# impulse response\n",
"h = (t + 2)*(step(t,-2) - step(t,-1))\n",
"\n",
"# result\n",
"result = np.zeros(len(t))\n",
"result = 0.5*(t+1)**2 * (step(t,-1)-step(t,0)) + 0.5* (step(t,0)-step(t,1)) + t * (1 - 0.5*t) * (step(t,1)-step(t,2))\n",
"\n",
"fig = plt.figure(figsize=(14,4))\n",
"\n",
"plt.plot(t,x,'g-',linewidth=5, label='Input signal, $x(t)$');\n",
"plt.plot(t,h,'r-',linewidth=3, label='Impulse response, $h(t)$');\n",
"plt.plot(t,result,'b-',linewidth=3, label='Output signal, $y(t)$');\n",
"plt.xlabel('t')\n",
"plt.grid()\n",
"legend = plt.legend(loc='upper left');"
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"V2wWlPnEPg+/l5k/iojfAM6LiMubKwMT10H8NR77v2w/yMyMmHVR6mLHfoRuF6GfrvnE8B/Amsy8\n",
"OSKeBvwzg9uL+qLG4z5f1R/7iPh14GPAa5uriVttMvS4T8d/0fqcH6HfObLP+RGWXY7sc34Ec2TN\n",
"enHcu8yRSxq0ZeaT53o+Il7K4H7NJ86yyXwWJp2IcbHP8zV+1Px/fUR8kkEZfSofih3EX+Wxb750\n",
"eq/MvC4i7g38ZJbXKHbsR+hsEfoCxsaemT9vtc+JiL+OiF0y84YpxbgUtR73ean92EfEdsDHgX/I\n",
"zH8esUmvj/9S9Dk/Qr9zZJ/zIyy7HNnn/AjmyGr14bh3nSMnOXvkgcDhwMGZecssm81nYdLSRt4v\n",
"GxF3iYidm/ZOwFOAWWfnKWi2+31rPfZnAy9p2i9hcOVkhgqPfZ8X2B0be0TsFhHRtA9gsFRINR+K\n",
"Y9R63Oel5mPfxHUG8K3MPHWWzXp9/CdlGeVH6HeO7Ft+hP7lyD7nRzBHVqv24z6RHDnXLCVL+Qdc\n",
"CXwfuLj599dN/+7AZ1vbPY3BjCobgaMmFc8CY382g3tMfwlcB5wzHDtwPwazCF0CfKOW2Ocbf8XH\n",
"fhfgC8AVwL8Aq/tw7EcdS+AQ4JDWNqc1z1/KHDOu1RY78BfNcb4E+D/Ao0vH3Ir9TOCHwK3N7/yf\n",
"9OW4zyf+yo/9Y4E7mtg2f84/rU/Hv+Cx621+bOLqbY7sc35s4updjuxzfpxP/JV/Tvc2R/Y5Pzbx\n",
"dZ4jXVxbkiRJkio2rdkjJUmSJEmL4KBNkiRJkirmoE2SJEmSKuagTZIkSZIq5qBNkiRJkirmoE2S\n",
"JEmSKuagTZqAiLhbRLyydBySJNXGHCktnIM2aTLuDryqdBCSJFXIHCktkIM2aTKOB34rIi6OiBNK\n",
"ByNJUkXMkdICRWaWjkFadiLiN4HPZOaDS8ciSVJNzJHSwllpkyYjSgcgSVKlzJHSAjlokyRJkqSK\n",
"OWiTJuPnwM6lg5AkqULmSGmBHLRJE5CZ/wn8W0R83S9ZS5K0hTlSWjgnIpEkSZKkillpkyRJkqSK\n",
"OWiTJEmSpIo5aJMkSZKkijlokyRJkqSKOWiTJEmSpIo5aJMkSZKkijlokyRJkqSK/X+cN/s3SOTG\n",
"ZQAAAABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaf87a24c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x = step(t,0) - step(t,1)\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"fig = plt.figure(figsize=(15,3))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"plt.plot(t,x,'g-',linewidth=5);\n",
"plt.title('Input signal, $x(t)$')\n",
"plt.xlabel('t')\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"plt.plot(t,h,'r-',linewidth=3);\n",
"plt.title('Impulse response, $h(t)$')\n",
"plt.xlabel('t');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Drill Problem 2: Compute the convolution, $(h \\ast x)(t)$, of the signals represented in the figure above:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = (h \\ast x)(t) = \\int_{-\\infty}^{\\infty} h(\\tau)x(t - \\tau) \\, d\\tau $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: In this exercise, the signal is time-reversed."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 1: The impulse response $h(\\tau)$ is flipped or time-reversed (that is, reflected about the origin) to obtain $h(-\\tau)$ and then shifted by to form $h(t - \\tau) = h[-(\\tau - t)]$, which is a function of $\\tau$ with parameter $t$."
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"SZIkAP4/masSIuj+mawAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb01256ac>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x = step(t,-1) - step(t,0)\n",
"\n",
"fig = plt.figure(figsize=(12,3))\n",
"ax1 = fig.add_axes([0, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,x,'g-',linewidth=5);\n",
"plt.title('Time-reversed input signal, $x(t-\\u03c4)$')\n",
"plt.xlabel('T');\n",
"ax1.annotate('$t$', xy=(0, 0), xytext=(0.1, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );\n",
"ax1.annotate('$t-1$', xy=(-1, 0), xytext=(-1.2, 0.1),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: This rectangular pulse begins at $\\tau = t-1$ and ends at $\\tau = t$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 2-3 The signal $x(\\tau)$ and $h(t - \\tau)$ are multiplied together for all values of $\\tau$ with $t$ fixed at some value. Then, the product $x(\\tau)h(t - \\tau)$ is integrated over all $\\tau$ to produce a single output value $y(t)$. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"WobxrndNYu7cJYnbLX+8Sy+9hje+8SAOPnga8+ev5+ijh/Xl8b7yzdfX/fOag7YGuJIrOZETufCD\n",
"z/lvnvjPJTMnzp66x19e2bB56sSR4xavWv7aVi1v2LTtuFGX2xXrF510cHv5dmf917rOqW94a3v7\n",
"syvWF9cB+K9/Wz9x8R1Xhvs99vxmTpozbY+/vLJh886TRrUvWf56cZ25E3790CNfDA7v2g/R8/u3\n",
"b61eN2nHA8YVt28r/t7pE3dsmffaj5c9/fnDduTSS6/BHWbN+gTz52+YudWXR+1x7yuvb546cWRx\n",
"nfWmdF4AAAtTSURBVPZnV6z/788yYvFvLwxfz+I6p5xy7Kz/Wte50zb7DWtZvqLDJ+7YUlyna/vF\n",
"1zNaZ+akOZ8oxm/LV3R0TprYOmzJ8td/8hmGLfrtBd3335VX/uKsJcfuM2byG98Uj79z0sTWWq9n\n",
"8XV8T9tPJu/x6v0AfPBouGElMH7blzno9LHlr+fYxatWmHvn6mnjJ3WLv8rr2f7SmvUjX+1c/f3P\n",
"rt+uR/wVXs9xi1ct/8E77uHpI/bs8X6v+XredddSFi68v3h8xeOv+HoW3/fvfvdOSe+HxNezuL8m\n",
"zzl+j3tfWZ/4fih/f1566TVnrThx/zGT3/im4vss8f2Q8HoW99fqXd4wuT0e/9Sp03j22cVJr2fX\n",
"OtPGT7rcrlj/zKcO6XE8l7+exXXO/9f1Oyz67QU9PieSXs9xi1etuHSbXz3wyBeDw8s/J2q+nrFj\n",
"hblzn505ec4uNV/P2Od8cfs1X8/oc3fmtl/9WPHzp/3ZFeuLnxOJx9fdd6/410ffNXZy+7Qx8Vg2\n",
"T504stbr2f7Smg2HvPKrTW/fcuPWxe+yO0eOXH/oP/7jiC3LliV+XrW9tGYDOFu2GTu8K/4ar2f7\n",
"S2vWu9HykxNeG774pgt7fM4nvZ5dx9eRb5xU/jlf8/Us+16Jf55XfD1j3yun/NfaLTuPf2tbzdcz\n",
"dnzt8uCqzuJxW1yna/vx92fZ8dU5aWJr8X1d6/WMH1+2fEXH3JnesvimC5ew005TefbZxUmvZ4/j\n",
"6+RgZK3XM/H4Kp6/VHg9x1Y6vmbMGF3z9Uw4vmq+nlde+Yuk46vq6xl97iYdX91ez7LzjX/bPOvI\n",
"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\n",
"ByF6EQiO/3pFAAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xaff2328c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x_0 = step(t,-1) - step(t,0)\n",
"x__5 = step(t,-1.5) - step(t,-0.5)\n",
"x_1 = step(t,-2) - step(t,-1)\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"fig = plt.figure(figsize=(12,3))\n",
"ax1 = fig.add_axes([1, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,x_1,'cd-.',linewidth=5, label=\"x at $t=-1$\");\n",
"plt.plot(t,x__5,'m--',linewidth=5, label=\"x at $t=-0.5$\");\n",
"plt.plot(t,x_0,'g-',linewidth=3, label=\"x at $t=0$\");\n",
"plt.title('Time-reversed input signal, $x(t-\\tau)$ with the Impulse response, $h(t)$')\n",
"plt.plot(t,h,'r-',linewidth=3, label=\"h(t)\");\n",
"plt.xlabel('T');\n",
"\n",
"legend = plt.legend(loc='upper right');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case I: NO Overlap, $y(t) = 0$ at $-\\infty \\to t_1$, where $t_1 = 0$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ (h \\ast x)(t) = \\int_{-\\infty}^{0} h(\\tau)x(t - \\tau) \\, d\\tau = 0 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case II: Leading-edge overlap, at $t_1 \\to t_2$ or at $ 0 < t < 1 $"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{a}^{b} x(\\tau)h(t - \\tau) \\, d\\tau $$"
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"q+dORYcAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb03abb4c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x = step(t,-0.5) - step(t,0.5)\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"fig = plt.figure(figsize=(12,3))\n",
"ax1 = fig.add_axes([1, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"x at $t=0.5$\");\n",
"plt.title('Time-reversed input signal, $x(t-T)$ with the Impulse response, $h(t)$')\n",
"plt.plot(t,h,'r-',linewidth=3, label=\"h\");\n",
"plt.xlabel('T');\n",
"\n",
"ax1.annotate('$t$', xy=(0.5, 0), xytext=(0.6, 0.15),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );\n",
"\n",
"ax1.fill_between(t,0,h,where=x>=h,color='black')\n",
"legend = plt.legend(loc='upper right');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The overlap starts at $\\tau = 0$ and ends at $\\tau = t$. Thus,"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{0}^{t} h(\\tau)x(t - \\tau) \\, d\\tau = 0 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the above interval, $x(t -\\tau) = 1$ and $h(\\tau) = -\\tau + 1 $."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\int_{0}^{t} (-\\tau + 1) (1) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\left. \\dfrac{-\\tau^2}{2} + \\tau \\right |_{0}^{t} $$\n",
"\n",
"$$ y(t) = \\left( \\dfrac{-t^2}{2} + t \\right) - 0 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = t - \\dfrac{t^2}{2} $$ or $$ y(t) = t ( 1 - \\dfrac{t}{2}) $$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case III: Full overlap, at $t = 1$ "
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"kgD4/00pFNgGpBy/AAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb052a86c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x = step(t,0) - step(t,1)\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"fig = plt.figure(figsize=(12,3))\n",
"ax1 = fig.add_axes([1, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"x at $t=0.5$\");\n",
"plt.title('Time-reversed input signal, $x(t-T)$ with the Impulse response, $h(t)$')\n",
"plt.plot(t,h,'r-',linewidth=3, label=\"h\");\n",
"plt.xlabel('T');\n",
"\n",
"ax1.annotate('$t$', xy=(1, 0), xytext=(1.1, 0.15),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );\n",
"\n",
"ax1.annotate('$t-1$', xy=(0, 0), xytext=(-0.2, 0.15),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );\n",
"\n",
"ax1.fill_between(t,0,h,where=x>=h,color='black')\n",
"legend = plt.legend(loc='upper right');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = (h \\ast x)(t) = \\int_{t-1}^{t} h(\\tau)x(t - \\tau) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\int_{t-1}^{t} (-\\tau + 1) (1) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\left. \\dfrac{-\\tau^2}{2} + \\tau \\right |_{t-1}^{t} $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\left( \\dfrac{-t^2}{2} + t \\right) - \\left( \\dfrac{-(t-1)^2}{2} + (t-1) \\right) $$\n",
"\n",
"$$ y(t) = \\dfrac{-t^2}{2} + t - (t-1)(\\dfrac{-(t-1)}{2} + 1) $$\n",
"\n",
"$$ y(t) = \\dfrac{-t^2}{2} + t - (t-1)(\\dfrac{-t}{2} + \\dfrac{1}{2} + 1) $$\n",
"\n",
"$$ y(t) = \\dfrac{-t^2}{2} + t - ( \\dfrac{-t^2}{2} + \\dfrac{4t}{2} - \\dfrac{3}{2} ) $$\n",
"\n",
"$$ y(t) = \\dfrac{3}{2} - t $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"at $t = 1$, $$ y(t) = (h \\ast x)(t) = \\int_{0}^{1} h(\\tau)x(t - \\tau) \\, d\\tau = \\dfrac{3}{2} - 1 = \\dfrac{1}{2}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case IV: Trailing edge overlap, at $1 < t < 2$ "
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"AACAJOn/A6zrrVY7Kg8DAAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xafec372c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x = step(t,0.5) - step(t,1.5)\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"fig = plt.figure(figsize=(12,3))\n",
"ax1 = fig.add_axes([1, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,x,'g-',linewidth=5, label=\"x at $t=1.5$\");\n",
"plt.title('Time-reversed input signal, $x(t-T)$ with the Impulse response, $h(t)$')\n",
"plt.plot(t,h,'r-',linewidth=3, label=\"h\");\n",
"plt.xlabel('T');\n",
"\n",
"ax1.annotate('$t-1$', xy=(0.5, 0), xytext=(0.3, 0.15),\n",
" arrowprops=dict(facecolor='yellow', shrink=0.05),\n",
" );\n",
"\n",
"ax1.fill_between(t,0,h,where=x>=h,color='black')\n",
"legend = plt.legend(loc='upper right');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = (h \\ast x)(t) = \\int_{t-1}^{1} h(\\tau)x(t - \\tau) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\int_{t-1}^{1} (-\\tau + 1) (1) \\, d\\tau $$\n",
"\n",
"$$ y(t) = \\left. \\dfrac{-\\tau^2}{2} + \\tau \\right |_{t-1}^{1} $$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = \\left( \\dfrac{-1^2}{2} +1 \\right) - \\left( \\dfrac{-(t - 1)^2}{2} + (t - 1) \\right) $$\n",
"\n",
"$$ y(t) = \\dfrac{1}{2} - (t - 1)(\\dfrac{-(t -1)}{2} + 1)$$\n",
"\n",
"$$ y(t) = \\dfrac{1}{2} - (t - 1)(\\dfrac{-t}{2} + \\dfrac{1}{2} + 1)$$\n",
"\n",
"$$ y(t) = \\dfrac{1}{2} - ( \\dfrac{-t^2}{2} + \\dfrac{4t}{2} - \\dfrac{3}{2} ) $$\n",
"\n",
"$$ y(t) = \\dfrac{t^2}{2} - 2t + 2 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case V: No overlap, at $ t > 2$ "
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb057760c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-2.0, 2.0, 0.01)\n",
"x = step(t,1) - step(t,2)\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"fig = plt.figure(figsize=(12,3))\n",
"ax1 = fig.add_axes([1, 0, 1, 1]) # [left, bottom, width, height]\n",
"\n",
"plt.plot(t,x,'g-',linewidth=3, label=\"x at $t=2$\");\n",
"plt.title('Time-reversed input signal, $x(t-T)$ with the Impulse response, $h(t)$')\n",
"plt.plot(t,h,'r-',linewidth=3, label=\"h\");\n",
"plt.xlabel('T');\n",
"legend = plt.legend(loc='upper right');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ y(t) = (h \\ast x)(t) = \\int_{2}^{\\infty} h(\\tau)x(t - \\tau) \\, d\\tau = 0 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Final Answer"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Therefore, the convolution result is:\n",
"\n",
"\n",
"\n",
"$$ y(t) = \\begin{cases} \n",
"0 & \\mbox{if } -\\infty < t < 0 \\\\ \n",
"t ( 1 - \\frac{t}{2}) & \\mbox{if } 0 < t < 1 \\\\ \n",
"\\frac{1}{2} & \\mbox{if } \\, t = 1 \\\\ \n",
"\\frac{t^2}{2} - 2t + 2 & \\mbox{if } \\, 1 < t < 2 \\\\\n",
" 0 & \\mbox{if } \\, 2 < t < \\infty \\\\ \n",
"\\end{cases} $$"
]
},
{
"cell_type": "code",
"execution_count": 211,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"n/pWl1EO3wQAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0xb052734c>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = np.arange(-4.0, 4.0, 0.01)\n",
"\n",
"# input\n",
"x = step(t,0) - step(t,1)\n",
"\n",
"# impulse response\n",
"h = (-t + 1)*(step(t,0) - step(t,1))\n",
"\n",
"# result\n",
"result = np.zeros(len(t))\n",
"result = t * (1 - 0.5*t) * (step(t,0) - step(t,1)) + (0.5*t*t - 2*t + 2)*(step(t,1) - step(t,2))\n",
"\n",
"fig = plt.figure(figsize=(16,4))\n",
"\n",
"plt.plot(t,x,'g-',linewidth=5, label='Input signal, $x(t)$');\n",
"plt.plot(t,h,'r-',linewidth=3, label='Impulse response, $h(t)$');\n",
"plt.plot(t,result,'b-',linewidth=3, label='Output signal, $y(t)$');\n",
"plt.xlabel('t')\n",
"plt.grid()\n",
"legend = plt.legend(loc='upper left');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By: Melvin Cabatuan melvincabatuan@gmail.com\n",
"\n",
"This ipython notebook is licensed under the CC-BY-NC-SA license: http://creativecommons.org/licenses/by-nc-sa/4.0/\n",
"\n",
"![http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"References:\n",
" \n",
" [1] Weisstein, Eric W. \"Convolution.\" From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/Convolution.html \n",
" [2] Notes from Prof. Alan Oppenheim. http://ocw.mit.edu/resources/res-6-007-signals-and-systems-spring-2011/"
]
}
],
"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.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment