<?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="new12">
  <name>Beyond LMS: an overview of other adaptive filter algorithms</name>
  <metadata>
  <md:version>**new**</md:version>
  <md:created>2003/07/10 12:35:38.695 GMT-5</md:created>
  <md:revised>2003/08/05 15:06:10.398 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>
    <section id="a">
      <name>RLS algorithms</name>
      <para id="delete_me">
	FIR adaptive filter algorithms with faster convergence. Since
	the Wiener solution can be obtained on one step by computing
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>W</m:mi>
		<m:mi>opt</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:inverse/>
		<m:ci>R</m:ci>
	      </m:apply>
	      <m:ci>P</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>, most RLS algorithms attept to estimate
	<m:math>
	  <m:apply>
	    <m:inverse/>
	    <m:ci>R</m:ci>
	  </m:apply>
	</m:math> and <m:math><m:ci>P</m:ci></m:math> and compute
	<m:math>
	  <m:ci>
	    <m:msub>
	      <m:mi>W</m:mi>
	      <m:mi>opt</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math> from these.
      
      </para>   
      
      <para id="para2">
	There are a number of 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">O</m:ci>
	    <m:apply>
	      <m:power/>
	      <m:ci>N</m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:apply>
	</m:math> algorithms which are stable and converge quickly. A
	number of
	<m:math>
	  <m:apply>
	    <m:ci type="fn">O</m:ci>
	    <m:ci>N</m:ci>
	  </m:apply>
	</m:math> algorithms have been proposed, but these are all
	unstable except for the lattice filter method. This is
	described to some extent in the text. The adaptive lattice
	filter converges quickly and is stable, but reportedly has a
	very high noise floor.
      </para>
      <para id="para3">
	Many of these approaches can be thought of as attempting to
	"orthogonalize" <m:math><m:ci>R</m:ci></m:math>, or to rotate
	the data or filter coefficients to a domain where
	<m:math><m:ci>R</m:ci></m:math> is diagonal, then doing LMS in
	each dimension <emphasis>separately</emphasis>, so that a
	fast-converging step size can be chosen in all directions.
      </para>
    </section>
    <section id="b">
      <name>Frequency-domain methods</name>
      <para id="para4">
	Frequency-domain methods implicitly attempt to do this:
	
	<figure id="figure1">
	  <media type="image/png" src="fig1BeyondLMS.png"/>
        </figure>

	If 
	<m:math>
	  <m:apply>
	    <m:times/>
	    <m:ci>Q</m:ci>
	    <m:ci>R</m:ci>
	    <m:apply>
	      <m:inverse/>
	      <m:ci>Q</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math> is a diagonal matrix, this yields a fast algorithm. If
	<m:math><m:ci>Q</m:ci></m:math> is chosen as an FFT matrix,
	each channel becomes a different frequency bin. Since
	<m:math><m:ci>R</m:ci></m:math> is Toeplitz and not a
	circulant, the FFT matrix will not exactly diagonalize
	<m:math><m:ci>R</m:ci></m:math>, but in many cases it comes
	very close and frequency domain methods converge very
	quickly. However, for some <m:math><m:ci>R</m:ci></m:math>
	they perform no better than LMS. By using an FFT, the
	transformation <m:math><m:ci>Q</m:ci></m:math> becomes
	inexpensive
	<m:math>
	  <m:apply>
	    <m:ci type="fn">O</m:ci>
	    <m:apply>
	      <m:times/>
	      <m:ci>N</m:ci>
	      <m:apply>
		<m:log/>
		<m:ci>N</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>. If one only updates on a block-by-block basis (once
	per <m:math><m:ci>N</m:ci></m:math> samples), the frequency
	domain methods only cost
	<m:math>
	  <m:apply>
	    <m:ci type="fn">O</m:ci>
	    <m:apply>
	      <m:log/>
	      <m:ci>N</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math> computations per sample. which can be important for
	some applications with large
	<m:math><m:ci>N</m:ci></m:math>. (Say 16,000,000)
      </para>
    </section>
      
  </content>
  
</document>
