<?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>Overview of IIR Filter Design</name>
  <metadata>
  <md:version>1.1</md:version>
  <md:created>2005/02/02 18:46:53 US/Central</md:created>
  <md:revised>2005/04/24 16:07:38 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:abstract/>
</metadata>

  <content>
    <section id="intro">
      <name>IIR Filter</name>
      <para id="p1">
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn">y</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:minus/>
		<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:apply>
		      <m:minus/>
		      <m:ci>M</m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </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:ci type="fn">y</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>n</m:ci>
			<m:ci>k</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>k</m:ci>
		</m:bvar>
		<m:lowlimit>
		  <m:cn>0</m:cn>
		</m:lowlimit>
		<m:uplimit>
		  <m:apply>
		    <m:minus/>
		    <m:ci>M</m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:uplimit>
		<m:apply>
		  <m:times/>
		  <m:ci><m:msub>
		      <m:mi>b</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub></m:ci>
		  <m:apply>
		    <m:ci type="fn">x</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:ci>n</m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>

	<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: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:apply>
		    <m:power/>
		    <m:ci>z</m:ci>
		    <m:cn>-1</m:cn>
		  </m:apply>
		</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>z</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>M</m:mi>
		    </m:msub></m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>z</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:ci>M</m:ci>
		    </m:apply>
		  </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:apply>
		    <m:power/>
		    <m:ci>z</m:ci>
		    <m:cn>-1</m:cn>
		  </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:power/>
		    <m:ci>z</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>M</m:mi>
		    </m:msub></m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>z</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:ci>M</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math></para>
    </section>

    <section id="prob">
      <name>IIR Filter Design Problem</name>
      <para id="p2">Choose
	<m:math>
	  <m:set>
	    <m:ci><m:msub>
		<m:mi>a</m:mi>
		<m:mi>i</m:mi>
	      </m:msub></m:ci>
	  </m:set>
	</m:math>, <m:math>
	  <m:set>
	    <m:ci><m:msub>
		<m:mi>b</m:mi>
		<m:mi>i</m:mi>
	      </m:msub></m:ci>
	  </m:set>
	</m:math> to <emphasis>best</emphasis> approximate some
	desired
	<m:math>
	  <m:apply>
	    <m:abs/>
	    <m:apply>
	      <m:ci type="fn"><m:msub>
		  <m:mi>H</m:mi>
		  <m:mi>d</m:mi>
		</m:msub></m:ci>
	      <m:ci>w</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math> or, (occasionally), 
	<m:math>
	  <m:apply>
	    <m:ci type="fn"><m:msub>
		<m:mi>H</m:mi>
		<m:mi>d</m:mi>
	      </m:msub></m:ci>
	    <m:ci>w</m:ci>
	  </m:apply>
	</m:math>.</para>
      <para id="p3">As before, different design techniques will be
      developed for different approximation criteria.</para>
    </section>

    <section id="outline">
      <name>Outline of IIR Filter Design Material</name>
      <para id="p4"><list id="list1" type="named">
	  <item><name>Bilinear Transform</name>
	    Maps <m:math>
	   <m:apply>
	       <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
       		<m:domainofapplication>
	        <m:infinity/>
       		</m:domainofapplication>
	       <m:ci>L</m:ci>
     </m:apply>
	</m:math> optimal (and other) <emphasis>analog</emphasis>
	    filter designs to <m:math>
	   <m:apply>
	       <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
       		<m:domainofapplication>
	        <m:infinity/>
       		</m:domainofapplication>
	       <m:ci>L</m:ci>
     </m:apply>
	</m:math> optimal digital IIR filter designs.</item>
	  <item><name>Prony's Method</name>
	    Quasi-<m:math>
	   <m:apply>
	       <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
       		<m:domainofapplication>
	        <m:cn>2</m:cn>
       		</m:domainofapplication>
	       <m:ci>L</m:ci>
     </m:apply>
	</m:math> optimal method for time-domain fitting of a
	    desired impulse response (<foreign>ad
	    hoc</foreign>).</item>
	  <item><name>Lp Optimal Design</name>
	    <m:math>
	   <m:apply>
	       <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
       		<m:domainofapplication>
	        <m:ci>p</m:ci>
       		</m:domainofapplication>
	       <m:ci>L</m:ci>
     </m:apply>
	</m:math> optimal filter design (<m:math><m:apply><m:lt/>
		<m:cn>1</m:cn>
		<m:ci>p</m:ci>
		<m:infinity/>
	      </m:apply>
	    </m:math>) using non-linear optimization techniques.
	  </item>
	</list></para>
    </section>

    <section id="comments">
      <name>Comments on IIR Filter Design Methods</name>
      <para id="last">The bilinear transform method is used to design
      "typical"
	<m:math>
	   <m:apply>
	       <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
       		<m:domainofapplication>
	        <m:infinity/>
       		</m:domainofapplication>
	       <m:ci>L</m:ci>
     </m:apply>
	</m:math> magnitude optimal filters. The <m:math>
	   <m:apply>
	       <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
       		<m:domainofapplication>
	        <m:ci>p</m:ci>
       		</m:domainofapplication>
	       <m:ci>L</m:ci>
     </m:apply>
	</m:math> optimization procedures are used to design filters
	for which classical analog prototype solutions don't
	exist. The program by Deczky (<cite>DSP Programs Book</cite>,
	IEEE Press) is widely used. Prony/Linear Prediction techniques
	are used often to obtain initial guesses, and are almost
	exclusively used in data modeling, system identification, and
	most applications involving the fitting of real data (for
	example, the impulse response of an unknown filter).</para>
    </section>

  </content>
  
</document>
