<?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="new7">
  <name>Kalman Filtering Application</name>
  <metadata>
  <md:version>1.4</md:version>
  <md:created>2003/06/25 10:11:20 GMT-5</md:created>
  <md:revised>2003/08/07 14:50:05.410 GMT-5</md:revised>
  <md:authorlist>
    <md:author id="nowak">
      <md:firstname>Rob</md:firstname>
      <md:othername>"The Kid"</md:othername>
      <md:surname>Nowak</md:surname>
      <md:email>nowak@rice.edu</md:email>
    </md:author>
    <md:author id="cscott">
      <md:firstname>Clayton</md:firstname>
      
      <md:surname>Scott</md:surname>
      <md:email>cscott@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="nowak">
      <md:firstname>Rob</md:firstname>
      <md:othername>"The Kid"</md:othername>
      <md:surname>Nowak</md:surname>
      <md:email>nowak@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="cscott">
      <md:firstname>Clayton</md:firstname>
      
      <md:surname>Scott</md:surname>
      <md:email>cscott@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="lizzardg">
      <md:firstname>Elizabeth</md:firstname>
      
      <md:surname>Gregory</md:surname>
      <md:email>lizzardg@rice.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:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>fading multipath channels</md:keyword>
    <md:keyword>fading</md:keyword>
    <md:keyword>slow-fading</md:keyword>
    <md:keyword>uncorrelated scattering</md:keyword>
  </md:keywordlist>

  <md:abstract/>
</metadata>

  <content>
    <section id="TVCE">
      <name>Time Varying Channel Estimation</name>

      <para id="para1">
	<figure id="fig1">
	  <name>Multipath Communications Channel</name>
	  <media type="image/png" src="mcc.png"/>
	</figure>
	    
	<cnxn target="fig1">This</cnxn> effect is the result of many
	  propagation paths, each of which delays and attenuates the
	  input signal.
      </para>
      
      <para id="para2">Additionally, the channel is time-varying due
	to movement of the source, receiver, and/or
	scattors. Therefore, the channel is acting like a linear time
	varying filter. Due to the time-varying nature of the channel,
	a sinusoidal input does not produce a pure sinusoid at the
	output <cnxn target="fig2"/>.

	<figure id="fig2">
	  <media type="image/png" src="timeVary.png"/>
	</figure>

	Instead, the output is a narrowband process. Assuming the
	channel is relatively slowly varying (compared to the
	frequency of the input) we can view the input sinusoids as
	being amplitdue modulated by the time-varying channel. This
	effect is referred to as <term>fading</term> and such channels
	are called <term>fading multipath channels</term>. If we
	sample the output of the channel, then a very good model is
	the low-pass tapped delay line model:

	<equation id="eqn1">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">y</m:ci>
		<m:ci>n</m:ci>
	      </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>p</m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:uplimit>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:ci type="fn">
		      <m:msub>
			<m:mi>h</m:mi>
			<m:mi>n</m:mi>
		      </m:msub>
		    </m:ci>
		    <m:ci>k</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">v</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:math>
	</equation>
	Where 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">y</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math> is the output, 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">
	      <m:msub>
		<m:mi>h</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci>k</m:ci>
	  </m:apply>
	</m:math> is the impulse response depending on time
	<m:math><m:ci>n</m:ci></m:math>, and
	<m:math>
	  <m:apply>
	    <m:ci type="fn">v</m:ci>
	    <m:apply>
	      <m:minus/>
	      <m:ci>n</m:ci>
	      <m:ci>k</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math> is the input. This is simply an FIR filter with
	time-varying coefficients. In practice we wouldn't observe
	this perfect output, but rather a noise-corrupted version of
	it:
	<equation id="eqn2">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">x</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:apply>
		<m:plus/>
		<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>p</m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </m:uplimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>h</m:mi>
			  <m:mi>n</m:mi>
			</m:msub>
		      </m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn">v</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:ci type="fn">w</m:ci>
		  <m:ci>n</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	Where 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">w</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math> is observation noise. The goal of channel estimation
	is to determine the linear time-varying filter
	<m:math>
	  <m:apply>
	    <m:ci type="fn">
	      <m:msub>
		<m:mi>h</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci>k</m:ci>
	  </m:apply>
	</m:math> based on the input
	<m:math>
	  <m:apply>
	    <m:ci type="fn">v</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math> and measured output
	<m:math>
	  <m:apply>
	    <m:ci type="fn">x</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math>. Is this possible?
      </para>

      <para id="para3">Assume
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn">v</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	    <m:cn>0</m:cn>
	  </m:apply>
	</m:math> for
	<m:math>
	  <m:apply>
	    <m:lt/>
	    <m:ci>n</m:ci>
	    <m:cn>0</m:cn>
	  </m:apply>
	</m:math>. Then
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn">x</m:ci>
	      <m:cn>0</m:cn>
	    </m:apply>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mn>0</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">v</m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mn>0</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">v</m:ci>
		  <m:cn>-1</m:cn>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">w</m:ci>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mn>0</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">v</m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">w</m:ci>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>

	<equation id="eqn3">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">x</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:ci type="fn">
		      <m:msub>
			<m:mi>h</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:cn>0</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">v</m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:ci type="fn">
		      <m:msub>
			<m:mi>h</m:mi>
			<m:mn>1</m:mn>
		      </m:msub>
		    </m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">v</m:ci>
		    <m:cn>0</m:cn>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">w</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn">x</m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">v</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">v</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">w</m:ci>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>

	<m:math display="block">
	  <m:ci>⋮</m:ci>
	</m:math>
	
	For each
	<m:math>
	  <m:apply>
	    <m:geq/>
	    <m:ci>n</m:ci>
	    <m:cn>1</m:cn>
	  </m:apply>
	</m:math> we have two new parameters we must estimate!
      </para>

      <para id="para4">Even in the absence of measurement noise we
	have more unknowns than equations and we can't determine the
	filter. What can we do?
      </para>

      <para id="para5">Well, suppose that the filter weights are not
	changing too rapidly from sample to sample. This is known as a
	<term>slow-fading</term> channel model. Probabilistically, we
	can view the slowly varying channel as a vector-valued
	Gauss-Markov process:

	<equation id="eqn4">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>h</m:mi>
		  <m:apply>
		    <m:plus/>
		    <m:mi>n</m:mi>
		    <m:mn>1</m:mn>
		  </m:apply>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:ci type="vector">A</m:ci>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:ci type="vector">
		  <m:msub>
		    <m:mi>u</m:mi>
		    <m:mi>n</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	Where
	<m:math display="inline">
	  <m:apply>
	    <m:eq/>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>h</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:vector>
	      <m:apply>
		<m:ci type="fn">
		  <m:msub>
		    <m:mi>h</m:mi>
		    <m:mi>n</m:mi>
		  </m:msub>
		</m:ci>
		<m:cn>0</m:cn>
	      </m:apply>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:ci type="fn">
		  <m:msub>
		    <m:mi>h</m:mi>
		    <m:mi>n</m:mi>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>p</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:apply>
	    </m:vector>
	  </m:apply>
	</m:math>, 
	<m:math> <m:ci type="vector">A</m:ci> </m:math> is a
	<m:math><m:ci>p</m:ci></m:math>x<m:math><m:ci>p</m:ci></m:math>
	matrix designed to reflect the correlation expected between
	filter weights at different time samples, and
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mi>u</m:mi>
	      <m:mi>n</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math> is a white Gaussian noise vector process with covariance
	<m:math>
	  <m:ci type="vector">Q</m:ci>
	</m:math>. That is, 
	<m:math>
	  <m:set>
	    <m:ci>…</m:ci>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>u</m:mi>
		<m:apply>
		  <m:minus/>
		  <m:mi>n</m:mi>
		  <m:mn>1</m:mn>
		</m:apply>
	      </m:msub>
	    </m:ci>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>u</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>u</m:mi>
		<m:apply>
		  <m:plus/>
		  <m:mi>n</m:mi>
		  <m:mn>1</m:mn>
		</m:apply>
	      </m:msub>
	    </m:ci>
	    <m:ci>…</m:ci>
	  </m:set>
	</m:math> are iid vectors and
	<m:math>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#distributedin"/>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>u</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#normaldistribution"/>
	      <m:ci type="vector">0</m:ci>
	      <m:ci type="vector">Q</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>. A standard simplifying assumption is to assume
	that
	<m:math>
	  <m:ci type="vector">A</m:ci> 
	</m:math> and
	<m:math>
	  <m:ci type="vector">Q</m:ci> </m:math> are diagonal which
	implies that the filter weights are uncorrelated with each
	other. This is called an <term>uncorrelated scattering</term>
	model.
      </para>

      <para id="para6">The measurement/observation model in vector
      form is
	<equation id="eqn5">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci><m:msub>
		<m:mi>x</m:mi>
		<m:mi>n</m:mi>
	      </m:msub></m:ci>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:transpose/>
		    <m:ci type="vector">
		      <m:msub>
			<m:mi>v</m:mi>
			<m:mi>n</m:mi>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:ci><m:msub>
		  <m:mi>w</m:mi>
		  <m:mi>n</m:mi>
		</m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	Where
	<m:math display="inline">
	  <m:apply>
	    <m:eq/>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>v</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:vector>
	      <m:apply>
		<m:ci type="fn">v</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">v</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>n</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:apply>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:ci type="fn">v</m:ci>
		<m:apply>
		  <m:plus/>
		  <m:apply>
		    <m:minus/>
		    <m:ci>n</m:ci>
		    <m:ci>p</m:ci>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:apply>
	    </m:vector>
	  </m:apply>
	</m:math>. With this notation and our Gauss-Markov model for
	the time-varying filter, we can now devise a Kalman filter to
	estimate and <emphasis>track</emphasis> the channel.
      </para>

      <para id="para7">In the case we have the state equation:
	<equation id="eqn6">
	  <m:math>
	    <m:apply>
	      <m:forall/>
	      <m:bvar>
		<m:ci>n</m:ci>
	      </m:bvar>
	      <m:condition>
		<m:apply>
		  <m:geq/>
		  <m:ci>n</m:ci>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:condition>
	      <m:apply>
		<m:eq/>
		<m:ci type="vector">
		  <m:msub>
		    <m:mi>h</m:mi>
		    <m:apply>
		      <m:plus/>
		      <m:mi>n</m:mi>
		      <m:mn>1</m:mn>
		    </m:apply>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:plus/>
		  <m:apply>
		    <m:times/>
		    <m:ci type="vector">A</m:ci>
		    <m:ci type="vector">
		      <m:msub>
			<m:mi>h</m:mi>
			<m:mi>n</m:mi>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>u</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	(with
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mi>h</m:mi>
	      <m:mi>n</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math> in place of
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mi>y</m:mi>
	      <m:mi>n</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math> now). Furthermore, assume that
	<m:math>
	  <m:apply>
	    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#distributedin"/>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>h</m:mi>
		<m:mn>0</m:mn>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#normaldistribution"/>
	      <m:ci type="vector">0</m:ci>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>R</m:mi>
		  <m:mn>0</m:mn>
		</m:msub>
	      </m:ci>
	    </m:apply>
	  </m:apply>
	</m:math> with
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mi>R</m:mi>
	      <m:mn>0</m:mn>
	    </m:msub>
	  </m:ci>
	</m:math> also diagonal. The measurement equation:
	<equation id="eqn7">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci><m:msub>
		<m:mi>x</m:mi>
		<m:mi>n</m:mi>
	      </m:msub></m:ci>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:transpose/>
		    <m:ci type="vector">
		      <m:msub>
			<m:mi>v</m:mi>
			<m:mi>n</m:mi>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>h</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:ci><m:msub>
		  <m:mi>w</m:mi>
		  <m:mi>n</m:mi>
		</m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	Note that
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mi>v</m:mi>
	      <m:mi>n</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math> is <emphasis>known</emphasis>, but
	<emphasis>time-varying</emphasis>. In our earlier discussion
	the
	<m:math>
	  <m:ci type="vector">C</m:ci> </m:math> vector of the
	observation model was <emphasis>constant</emphasis>. The
	Kalman filter still is applicable here, we just replace
	<m:math>
	  <m:ci type="vector">C</m:ci> 
	</m:math> with
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mi>v</m:mi>
	      <m:mi>n</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math>.
      </para>
    </section>

    <section id="kfilter">
      <name>Kalman Filter</name>
      
      <para id="para8">
	<equation id="eqn8">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mover>
		    <m:mi>h</m:mi>
		    <m:mo>̂</m:mo>
		  </m:mover>
		  <m:mrow>
		    <m:mi>n</m:mi>
		    <m:mo>|</m:mo>
		    <m:mi>n</m:mi>
		  </m:mrow>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:plus/>
		<m:ci type="vector">
		  <m:msub>
		    <m:mover>
		      <m:mi>h</m:mi>
		      <m:mo>̂</m:mo>
		    </m:mover>
		    <m:mrow>
		      <m:mi>n</m:mi>
		      <m:mo>|</m:mo>
		      <m:mi>n</m:mi>
		      <m:mo>-</m:mo>
		      <m:mn>1</m:mn>
		    </m:mrow>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:minus/>
		    <m:ci><m:msub>
		      <m:mi>x</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub></m:ci>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:transpose/>
			<m:ci type="vector">
			  <m:msub>
			    <m:mi>v</m:mi>
			    <m:mi>n</m:mi>
			  </m:msub>
			</m:ci>
		      </m:apply>
		      <m:ci type="vector">
			<m:msub>
			  <m:mover>
			    <m:mi>h</m:mi>
			    <m:mo>̂</m:mo>
			  </m:mover>
			  <m:mrow>
			    <m:mi>n</m:mi>
			    <m:mo>|</m:mo>
			    <m:mi>n</m:mi>
			    <m:mo>-</m:mo>
			    <m:mn>1</m:mn>
			  </m:mrow>
			</m:msub>
		      </m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
	Where 
	<m:math>
	  <m:ci type="vector">
	    <m:msub>
	      <m:mover>
		<m:mi>h</m:mi>
		<m:mo>̂</m:mo>
	      </m:mover>
	      <m:mrow>
		<m:mi>n</m:mi>
		<m:mo>|</m:mo>
		<m:mi>n</m:mi>
	      </m:mrow>
	    </m:msub>
	  </m:ci>
	</m:math> is the best estimate of channel given measurements up
	to time <m:math><m:ci>n</m:ci></m:math>.

	<equation id="eqn9">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mover>
		    <m:mi>h</m:mi>
		    <m:mo>̂</m:mo>
		  </m:mover>
		  <m:mrow>
		    <m:mi>n</m:mi>
		    <m:mo>|</m:mo>
		    <m:mi>n</m:mi>
		    <m:mo>-</m:mo>
		    <m:mn>1</m:mn>
		  </m:mrow>
		</m:msub>
	      </m:ci>

	      <m:apply>
		<m:times/>
		<m:ci type="vector">A</m:ci>
		<m:ci type="vector">
		  <m:msub>
		    <m:mover>
		      <m:mi>h</m:mi>
		      <m:mo>̂</m:mo>
		    </m:mover>
		    <m:mrow>
		      <m:mi>n</m:mi>
		      <m:mo>-</m:mo>
		      <m:mn>1</m:mn>
		      <m:mo>|</m:mo>
		      <m:mi>n</m:mi>
		      <m:mo>-</m:mo>
		      <m:mn>1</m:mn>
		    </m:mrow>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	<equation id="eqn10">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>K</m:mi>
		  <m:mi>n</m:mi>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:times/>
		<m:ci type="vector">
		  <m:msub>
		    <m:mi>P</m:mi>
		    <m:mrow>
		      <m:mi>n</m:mi>
		      <m:mo>|</m:mo>
		      <m:mi>n</m:mi>
		      <m:mo>-</m:mo>
		      <m:mn>1</m:mn>
		    </m:mrow>
		  </m:msub>
		</m:ci>
		<m:ci type="vector">
		  <m:msub>
		    <m:mi>v</m:mi>
		    <m:mi>n</m:mi>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:inverse/>
		  <m:ci><m:msub>
		    <m:mi>γ</m:mi>
		    <m:mi>n</m:mi>
		  </m:msub></m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	<equation id="eqn11">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:inverse/>
		<m:ci><m:msub>
		  <m:mi>γ</m:mi>
		  <m:mi>n</m:mi>
		</m:msub></m:ci>
	      </m:apply>
	      
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:transpose/>
		    <m:ci type="vector">
		      <m:msub>
			<m:mi>v</m:mi>
			<m:mi>n</m:mi>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>P</m:mi>
		      <m:mrow>
			<m:mi>n</m:mi>
			<m:mo>|</m:mo>
			<m:mi>n</m:mi>
			<m:mo>-</m:mo>
			<m:mn>1</m:mn>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>v</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		</m:apply>
		<m:apply>
		  <m:power/>
		  <m:ci><m:msub>
		    <m:mi>σ</m:mi>
		    <m:mi>w</m:mi>
		  </m:msub></m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	<equation id="eqn12">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>P</m:mi>
		  <m:mrow>
		    <m:mi>n</m:mi>
		    <m:mo>|</m:mo>
		    <m:mi>n</m:mi>
		  </m:mrow>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci type="vector">
		  <m:msub>
		    <m:mi>P</m:mi>
		    <m:mrow>
		      <m:mi>n</m:mi>
		      <m:mo>|</m:mo>
		      <m:mi>n</m:mi>
		      <m:mo>-</m:mo>
		      <m:mn>1</m:mn>
		    </m:mrow>
		  </m:msub>
		</m:ci>
		<m:apply>
		  <m:times/>
		  <m:ci><m:msub>
		    <m:mi>γ</m:mi>
		    <m:mi>n</m:mi>
		  </m:msub></m:ci>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>K</m:mi>
		      <m:mi>n</m:mi>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:transpose/>
		    <m:ci type="vector">
		      <m:msub>
			<m:mi>K</m:mi>
			<m:mi>n</m:mi>
		      </m:msub>
		    </m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	<equation id="eqn13">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>P</m:mi>
		  <m:mrow>
		    <m:mi>n</m:mi>
		    <m:mo>|</m:mo>
		    <m:mi>n</m:mi>
		    <m:mo>-</m:mo>
		    <m:mn>1</m:mn>
		  </m:mrow>
		</m:msub>
	      </m:ci>
	     
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:times/>
		  <m:ci type="vector">A</m:ci>
		  <m:ci type="vector">
		    <m:msub>
		      <m:mi>P</m:mi>
		      <m:mrow>
			<m:mi>n</m:mi>
			<m:mo>-</m:mo>
			<m:mn>1</m:mn>
			<m:mo>|</m:mo>
			<m:mi>n</m:mi>
			<m:mo>-</m:mo>
			<m:mn>1</m:mn>
		      </m:mrow>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:transpose/>
		    <m:ci type="vector">A</m:ci>
		  </m:apply>
		</m:apply>
		<m:ci type="vector">Q</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	<note type="Notice">
	  <m:math>
	    <m:ci type="vector">Q</m:ci>
	  </m:math> is the covariance of vector
	  <m:math>
	    <m:ci type="vector">
	      <m:msub>
		<m:mi>u</m:mi>
		<m:mi>n</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:math> process instead of
	  <m:math>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:power/>
		<m:ci><m:msub>
		  <m:mi>σ</m:mi>
		  <m:mi>u</m:mi>
		</m:msub></m:ci>
		<m:cn>2</m:cn>
	      </m:apply>
	      <m:ci type="vector">b</m:ci>
	      <m:apply>
		<m:transpose/>
		<m:ci type="vector">b</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> (which is a special case with
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>u</m:mi>
		  <m:mi>n</m:mi>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:times/>
		<m:ci type="vector">b</m:ci>
		<m:ci><m:msub>
		  <m:mi>u</m:mi>
		  <m:mi>n</m:mi>
		</m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>, where 
	  <m:math>
	    <m:ci><m:msub>
	      <m:mi>u</m:mi>
	      <m:mi>n</m:mi>
	    </m:msub></m:ci>
	  </m:math> is a scalar).</note>
      </para>
    </section>

    <section id="SFMP">
      <name>Slow-Fading Model Parameters</name>

    
      <example id="ex1">
	<para id="para9">
	  
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>p</m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:math>
	  <m:math display="block">
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">A</m:ci>
	      <m:matrix>
		<m:matrixrow>
		  <m:cn>0.999</m:cn>
		  <m:cn>0</m:cn>
		</m:matrixrow>
		<m:matrixrow>
		  <m:cn>0</m:cn>
		  <m:cn>0.999</m:cn>
		</m:matrixrow>
	      </m:matrix>
	    </m:apply>
	  </m:math>
	  which is the state transition matrix.
	  <m:math display="block">
	    <m:apply>
	      <m:eq/>
	      <m:ci type="vector">Q</m:ci>
	      <m:matrix>
		<m:matrixrow>
		  <m:cn>0.0001</m:cn>
		  <m:cn>0</m:cn>
		</m:matrixrow>
		<m:matrixrow>
		  <m:cn>0</m:cn>
		  <m:cn>0.0001</m:cn>
		</m:matrixrow>
	      </m:matrix>
	    </m:apply>
	  </m:math>
	  which is the driving noise covariance. To reflect little or no
	  knowledge about the initial state of the channel
	  <m:math display="block">
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#distributedin"/>
	      <m:ci type="vector">
		<m:msub>
		  <m:mi>h</m:mi>
		  <m:mn>0</m:mn>
		</m:msub>
	      </m:ci>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#normaldistribution"/>
		<m:ci type="vector">0</m:ci>
		<m:matrix>
		  <m:matrixrow>
		    <m:cn>100</m:cn>
		    <m:cn>0</m:cn>
		  </m:matrixrow>
		  <m:matrixrow>
		    <m:cn>0</m:cn>
		    <m:cn>100</m:cn>
		  </m:matrixrow>
		</m:matrix>
	      </m:apply>
	    </m:apply>
	  </m:math>
	  
	  Channel model:
	  <equation id="eqn14">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">x</m:ci>
		  <m:ci>n</m:ci>
		</m:apply>
		<m:apply>
		  <m:plus/>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>h</m:mi>
			  <m:mi>n</m:mi>
			</m:msub>
		      </m:ci>
		      <m:cn>0</m:cn>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn">v</m:ci>
		      <m:ci>n</m:ci>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>h</m:mi>
			  <m:mi>n</m:mi>
			</m:msub>
		      </m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn">v</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>n</m:ci>
			<m:cn>1</m:cn>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">w</m:ci>
		    <m:ci>n</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>
	  Where
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">v</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> is the input to the channel, a known square wave, 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">
		<m:msub>
		  <m:mi>h</m:mi>
		  <m:mi>n</m:mi>
		</m:msub>
	      </m:ci>
	      <m:ci>k</m:ci>
	    </m:apply>
	  </m:math> is the time-varying channel model (linear
	  time-varying FIR filter), and
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">w</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> is white Gaussian observation noise.

	  <!-- the following 5 figures appear to be produced by
	  MATLAB -->
	  <figure id="fig3">
	    <name>Noise-Free Channel Output y</name>
	    <media type="image/png" src=".png"/>
	  </figure>

	  <figure id="fig4">
	    <name>Observation Channel Output x</name>
	    <media type="image/png" src=".png"/>
	  </figure>

	  <figure id="fig5">
	    <name>Channel h</name>
	    <media type="image/png" src=".png"/>
	  </figure>

	  <figure id="fig6">
	    <name>Channel Filter Weight h(1)</name>
	    <media type="image/png" src=".png"/>
	  </figure>

	  <figure id="fig7">
	    <name>Channel Filter Weight h(2)</name>
	    <media type="image/png" src=".png"/>
	  </figure>

	</para>
      </example>
    </section>
  </content>
  
</document>
