<?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:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="None">
  <name>Impulse-Invariant Design</name>
  <metadata>
  <md:version>1.1</md:version>
  <md:created>2005/02/13 20:12:13 US/Central</md:created>
  <md:revised>2005/04/24 16:10:48 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="dljones">
      <md:firstname>Douglas</md:firstname>
      <md:othername>L.</md:othername>
      <md:surname>Jones</md:surname>
      <md:email>dl-jones@uiuc.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="dljones">
      <md:firstname>Douglas</md:firstname>
      <md:othername>L.</md:othername>
      <md:surname>Jones</md:surname>
      <md:email>dl-jones@uiuc.edu</md:email>
    </md:maintainer>
    <md:maintainer id="jsilv">
      <md:firstname>Jeffrey</md:firstname>
      
      <md:surname>Silverman</md:surname>
      <md:email>jsilv@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="kclarks">
      <md:firstname>Kyle</md:firstname>
      
      <md:surname>Clarkson</md:surname>
      <md:email>kclarks@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>alias</md:keyword>
    <md:keyword>pre-classical</md:keyword>
  </md:keywordlist>

  <md:abstract/>
</metadata>

  <content>
    <para id="p1"><term>Pre-classical</term>, adhoc-but-easy method of
    converting an analog prototype filter to a digital IIR
    filter. Does not preserve any optimality.</para>

    <para id="p2">Impulse invariance means that digital filter impulse
    response exactly equals samples of the analog prototype impulse
    response:
      <m:math display="block">
	<m:apply>
	  <m:forall/>
	  <m:bvar>
	    <m:ci>n</m:ci>
	  </m:bvar>
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn">h</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn"><m:msub>
		  <m:mi>h</m:mi>
		  <m:mi>a</m:mi>
		</m:msub></m:ci>
	      <m:apply>
		<m:times/>
		<m:ci>n</m:ci>
		<m:ci>T</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math> How is this done?</para>

    <para id="p3">The impulse response of a causal, stable analog filter
    is simply a sum of decaying exponentials:
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:ci type="fn"><m:msub>
		<m:mi>H</m:mi>
		<m:mi>a</m:mi>
	      </m:msub></m:ci>
	    <m:ci>s</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:divide/>
	    <m:apply>
	      <m:plus/>
	      <m:ci><m:msub>
		  <m:mi>b</m:mi>
		  <m:mn>0</m:mn>
		</m:msub></m:ci>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>b</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:ci>s</m:ci>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>b</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:power/>
		  <m:ci>s</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>
	      <m:ci>...</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>b</m:mi>
		    <m:mi>p</m:mi>
		  </m:msub></m:ci>
		<m:apply>
		  <m:power/>
		  <m:ci>s</m:ci>
		  <m:ci>p</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:plus/>
	      <m:cn>1</m:cn>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>a</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:ci>s</m:ci>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>a</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:power/>
		  <m:ci>s</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>
	      <m:ci>...</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>a</m:mi>
		    <m:mi>p</m:mi>
		  </m:msub></m:ci>
		<m:apply>
		  <m:power/>
		  <m:ci>s</m:ci>
		  <m:ci>p</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>

	  <m:apply>
	    <m:plus/>
	    <m:apply>
	      <m:divide/>
	      <m:ci><m:msub>
		  <m:mi>A</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>s</m:ci>
		<m:ci><m:msub>
		    <m:mi>s</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:divide/>
	      <m:ci><m:msub>
		  <m:mi>A</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>s</m:ci>
		<m:ci><m:msub>
		    <m:mi>s</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	    <m:ci>...</m:ci>
	    <m:apply>
	      <m:divide/>
	      <m:ci><m:msub>
		  <m:mi>A</m:mi>
		  <m:mi>p</m:mi>
		</m:msub></m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>s</m:ci>
		<m:ci><m:msub>
		    <m:mi>s</m:mi>
		    <m:mi>p</m:mi>
		  </m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math> which implies
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:ci type="fn"><m:msub>
		<m:mi>h</m:mi>
		<m:mi>a</m:mi>
	      </m:msub></m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>A</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:exp/>
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>s</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>A</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:exp/>
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>s</m:mi>
			<m:mn>2</m:mn>
		      </m:msub></m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:ci>...</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>A</m:mi>
		    <m:mi>p</m:mi>
		  </m:msub></m:ci>
		<m:apply>
		  <m:exp/>
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>s</m:mi>
			<m:mi>p</m:mi>
		      </m:msub></m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn">u</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      For impulse invariance, we desire
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:ci type="fn">h</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:ci type="fn"><m:msub>
		<m:mi>h</m:mi>
		<m:mi>a</m:mi>
	      </m:msub></m:ci>
	    <m:apply>
	      <m:times/>
	      <m:ci>n</m:ci>
	      <m:ci>T</m:ci>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>A</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:exp/>
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>s</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		    <m:ci>n</m:ci>
		    <m:ci>T</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>A</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:exp/>
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>s</m:mi>
			<m:mn>2</m:mn>
		      </m:msub></m:ci>
		    <m:ci>n</m:ci>
		    <m:ci>T</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:ci>...</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>A</m:mi>
		    <m:mi>p</m:mi>
		  </m:msub></m:ci>
		<m:apply>
		  <m:exp/>
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>s</m:mi>
			<m:mi>p</m:mi>
		      </m:msub></m:ci>
		    <m:ci>n</m:ci>
		    <m:ci>T</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn">u</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      Since 
      <m:math display="block">
	<m:apply>
	  <m:equivalent/>
	  <m:apply>
	    <m:times/>
	    <m:ci><m:msub>
		<m:mi>A</m:mi>
		<m:mi>k</m:mi>
	      </m:msub></m:ci>
	    <m:apply>
	      <m:exp/>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:times/>
		  <m:ci><m:msub>
		      <m:mi>s</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub></m:ci>
		  <m:ci>T</m:ci>
		</m:apply>
		<m:ci>n</m:ci>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn">u</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:apply>

	  <m:apply>
	    <m:divide/>
	    <m:apply>
	      <m:times/>
	      <m:ci><m:msub>
		  <m:mi>A</m:mi>
		  <m:mi>k</m:mi>
		</m:msub></m:ci>
	      <m:ci>z</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:minus/>
	      <m:ci>z</m:ci>
	      <m:apply>
		<m:exp/>
		<m:apply>
		  <m:times/>
		  <m:ci><m:msub>
		      <m:mi>s</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub></m:ci>
		  <m:ci>T</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      where
      <m:math>
	<m:apply>
	  <m:gt/>
	  <m:apply>
	    <m:abs/>
	    <m:ci>z</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:abs/>
	    <m:apply>
	      <m:exp/>
	      <m:apply>
		<m:times/>
		<m:ci><m:msub>
		    <m:mi>s</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub></m:ci>
		<m:ci>T</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>, and
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:ci type="fn">H</m:ci>
	    <m:ci>z</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:sum/>
	    <m:bvar>
	      <m:ci>k</m:ci>
	    </m:bvar>
	    <m:lowlimit>
	      <m:cn>1</m:cn>
	    </m:lowlimit>
	    <m:uplimit>
	      <m:ci>p</m:ci>
	    </m:uplimit>
	    <m:apply>
	      <m:times/>
	      <m:ci><m:msub>
		  <m:mi>A</m:mi>
		  <m:mi>k</m:mi>
		</m:msub></m:ci>
	      <m:apply>
		<m:divide/>
		<m:ci>z</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>z</m:ci>
		  <m:apply>
		    <m:exp/>
		    <m:apply>
		      <m:times/>
		      <m:ci><m:msub>
			  <m:mi>s</m:mi>
			  <m:mi>k</m:mi>
			</m:msub></m:ci>
		      <m:ci>T</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      where
      <m:math>
	<m:apply>
	  <m:gt/>
	  <m:apply>
	    <m:abs/>
	    <m:ci>z</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:max/>
	    <m:bvar>
	      <m:ci>k</m:ci>
	    </m:bvar>
	    <m:apply>
	      <m:abs/>
	      <m:apply>
		<m:exp/>
		<m:apply>
		  <m:times/>
		  <m:ci><m:msub>
		      <m:mi>s</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub></m:ci>
		  <m:ci>T</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>.
    </para>

    <para id="element-180">This technique is used occasionally in digital simulations of analog filters.</para><exercise id="ex1"><problem><para id="prob1">What is the main
    problem/drawback with this design technique?</para>
      </problem>
      <solution><para id="soln1">Since it samples the non-bandlimited
      impulse response of the analog prototype filter, the frequency
      response <term>aliases</term>. This distorts the
      original analog frequency and destroys any optimal frequency
      properties in the resulting digital filter.
	</para>
      </solution>
    </exercise>


  </content>
  
</document>
