<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="m10085">

  <name>Continuous-Time Convolution</name>

  <metadata>
  <md:version>2.26</md:version>
  <md:created>2001/06/12 19:00:00 GMT-5</md:created>
  <md:revised>2006/07/19 16:59:21.474 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="mselik">
      <md:firstname>Melissa</md:firstname>
      
      <md:surname>Selik</md:surname>
      <md:email>mselik@alumni.rice.edu</md:email>
    </md:author>
      <md:author id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="mselik">
      <md:firstname>Melissa</md:firstname>
      
      <md:surname>Selik</md:surname>
      <md:email>mselik@alumni.rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="rars">
      <md:firstname>Ricardo</md:firstname>
      <md:othername>Anthony</md:othername>
      <md:surname>Radaelli-Sanchez</md:surname>
      <md:email>ricky@alumni.rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="mariyah">
      <md:firstname>Mariyah</md:firstname>
      
      <md:surname>Poonawala</md:surname>
      <md:email>mariyah@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="prash">
      <md:firstname>Prashant</md:firstname>
      
      <md:surname>Singh</md:surname>
      <md:email>prash@ece.rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="brentmh">
      <md:firstname>Brent</md:firstname>
      <md:othername>Michael</md:othername>
      <md:surname>Hendricks</md:surname>
      <md:email>brentmh@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="mhutch">
      <md:firstname>Matthew</md:firstname>
      
      <md:surname>Hutchinson</md:surname>
      <md:email>mhutch@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>continuous time</md:keyword>
    <md:keyword>convolution</md:keyword>
    <md:keyword>linear time invariant</md:keyword>
    <md:keyword>LTI</md:keyword>
    <md:keyword>signals</md:keyword>
    <md:keyword>systems</md:keyword>
  </md:keywordlist>

  <md:abstract>Defines convolution and derives the Convolution Integral.</md:abstract>
</metadata>

  <content>
    <section id="sect1">
      <name>Motivation</name>
      <para id="para1">
	Convolution helps to determine the effect a system has on an
	input signal.  It can be shown that a <cnxn strength="5" document="m10084">linear, time-invariant system</cnxn> is
	completely characterized by its impulse response.  At first
	glance, this may appear to be of little use, since impulse
	functions are not well defined in real applications.  However,
	the <cnxn strength="8" target="sifting" document="m10059">sifting property of impulses</cnxn> tells us
	that a signal can be decomposed into an infinite sum
	(integral) of scaled and shifted impulses.  By knowing how a
	system affects a single impulse, and by understanding the way
	a signal is comprised of scaled and summed impulses, it seems
	reasonable that it should be possible to scale and sum the
	impulse responses of a system in order to determine what
	output signal will results from a particular input.  This is
	precisely what convolution does - <emphasis> convolution 
        determines the system's output from knowledge of the input 
	and the system's impulse response</emphasis>.
      </para>

      <para id="para2">
	In the rest of this module, we will examine exactly how
	convolution is defined from the reasoning above.  This will
	result in the convolution integral (see the next section) and
	its <cnxn document="m10088" strength="8">properties</cnxn>.
	These concepts are very important in Electrical
	Engineering and will make any engineer's life a lot easier if
	the time is spent now to truly understand what is going on.
      </para>

      <para id="para2a">
	In order to fully understand convolution,
	you may find it useful to look at the <cnxn strength="5" document="m10087">discrete-time convolution</cnxn> as well.  It
	will also be helpful to experiment with the <link src="http://www.jhu.edu/~signals">applets</link> available on
	the internet.  These resources will offer different approaches
	to this crucial concept.
      </para>
    </section>


    <section id="con_int">
      <name>Convolution Integral</name>
      <para id="p_cint">
	As mentioned above, the convolution integral provides an easy
	mathematical way to express the output of an LTI system based
	on an arbitrary signal,
	<m:math>
	  <m:apply>
	    <m:ci type="fn">x</m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	</m:math>, and the system's impulse response,
	<m:math>
	  <m:apply>
	    <m:ci type="fn">h</m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	</m:math>.  The
	<term>convolution integral</term> is expressed as

	<equation id="eq_cint">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">y</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:apply>
		<m:int/>
		<m:bvar>
		  <m:ci>τ</m:ci>
		</m:bvar>
		<m:lowlimit>
		  <m:apply>
		    <m:minus/>
		    <m:infinity/>
		  </m:apply>
		</m:lowlimit>
		<m:uplimit>
		  <m:infinity/>
		</m:uplimit>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:ci type="fn">x</m:ci>
		    <m:ci>τ</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">h</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:ci>t</m:ci>
		      <m:ci>τ</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	
	Convolution is such an important tool that it is represented
	by the symbol <m:math>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
	  </m:apply>
	</m:math>, and can be written as

	<equation id="eq_convshort">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">y</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
		<m:apply>
		  <m:ci type="fn">x</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">h</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	
	By making a simple change of variables into the convolution
	integral,
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:ci>τ</m:ci>
	    <m:apply>
	      <m:minus/>
	      <m:ci>t</m:ci>
	      <m:ci>τ</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>,
	we can easily show that convolution is
	<term>commutative</term>:
	
	<equation id="eq_convshort2">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
		<m:apply>
		  <m:ci type="fn">x</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">h</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
		<m:apply>
		  <m:ci type="fn">h</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">x</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	
	For more information on the characteristics of the convolution
	integral, read about the <cnxn document="m10088" strength="8">Properties of Convolution</cnxn>. 
      </para>

      <para id="sec2_ex">
	We now present two distinct approaches for deriving the
	convolution integral.  These derivations, along with a basic
	example, will help to build intuition about convolution.
      </para>
    </section>


    <section id="sect2">
      <name>Derivation I: The Short Approach</name>
      <para id="para3">
	The derivation used here closely follows the one discussed in
	the <cnxn strength="5" target="sect1">Motivation</cnxn>
	section above.  To begin this, it is necessary to state the
	assumptions we will be making.  In this instance, the only
	constraints on our system are that it be linear and
	time-invariant.

	<list id="list1" type="enumerated">
	  <name>Brief Overview of Derivation Steps:</name>
	  <item>An impulse input leads to an impulse response output.</item>
	  <item>
	    A shifted impulse input leads to a shifted impulse response
	    output.  This is due to the time-invariance of the system.
	  </item>
	  <item>
	    We now scale the impulse input to get a scaled impulse
	    output.  This is using the scalar multiplication property of
	    linearity.
	  </item>
	  <item>
	    We can now "sum up" an infinite number of these scaled
	    impulses to get a sum of an infinite number of scaled
	    impulse responses.  This is using the additivity attribute
	    of linearity.
	  </item>
	  <item>
	    Now we recognize that this infinite sum is nothing more than
	    an integral, so we convert both sides into integrals.
	  </item>
	  <item>
	    Recognizing that the input is the function
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="function">f</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math>, we also recognize that the output is exactly the
	    convolution integral.
	  </item>
	</list>
      </para>

      <figure id="fig1">
	<media type="image/png" src="ctconvir1.png"/>
	<caption>
	  We begin with a system defined by its impulse response,
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="function">h</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>.
	</caption>
      </figure>

      <figure id="fig2">
	<media type="image/png" src="ctconvir2.png"/>
	<caption>
	  We then consider a shifted version of the input impulse.
	  Due to the time invariance of the system, we obtain a
	  shifted version of the output impulse response.
	</caption>
      </figure>
      
      <figure id="fig3">
	<media type="image/png" src="ctconvir4.png"/>
	<caption>
	  Now we use the scaling part of linearity by scaling the
	  system by a value,
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="function">f</m:ci>
	      <m:ci>τ</m:ci>
	    </m:apply>
	  </m:math>,
	  that is constant with respect to the system variable,
	  <m:math><m:ci>t</m:ci></m:math>.
	</caption>
      </figure>

      <figure id="fig4">
	<media type="image/png" src="ctconvir3.png"/>
	<caption>
	  We can now use the additivity aspect of linearity to add an
	  infinite number of these, one for each possible
	  <m:math><m:ci>τ</m:ci></m:math>.  Since an infinite sum
	  is exactly an integral, we end up with the integration known
	  as the Convolution Integral.  Using the sifting property, we
	  recognize the left-hand side simply as the input 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">f</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>.  
	</caption>
      </figure>         
    </section>

    <section id="sect3">
      <name>Derivation II: The Long Approach</name>
      <para id="para4">
	This derivation is really not too different from the one
	above.  It is, however, a little more rigorous and a little
	longer.  Hopefully, if you think you "kind of" get the
	derivation above, this will help you gain a more complete
	understanding of convolution.
      </para>
      <para id="para5">
	The first step in this derivation is to define a particular
	realization of the <cnxn document="m10059" strength="7">unit
	  impulse function</cnxn>.  For this, we will use

	
	<m:math display="inline">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci>
		<m:msub>
		  <m:mi>δ</m:mi>
		  <m:mi>Δ</m:mi>
		</m:msub>
	      </m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	    <m:piecewise>
	      <m:piece>
		<m:apply>
		  <m:divide/>
		  <m:cn>1</m:cn>
		  <m:ci>Δ</m:ci>
		</m:apply>

		<m:apply>
		  <m:lt/>
		  <m:apply>
		    <m:minus/>
		    <m:apply>
		      <m:divide/>
		      <m:ci>Δ</m:ci>
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
		  <m:ci>t</m:ci>
		  <m:apply>
		    <m:divide/>
		    <m:ci>Δ</m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>

	      </m:piece>
	      <m:otherwise>
		<m:cn>0</m:cn>
	      </m:otherwise>
	    </m:piecewise>
	  </m:apply>
	</m:math>	
      </para>


      <figure id="fig5">
	<media type="image/png" src="unitimpulsee.png"/>
	<caption>
	  The realization of the unit impulse function that we will use for
	  this derivation.
	</caption> 
      </figure>

      <para id="para6_derII">
	After defining our realization of the unit impulse response,
	we can derive our convolution integral from the following
	steps found in the table below.  Note that the left column
	represents the input and the right column is the system's
	output given that input.
      </para>
 
      <table frame="all" id="tab_derivII">
	<name>Derivation II of Convolution Integral</name>
	<tgroup cols="3" align="left" colsep="1" rowsep="1">
	  <thead valign="top">
	    <row>
	      <entry align="center">Input</entry>
	      <entry/>
	      <entry align="center">Output</entry>
	    </row>
	  </thead>
	  <tbody valign="top">
	    <row>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:ci>δ</m:ci>
			  <m:ci>Δ</m:ci>
			</m:msub>
		      </m:ci>
		      <m:ci>t</m:ci>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>→ h →</m:ci></m:math>
	      </entry>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:ci type="fn">h</m:ci>
		      <m:ci>t</m:ci>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>

	    <row>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:ci>δ</m:ci>
			  <m:ci>Δ</m:ci>
			</m:msub>
		      </m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>t</m:ci>
			<m:apply>
			  <m:times/>
			  <m:ci>n</m:ci>
			  <m:ci>Δ</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>→ h →</m:ci></m:math>
	      </entry>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:ci type="fn">h</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>t</m:ci>
			<m:apply>
			  <m:times/>
			  <m:ci>n</m:ci>
			  <m:ci>Δ</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>

	    <row>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:ci type="fn">f</m:ci>
			<m:apply>
			  <m:times/>
			  <m:ci>n</m:ci>
			  <m:ci>Δ</m:ci>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:ci type="fn">
			  <m:msub>
			    <m:ci>δ</m:ci>
			    <m:ci>Δ</m:ci>
			  </m:msub>
			</m:ci>
			<m:apply>
			  <m:minus/>
			  <m:ci>t</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:ci>n</m:ci>
			    <m:ci>Δ</m:ci>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:ci>Δ</m:ci>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>→ h →</m:ci></m:math>
	      </entry>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:ci type="fn">f</m:ci>
			<m:apply>
			  <m:times/>
			  <m:ci>n</m:ci>
			  <m:ci>Δ</m:ci>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:ci type="fn">h</m:ci>
			<m:apply>
			  <m:minus/>
			  <m:ci>t</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:ci>n</m:ci>
			    <m:ci>Δ</m:ci>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:ci>Δ</m:ci>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>


	    <row>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:sum/>
		      <m:domainofapplication>
			<m:ci>n</m:ci>
		      </m:domainofapplication>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:ci type="fn">f</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:ci>n</m:ci>
			    <m:ci>Δ</m:ci>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:ci type="fn">
			    <m:msub>
			      <m:ci>δ</m:ci>
			      <m:ci>Δ</m:ci>
			    </m:msub>
			  </m:ci>
			  <m:apply>
			    <m:minus/>
			    <m:ci>t</m:ci>
			    <m:apply>
			      <m:times/>
			      <m:ci>n</m:ci>
			      <m:ci>Δ</m:ci>
			    </m:apply>
			  </m:apply>
			</m:apply>
			<m:ci>Δ</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>→ h →</m:ci></m:math>
	      </entry>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:limit/>
		    <m:bvar>
		      <m:ci>Δ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>0</m:cn>
		    </m:lowlimit>
		    <m:apply>
		      <m:sum/>
		      <m:domainofapplication>
			<m:ci>n</m:ci>
		      </m:domainofapplication>		    
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:ci type="fn">f</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:ci>n</m:ci>
			    <m:ci>Δ</m:ci>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:ci type="fn">h</m:ci>
			  <m:apply>
			    <m:minus/>
			    <m:ci>t</m:ci>
			    <m:apply>
			      <m:times/>
			      <m:ci>n</m:ci>
			      <m:ci>Δ</m:ci>
			    </m:apply>
			  </m:apply>
			</m:apply>
			<m:ci>Δ</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>

	     <row>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:int/>
		    <m:bvar>
		      <m:ci>τ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:apply>
			<m:minus/>
			<m:infinity/>
		      </m:apply>
		    </m:lowlimit>
		    <m:uplimit>
		      <m:infinity/>
		    </m:uplimit>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:ci type="fn">f</m:ci>
			<m:ci>τ</m:ci>
		      </m:apply>
		      <m:apply>
			<m:ci type="fn">δ</m:ci>
			<m:apply>
			  <m:minus/>
			  <m:ci>t</m:ci>
			  <m:ci>τ</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>→ h →</m:ci></m:math>
	      </entry>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:int/>
		    <m:bvar>
		      <m:ci>τ</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:apply>
			<m:minus/>
			<m:infinity/>
		      </m:apply>
		    </m:lowlimit>
		    <m:uplimit>
		      <m:infinity/>
		    </m:uplimit>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:ci type="fn">f</m:ci>
			<m:ci>τ</m:ci>
		      </m:apply>
		      <m:apply>
			<m:ci type="fn">h</m:ci>
			<m:apply>
			  <m:minus/>
			  <m:ci>t</m:ci>
			  <m:ci>τ</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>

	    <row>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:ci type="fn">f</m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>→ h →</m:ci></m:math>
	      </entry>
	      <entry>
		<m:math>
		  <m:apply>
		    <m:eq/>
		    <m:apply>
		      <m:ci type="fn">y</m:ci>
		      <m:ci>t</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:int/>
		      <m:bvar>
			<m:ci>τ</m:ci>
		      </m:bvar>
		      <m:lowlimit>
			<m:apply>
			  <m:minus/>
			  <m:infinity/>
			</m:apply>
		      </m:lowlimit>
		      <m:uplimit>
			<m:infinity/>
		      </m:uplimit>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:ci type="fn">f</m:ci>
			  <m:ci>τ</m:ci>
			</m:apply>
			<m:apply>
			  <m:ci type="fn">h</m:ci>
			  <m:apply>
			    <m:minus/>
			    <m:ci>t</m:ci>
			    <m:ci>τ</m:ci>
			  </m:apply>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>

      <!--
      NOT SURE WHERE OR WHAT THIS FIGURE IS (COMMENTED OUT 6/3/2002)

    <figure id="fig6">
    <media type="image/png" src="ctconvo6.png"/>
    </figure>
      -->    
      
   
    </section>

    <section id="sect4">
      <name>Implementation of Convolution</name>
      <para id="para7">
	Taking a closer look at the convolution integral, we find that
	we are multiplying the input signal by the time-reversed
	impulse response and integrating.  This will give us the value
	of the output at one given value of <m:math display="inline"><m:ci>t</m:ci></m:math>.  If we then shift
	the time-reversed impulse response by a small amount, we get
	the output for another value of <m:math display="inline"><m:ci>t</m:ci></m:math>.  Repeating this for
	every possible value of <m:math display="inline"><m:ci>t</m:ci></m:math>, yields the total
	output function.  While we would never actually do this
	computation by hand in this fashion, it does provide us with
	some insight into what is actually happening.  We find that we
	are essentially reversing the impulse response function and
	sliding it across the input function, integrating as we go.
	This method, referred to as the <term>graphical method</term>,
	provides us with a much simpler way to solve for the output
	for simple (contrived) signals, while improving our intuition
	for the more complex cases where we rely on computers.  In
	fact <link src="http://www.ti.com">Texas Instruments</link>
	develops <link src="http://dspvillage.ti.com/docs/toolssoftwarehome.jhtml">Digital
	Signal Processors</link> which have special instruction sets
	for computations such as convolution.
      </para>

      <example id="convolution_demo"><para id="convolution_demo_1">
	  This demonstration illustrates the graphical method for
	  convolution. See <cnxn document="m11550">here</cnxn> for
	  instructions on how to use the demo.
	</para>
	<media type="application/x-labviewrpvi80" src="ConvolutionTime.llb">
		<param name="lvfppviname" value="Convolution Time Domain.vi"/>
		<param name="width" value="650"/>
		<param name="height" value="565"/>
	</media>
</example>
    </section>
    
    <section id="example">
      <name>Basic Example</name>
      <para id="p_eg">
	Let us look at a basic continuous-time convolution example to
	help express some of the ideas mentioned above through a short
	example.  We will convolve together two unit pulses,
	<m:math><m:apply><m:ci type="fn">x</m:ci><m:ci>t</m:ci>
	  </m:apply>
	</m:math> and 
	<m:math><m:apply><m:ci type="fn">h</m:ci><m:ci>t</m:ci>
	  </m:apply>
	</m:math>.
      </para>
      
      <figure orient="horizontal" id="eg_fig1">
	<subfigure id="subfig1">
	  <media type="image/png" src="xte.png"/>
	</subfigure>
	<subfigure id="subfig2">
	  <media type="image/png" src="hte.png"/>
	</subfigure>
	<caption>
	  Here are the two basic signals that we will convolve
	  together.
	</caption>
      </figure>
      
      <section id="subs1">
      	<name>Reflect and Shift</name>
      	<para id="p2_eg">
      	  Now we will take one of the functions and reflect it around
      	  the y-axis.  Then we must shift the function, such that the
      	  origin, the point of the function that was originally on the
      	  origin, is labeled as point <m:math><m:ci>τ</m:ci> </m:math>.  This
	  step is shown in the figure below,
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">h</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>t</m:ci>
		<m:ci>τ</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>.  Since convolution is commutative it will never
	  matter which function is reflected and shifted; however, as
	  the functions become more complicated reflecting and shifting
	  the "right one" will often make the problem much easier.
	</para>
	
	<figure id="eg_fig2">
	  <media type="image/png" src="refshiftpulsee.png"/>
	  <caption>
	    The reflected and shifted unit pulse.
	  </caption> 
	</figure>
      </section>
      
      <section id="subs2">
      	<name>Regions of Integration</name>
      	<para id="p3_eg">
      	  Next, we want to look at the functions and divide the span
      	  of the functions into different limits of integration.
      	  These different regions can be understood by thinking about
      	  how we slide <m:math>
	    <m:apply>
      	      <m:ci type="fn">h</m:ci>
      	      <m:apply><m:minus/><m:ci>t</m:ci>
		<m:ci>τ</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> over the other function.  These limits come from
	  the different regions of overlap that occur between the two
	  functions.  If the function were more complex, then we would
	  need to have more limits so that that overlapping parts of
	  both function could be expressed in a single, linear
	  integral.  For this problem we will have the following four
	  regions.  Compare these limits of integration to the
	  sketches of <m:math>
	  <m:apply>
	      <m:ci type="fn">h</m:ci>
	      <m:apply><m:minus/><m:ci>t</m:ci>
		<m:ci>τ</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> and <m:math>
	    <m:apply>
	      <m:ci type="fn">x</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math> to see if you can understand why we have the four
	  regions.  Note that the <m:math><m:ci>t</m:ci>
	  </m:math> in the limits of integration refers to the
	  right-hand side of <m:math>
	    <m:apply>
	      <m:ci type="fn">h</m:ci>
	      <m:apply><m:minus/><m:ci>t</m:ci>
		<m:ci>τ</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>'s function, labeled as <m:math><m:ci>t</m:ci>
	  </m:math> between zero and one on the plot.

	  <list id="limits" type="enumerated">
	    <name>Four Limits of Integration</name>

	    <item>
	      <m:math>
		<m:apply>
		  <m:lt/>
		  <m:ci>t</m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:math>
	    </item>

	    <item>
	      <m:math>
		<m:apply>
		  <m:lt/>
		  <m:apply>
		    <m:leq/>
		    <m:cn>0</m:cn>
		    <m:ci>t</m:ci>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:math>
	    </item>

	    <item>
	      <m:math>
		<m:apply>
		  <m:lt/>
		  <m:apply>
		    <m:leq/>
		    <m:cn>1</m:cn>
		    <m:ci>t</m:ci>
		  </m:apply>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:math>
	    </item>

	    <item>
	      <m:math>
		<m:apply>
		  <m:geq/>
		  <m:ci>t</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:math>
	    </item>
	  </list>

	</para>
      </section>

      <section id="subs3">
	<name>Using the Convolution Integral</name>
	<para id="p_subs3">
	  
	  Finally we are ready for a little math.  Using the convolution
	  integral, let us integrate the product of 
	  <m:math>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:ci type="fn">x</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">h</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>t</m:ci>
		  <m:ci>τ</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>.  For our first and fourth region this will be
	  trivial as it will always be <m:math><m:cn>0</m:cn></m:math>.
	  The second region, 
	  <m:math>
	    <m:apply>
	      <m:lt/>
	      <m:apply>
		<m:leq/>
		<m:cn>0</m:cn>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math>, will require the following math:
	  
	  <equation id="eq_eg1">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">y</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:int/>
		  <m:bvar>
		    <m:ci>τ</m:ci>
		  </m:bvar>
		  <m:lowlimit>
		    <m:cn>0</m:cn>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:ci>t</m:ci>
		  </m:uplimit>
		  <m:apply>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:apply>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math>
	  </equation>
	  
	  The third region, 
	  <m:math>
	    <m:apply>
	      <m:lt/>
	      <m:apply>
		<m:leq/>
		<m:cn>1</m:cn>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:math>, is solved in much the same manner.  Take note of
	  the changes in our integration though.  As we move 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">h</m:ci>
	      <m:apply><m:minus/><m:ci>t</m:ci>
		<m:ci>τ</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> across our other function, the left-hand edge of the
	  function, 
	  <m:math> 
	    <m:apply>
	      <m:minus/><m:ci>t</m:ci>
	      <m:ci>1</m:ci>
	    </m:apply>
	  </m:math>, becomes our lowlimit for the integral.  This is
	  shown through our convolution integral as 

	  <equation id="eq2_eg1">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">y</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:int/>
		  <m:bvar>
		    <m:ci>τ</m:ci>
		  </m:bvar>
		  <m:lowlimit>
		    <m:apply>
		      <m:minus/>
		      <m:ci>t</m:ci>
		      <m:ci>1</m:ci>
		    </m:apply>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:cn>1</m:cn>
		  </m:uplimit>
		  <m:apply>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:minus/>
		  <m:cn>1</m:cn>
		  <m:apply>
		    <m:minus/>
		    <m:ci>t</m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:minus/>
		  <m:cn>2</m:cn>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  The above formulas show the method for calculating
	  convolution; however, do not let the simplicity of this
	  example confuse you when you work on other problems.  The
	  method will be the same, you will just have to deal with
	  more math in more complicated integrals.

	</para>
      </section>

      <section id="subs4">
	<name>Convolution Results</name>
	<para id="p_subs4">
	  
	  Thus, we have the following results for our four regions:
	  
	  <equation id="eq3_eg">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">y</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:piecewise>
		    <m:piece>
		      <m:cn>0</m:cn>
		      <m:apply>
			<m:lt/>
			<m:ci>t</m:ci> 
			<m:cn>0</m:cn>
		      </m:apply>
		    </m:piece>
		    <m:piece>
		      <m:ci>t</m:ci>
		      <m:apply>
			<m:lt/>
			<m:apply>
			  <m:leq/>
			  <m:cn>0</m:cn>
			  <m:ci>t</m:ci>
			</m:apply>
			<m:cn>1</m:cn>
		      </m:apply>
		    </m:piece>
		    <m:piece>
		      <m:apply>
			<m:minus/>
			<m:cn>2</m:cn>
			<m:ci>t</m:ci>
		      </m:apply>
		      <m:apply>
			<m:lt/>
			<m:apply>
			  <m:leq/>
			  <m:cn>1</m:cn>
			  <m:ci>t</m:ci>
			</m:apply>
			<m:cn>2</m:cn>
		      </m:apply>
		    </m:piece>
		    <m:piece>
		      <m:cn>0</m:cn>
		      <m:apply>
			<m:geq/>
			<m:ci>t</m:ci> 
			<m:cn>2</m:cn>
		      </m:apply>
		    </m:piece>
		  </m:piecewise>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  Now that we have found the resulting function for each of the
	  four regions, we can combine them together and graph the
	  convolution of 
	  <m:math>
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
	      <m:apply>
		<m:ci type="fn">x</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">h</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>.
	</para>

	<figure id="eg_fig3"><media type="image/png" src="systemrespe.png"/>
	<caption>
	    Shows the system's response to the input, 
	    <m:math><m:apply>
				<m:ci type="fn">x</m:ci>
				<m:ci>t</m:ci>
			</m:apply>
		</m:math>.
	  </caption>
</figure><para id="element-638"/>      
	



      </section>
    </section>

  </content>
</document>
