<?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="new13">
  <name>Adaptive IIR filters</name>
  <metadata>
  <md:version>**new**</md:version>
  <md:created>2003/07/10 13:16:15.488 GMT-5</md:created>
  <md:revised>2003/08/01 10:56:36.071 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="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>
    <para id="delete_me">
      Adaptive IIR filters are attractive for the same reasons that
    IIR filters are attractive: many fewer coefficients may be needed
    to achieve the desired performance in some applications.
    However, it is more difficult to develop stable IIR
    algorithms, they can converge <emphasis>very</emphasis> slowly, and
    they are susceptible to local minima. Nonetheless, adaptive IIR
    algorithms are used in some applications (such as low frequency
    noise cancellation) in which the need for IIR-type responses is
    great. In some cases, the exact algorithm used by a company
    is a tightly guarded trade secret.
    </para>
    <para id="para1">
      Most adaptive IIR algorithms minimize the
      <term>prediction</term> error, to linearize the estimation
      problem, as in deterministic or block linear prediction.
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msub>
	      <m:mi>y</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	  <m:apply>
	    <m:plus/>
	    <m:apply>
	      <m:sum/>
	      <m:bvar>
		<m:ci>n</m:ci>
	      </m:bvar>
	      <m:lowlimit>
		<m:cn>1</m:cn>
	      </m:lowlimit>
	      <m:uplimit>
		<m:ci>L</m:ci>
	      </m:uplimit>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msubsup>
		    <m:mi>v</m:mi>
		    <m:mi>n</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>y</m:mi>
		    <m:mrow>
		      <m:mi>k</m:mi>
		      <m:mo>-</m:mo>
		      <m:mi>n</m:mi>
		    </m:mrow>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:sum/>
	      <m:bvar>
		<m:ci>n</m:ci>
	      </m:bvar>
	      <m:lowlimit>
		<m:cn>0</m:cn>
	      </m:lowlimit>
	      <m:uplimit>
		<m:ci>L</m:ci>
	      </m:uplimit>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msubsup>
		    <m:mi>w</m:mi>
		    <m:mi>n</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>
		  <m:msub>
		    <m:mi>x</m:mi>
		    <m:mrow>
		      <m:mi>k</m:mi>
		      <m:mo>-</m:mo>
		      <m:mi>n</m:mi>
		    </m:mrow>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      Thus the coefficient vector is
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msub>
	      <m:mi>W</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	  <m:vector>
	    <m:ci>
	      <m:msubsup>
		<m:mi>v</m:mi>
		<m:mn>1</m:mn>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	    <m:ci>
	      <m:msubsup>
		<m:mi>v</m:mi>
		<m:mn>2</m:mn>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	    <m:ci>⋮</m:ci>
	    <m:ci>
	      <m:msubsup>
		<m:mi>v</m:mi>
		<m:mi>L</m:mi>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	    <m:ci>
	      <m:msubsup>
		<m:mi>w</m:mi>
		<m:mn>0</m:mn>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	    <m:ci>
	      <m:msubsup>
		<m:mi>w</m:mi>
		<m:mn>1</m:mn>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	    <m:ci>⋮</m:ci>
	    <m:ci>
	      <m:msubsup>
		<m:mi>w</m:mi>
		<m:mi>L</m:mi>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	  </m:vector>
	</m:apply>
      </m:math>
      and the "signal" vector is
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msub>
	      <m:mi>U</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	  <m:vector>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mn>1</m:mn>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mn>2</m:mn>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	    <m:ci>⋮</m:ci>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mi>L</m:mi>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	    <m:ci>
	      <m:msub>
		<m:mi>x</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci>
	      <m:msub>
		<m:mi>x</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mn>1</m:mn>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	    <m:ci>⋮</m:ci>
	    <m:ci>
	      <m:msub>
		<m:mi>x</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mi>L</m:mi>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	  </m:vector>
	</m:apply>
      </m:math>
      The error is
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msub>
	      <m:mi>ε</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	  <m:apply>
	    <m:minus/>
	    <m:ci>
	      <m:msub>
		<m:mi>d</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	  <m:apply>
	    <m:minus/>
	    <m:ci>
	      <m:msub>
		<m:mi>d</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:transpose/>
		<m:ci>
		  <m:msub>
		    <m:mi>W</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:ci>
		<m:msub>
		  <m:mi>U</m:mi>
		  <m:mi>k</m:mi>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      An LMS algorithm can be derived using the approximation
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#expectedvalue"/>
	    <m:apply>
	      <m:power/>
	      <m:ci>
		<m:msub>
		  <m:mi>ε</m:mi>
		  <m:mi>k</m:mi>
		</m:msub>
	      </m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:power/>
	    <m:ci>
	      <m:msub>
		<m:mi>ε</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:cn>2</m:cn>
	  </m:apply>
	</m:apply>
      </m:math>
      or
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#estimate"/>
	    <m:ci>
	      <m:msub>
		<m:mi>∇</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msub>
		  <m:mi>W</m:mi>
		  <m:mi>k</m:mi>
		</m:msub>
	      </m:ci>
	    </m:bvar>
	    <m:apply>
	      <m:power/>
	      <m:ci>
		<m:msub>
		  <m:mi>ε</m:mi>
		  <m:mi>k</m:mi>
		</m:msub>
	      </m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:cn>2</m:cn>
	    <m:ci>
	      <m:msub>
		<m:mi>ε</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:partialdiff/>
	      <m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>W</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:bvar>
	      <m:ci>
		<m:msub>
		  <m:mi>ε</m:mi>
		  <m:mi>k</m:mi>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:cn>2</m:cn>
	    <m:ci>
	      <m:msub>
		<m:mi>ε</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:vector>
	      <m:apply>
		<m:partialdiff/>
		<m:bvar>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>v</m:mi>
		      <m:mn>1</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  </m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>ε</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:ci>⋮</m:ci>
	      <m:apply>
		<m:partialdiff/>
		<m:bvar>
		  <m:ci>
		    <m:msub>
		      <m:mi>ε</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub>
		  </m:ci>
		</m:bvar>
		<m:ci>
		  <m:msubsup>
		    <m:mi>w</m:mi>
		    <m:mn>1</m:mn>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
	      </m:apply>
	      <m:ci>⋮</m:ci>
	    </m:vector>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:cn>-2</m:cn>
	    <m:ci>
	      <m:msub>
		<m:mi>ε</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:vector>
	      <m:apply>
		<m:partialdiff/>
		<m:bvar>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>v</m:mi>
		      <m:mn>1</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		</m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>y</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:ci>⋮</m:ci>
	      <m:apply>
		<m:partialdiff/>
		<m:bvar>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>v</m:mi>
		      <m:mi>L</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		</m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>y</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:apply>
		<m:partialdiff/>
		<m:bvar>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>w</m:mi>
		      <m:mn>0</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		</m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>y</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:ci>⋮</m:ci>
	      <m:apply>
		<m:partialdiff/>
		<m:bvar>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>w</m:mi>
		      <m:mi>L</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		</m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>y</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:vector>
	  </m:apply>
	</m:apply>
      </m:math>
      Now
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msubsup>
		  <m:mi>v</m:mi>
		  <m:mi>i</m:mi>
		  <m:mi>k</m:mi>
		</m:msubsup>
	      </m:ci>
	    </m:bvar>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msubsup>
		  <m:mi>v</m:mi>
		  <m:mi>i</m:mi>
		  <m:mi>k</m:mi>
		</m:msubsup>
	      </m:ci>
	    </m:bvar>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>n</m:ci>
		</m:bvar>
		<m:uplimit>
		  <m:ci>L</m:ci>
		</m:uplimit>
		<m:lowlimit>
		  <m:cn>1</m:cn>
		</m:lowlimit>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>v</m:mi>
		      <m:mi>n</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>y</m:mi>
		      <m:mrow>
			<m:mi>k</m:mi>
			<m:mo>-</m:mo>
			<m:mi>n</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>n</m:ci>
		</m:bvar>
		<m:uplimit>
		  <m:ci>L</m:ci>
		</m:uplimit>
		<m:lowlimit>
		  <m:cn>0</m:cn>
		</m:lowlimit>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>w</m:mi>
		      <m:mi>n</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>x</m:mi>
		      <m:mrow>
			<m:mi>k</m:mi>
			<m:mo>-</m:mo>
			<m:mi>n</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:plus/>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mi>n</m:mi>
		</m:mrow>
	      </m:msub>
	    </m:ci>  
	    <m:apply>
	      <m:sum/>
	      <m:bvar>
		<m:ci>n</m:ci>
	      </m:bvar>
	      <m:uplimit>
		<m:ci>L</m:ci>
	      </m:uplimit>
	      <m:lowlimit>
		<m:cn>1</m:cn>
	      </m:lowlimit>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msubsup>
		    <m:mi>v</m:mi>
		    <m:mi>n</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:apply>
		  <m:partialdiff/>
		  <m:bvar>
		    <m:ci>
		      <m:msubsup>
			<m:mi>v</m:mi>
			<m:mi>i</m:mi>
			<m:mi>k</m:mi>
		      </m:msubsup>
		    </m:ci>
		  </m:bvar>
		  <m:ci>
		    <m:msub>
		      <m:mi>y</m:mi>
		      <m:mrow>
			<m:mi>k</m:mi>
			<m:mo>-</m:mo>
			<m:mi>n</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	    <m:cn>0</m:cn>
	  </m:apply>
	</m:apply>
      </m:math>
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msubsup>
		  <m:mi>w</m:mi>
		  <m:mi>i</m:mi>
		  <m:mi>k</m:mi>
		</m:msubsup>
	      </m:ci>
	    </m:bvar>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msubsup>
		  <m:mi>w</m:mi>
		  <m:mi>i</m:mi>
		  <m:mi>k</m:mi>
		</m:msubsup>
	      </m:ci>
	    </m:bvar>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>n</m:ci>
		</m:bvar>
		<m:uplimit>
		  <m:ci>L</m:ci>
		</m:uplimit>
		<m:lowlimit>
		  <m:cn>1</m:cn>
		</m:lowlimit>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>v</m:mi>
		      <m:mi>n</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>y</m:mi>
		      <m:mrow>
			<m:mi>k</m:mi>
			<m:mo>-</m:mo>
			<m:mi>n</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:sum/>
		<m:bvar>
		  <m:ci>n</m:ci>
		</m:bvar>
		<m:uplimit>
		  <m:ci>L</m:ci>
		</m:uplimit>
		<m:lowlimit>
		  <m:cn>0</m:cn>
		</m:lowlimit>
		<m:apply>
		  <m:times/>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>w</m:mi>
		      <m:mi>n</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>
		    <m:msub>
		      <m:mi>x</m:mi>
		      <m:mrow>
			<m:mi>k</m:mi>
			<m:mo>-</m:mo>
			<m:mi>n</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:plus/>
	    <m:apply>
	      <m:sum/>
	      <m:bvar>
		<m:ci>n</m:ci>
	      </m:bvar>
	      <m:uplimit>
		<m:ci>L</m:ci>
	      </m:uplimit>
	      <m:lowlimit>
		<m:cn>1</m:cn>
	      </m:lowlimit>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msubsup>
		    <m:mi>v</m:mi>
		    <m:mi>n</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:apply>
		  <m:partialdiff/>
		  <m:bvar>
		    <m:ci>
		      <m:msubsup>
			<m:mi>w</m:mi>
			<m:mi>i</m:mi>
			<m:mi>k</m:mi>
		      </m:msubsup>
		    </m:ci>
		  </m:bvar>
		  <m:ci>
		    <m:msub>
		      <m:mi>y</m:mi>
		      <m:mrow>
			<m:mi>k</m:mi>
			<m:mo>-</m:mo>
			<m:mi>n</m:mi>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	    <m:ci>
	      <m:msub>
		<m:mi>x</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mi>n</m:mi>
		</m:mrow>
	      </m:msub>
	    </m:ci>  
	  </m:apply>
	</m:apply>
      </m:math>
      Note that these are difference equations in
      <m:math>
	<m:apply>
	  <m:partialdiff/>
	  <m:bvar>
	    <m:ci>
	      <m:msubsup>
		<m:mi>v</m:mi>
		<m:mi>i</m:mi>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	  </m:bvar>
	  <m:ci>
	    <m:msub>
	      <m:mi>y</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	</m:apply>
      </m:math>,
      <m:math>
	<m:apply>
	  <m:partialdiff/>
	  <m:bvar>
	    <m:ci>
	      <m:msubsup>
		<m:mi>w</m:mi>
		<m:mi>i</m:mi>
		<m:mi>k</m:mi>
	      </m:msubsup>
	    </m:ci>
	  </m:bvar>
	  <m:ci>
	    <m:msub>
	      <m:mi>y</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	</m:apply>
      </m:math>: call them
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msubsup>
	      <m:mi>α</m:mi>
	      <m:mi>i</m:mi>
	      <m:mi>k</m:mi>
	    </m:msubsup>
	  </m:ci>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msubsup>
		  <m:mi>w</m:mi>
		  <m:mi>i</m:mi>
		  <m:mi>k</m:mi>
		</m:msubsup>
	      </m:ci>
	    </m:bvar>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	</m:apply>
      </m:math>,
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msubsup>
	      <m:mi>β</m:mi>
	      <m:mi>i</m:mi>
	      <m:mi>k</m:mi>
	    </m:msubsup>
	  </m:ci>
	  <m:apply>
	    <m:partialdiff/>
	    <m:bvar>
	      <m:ci>
		<m:msubsup>
		  <m:mi>v</m:mi>
		  <m:mi>i</m:mi>
		  <m:mi>k</m:mi>
		</m:msubsup>
	      </m:ci>
	    </m:bvar>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	</m:apply>
      </m:math>, then
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#estimate"/>
	    <m:ci>
	      <m:msub>
		<m:mi>∇</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	  <m:apply>
	    <m:transpose/>
	    <m:matrix>
	      <m:matrixrow>
		<m:ci>
		  <m:msubsup>
		    <m:mi>β</m:mi>
		    <m:mn>1</m:mn>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>
		  <m:msubsup>
		    <m:mi>β</m:mi>
		    <m:mn>2</m:mn>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>…</m:ci>
		<m:ci>
		  <m:msubsup>
		    <m:mi>β</m:mi>
		    <m:mi>L</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>
		  <m:msubsup>
		    <m:mi>α</m:mi>
		    <m:mn>0</m:mn>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>…</m:ci>
		<m:ci>
		  <m:msubsup>
		    <m:mi>α</m:mi>
		    <m:mi>L</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
	      </m:matrixrow>
	    </m:matrix>
	  </m:apply>
	</m:apply>
      </m:math>, and the IIR LMS algorithm becomes 
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msub>
	      <m:mi>y</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	  <m:apply>
	    <m:times/>
	    <m:apply>
	      <m:transpose/>
	      <m:ci>
		<m:msub>
		  <m:mi>W</m:mi>
		  <m:mi>k</m:mi>
		</m:msub>
	      </m:ci>
	    </m:apply>
	    <m:ci>
	      <m:msub>
		<m:mi>U</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	</m:apply>
      </m:math>
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msubsup>
	      <m:mi>α</m:mi>
	      <m:mi>i</m:mi>
	      <m:mi>k</m:mi>
	    </m:msubsup>
	  </m:ci>
	  <m:apply>
	    <m:plus/>
	    <m:ci>
	      <m:msub>
		<m:mi>x</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mi>i</m:mi>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:sum/>
	      <m:bvar>
		<m:ci>j</m:ci>
	      </m:bvar>
	      <m:uplimit>
		<m:ci>L</m:ci>
	      </m:uplimit>
	      <m:lowlimit>
		<m:cn>1</m:cn>
	      </m:lowlimit>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msubsup>
		    <m:mi>v</m:mi>
		    <m:mi>j</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>
		  <m:msubsup>
		    <m:mi>α</m:mi>
		    <m:mi>i</m:mi>
		    <m:mrow>
		      <m:mi>k</m:mi>
		      <m:mo>-</m:mo>
		      <m:mi>j</m:mi>
		    </m:mrow>
		  </m:msubsup>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msubsup>
	      <m:mi>β</m:mi>
	      <m:mi>i</m:mi>
	      <m:mi>k</m:mi>
	    </m:msubsup>
	  </m:ci>
	  <m:apply>
	    <m:plus/>
	    <m:ci>
	      <m:msub>
		<m:mi>y</m:mi>
		<m:mrow>
		  <m:mi>k</m:mi>
		  <m:mo>-</m:mo>
		  <m:mi>i</m:mi>
		</m:mrow>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:sum/>
	      <m:bvar>
		<m:ci>j</m:ci>
	      </m:bvar>
	      <m:uplimit>
		<m:ci>L</m:ci>
	      </m:uplimit>
	      <m:lowlimit>
		<m:cn>1</m:cn>
	      </m:lowlimit>
	      <m:apply>
		<m:times/>
		<m:ci>
		  <m:msubsup>
		    <m:mi>v</m:mi>
		    <m:mi>j</m:mi>
		    <m:mi>k</m:mi>
		  </m:msubsup>
		</m:ci>
		<m:ci>
		  <m:msubsup>
		    <m:mi>β</m:mi>
		    <m:mi>i</m:mi>
		    <m:mrow>
		      <m:mi>k</m:mi>
		      <m:mo>-</m:mo>
		      <m:mi>j</m:mi>
		    </m:mrow>
		  </m:msubsup>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#estimate"/>
	    <m:ci>
	      <m:msub>
		<m:mi>∇</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:cn>-2</m:cn>
	    <m:ci>
	      <m:msub>
		<m:mi>ε</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:transpose/>
	      <m:matrix>
		<m:matrixrow>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>β</m:mi>
		      <m:mn>1</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>β</m:mi>
		      <m:mn>2</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>…</m:ci>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>α</m:mi>
		      <m:mn>0</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>α</m:mi>
		      <m:mn>1</m:mn>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>  
		  <m:ci>…</m:ci>
		  <m:ci>
		    <m:msubsup>
		      <m:mi>α</m:mi>
		      <m:mi>L</m:mi>
		      <m:mi>k</m:mi>
		    </m:msubsup>
		  </m:ci>
		</m:matrixrow>
	      </m:matrix>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      and finally
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:ci>
	    <m:msub>
	      <m:mi>W</m:mi>
	      <m:mrow>
		<m:mi>k</m:mi>
		<m:mo>+</m:mo>
		<m:mn>1</m:mn>
	      </m:mrow>
	    </m:msub>
	  </m:ci>
	  <m:apply>
	    <m:minus/>
	    <m:ci>
	      <m:msub>
		<m:mi>W</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:times/>
	      <m:ci>U</m:ci>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#estimate"/>
		<m:ci>
		  <m:msub>
		    <m:mi>∇</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>
      where the <m:math><m:ci>μ</m:ci></m:math> may be
      <emphasis>different</emphasis> for the different IIR
      coefficients. Stability and convergence rate depends on these
      choices, of course. There are
      a number of variations on this algorithm.
    </para>
    
    <para id="para34">
      Due to the slow convergence and the difficulties in tweaking the
      algorithm parameters to ensure stability, IIR algorithms are
      used only if there is an overriding need for an IIR-type filter.
      
    </para>
    
  </content>
  
</document>
