<?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="new10">
  <name>Multiresolution Properties of Splines</name>
  <metadata>
  <md:version>2.1</md:version>
  <md:created>2003/04/23</md:created>
  <md:revised>2003/05/07</md:revised>
  <md:authorlist>
      <md:author id="sujesh">
      <md:firstname>Sujesh</md:firstname>
      
      <md:surname>Sreedharan</md:surname>
      <md:email>sujesh@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="ixmocane">
      <md:firstname>Alena</md:firstname>
      <md:othername>Ixmocane</md:othername>
      <md:surname>Scott</md:surname>
      <md:email>oetting@stat.rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="sujesh">
      <md:firstname>Sujesh</md:firstname>
      
      <md:surname>Sreedharan</md:surname>
      <md:email>sujesh@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="rebecca">
      <md:firstname>Rebecca</md:firstname>
      
      <md:surname>Willett</md:surname>
      <md:email>willett@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="jago">
      <md:firstname>Adan</md:firstname>
      
      <md:surname>Galvan</md:surname>
      <md:email>jago@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="charlet">
      <md:firstname>Charlet</md:firstname>
      
      <md:surname>Reedstrom</md:surname>
      <md:email>charlet@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>B-Splines</md:keyword>
    <md:keyword>basis</md:keyword>
    <md:keyword>biorthogonal filters</md:keyword>
    <md:keyword>dilation</md:keyword>
    <md:keyword>multiresolution</md:keyword>
    <md:keyword>Splines</md:keyword>
  </md:keywordlist>

  <md:abstract>B-splines form a simple set of scaling functions satisfying the dilation equation with binomial filter coefficients. However B-Splines other than the zeroth order B-spline (the Haar function) are not orthogonal to its own shifts. Hence to form a perfect reconstruction(PR) filter bank system, biorthogonal scaling functions are used. Also semiorthogonal filter banks can be used to form a PR filter bank system.</md:abstract>
</metadata>

  <content>
    <section id="sec1">
      <name>Polynomials</name>
      <para id="para1">
	Polynomials 
	<m:math>
	  <m:apply>
	    <m:ci type="fn"><m:msub>
		<m:mi>P</m:mi>
		<m:mi>N</m:mi>
	      </m:msub></m:ci>
	    <m:ci>x</m:ci>
	  </m:apply>
	</m:math> have an interesting scaling property that if we
	scale the domain variable <m:math><m:ci>x</m:ci></m:math> by a
	real number <m:math><m:ci>M</m:ci></m:math>, the resulting
	function is still a polynomial with the same degree. A
	polynomial of degree <m:math><m:ci>N</m:ci></m:math> over real
	numbers is defined as follows:

	<equation id="eqn1">
	  <m:math>
	    <m:apply>
            <m:eq/>
            <m:apply>
	        <m:ci type="fn"><m:msub>
		  <m:mi>P</m:mi>
		  <m:mi>N</m:mi>
	        </m:msub></m:ci>
	        <m:ci>x</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:ci>N</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:power/>
		    <m:ci>x</m:ci>
		    <m:ci>k</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	The coefficients 
	<m:math>
	  <m:ci><m:msub>
	      <m:mi>a</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub></m:ci>
	</m:math>
	of the monomial 
	<m:math>
	  <m:apply>
	    <m:power/>
	    <m:ci>x</m:ci>
	    <m:ci>k</m:ci>
	  </m:apply>
	</m:math> are real for real polynomials. In general they could
	be complex numbers and
	<m:math>
	  <m:apply>
            <m:ci type="fn"><m:msub>
		<m:mi>P</m:mi>
		<m:mi>N</m:mi>
	    </m:msub></m:ci>
	    <m:ci>x</m:ci>
          </m:apply>
          </m:math> can be defined over the complex domain.
      </para>

      <para id="para2">
	Consider 
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn"><m:msub>
		  <m:mi>P</m:mi>
		  <m:mi>N</m:mi>
		</m:msub></m:ci>
	      <m:apply>
		<m:divide/>
		<m:ci>x</m:ci>
		<m:ci>M</m:ci>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn">f</m:ci>
	      <m:ci>x</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>, we find 

	<equation id="eqn2">
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">f</m:ci>
		<m:ci>x</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:ci>N</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:power/>
		    <m:apply>
		      <m:divide/>
		      <m:ci>x</m:ci>
		      <m:ci>M</m:ci>
		    </m:apply>
		    <m:ci>k</m:ci>
		  </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:ci>N</m:ci></m:uplimit>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:ci><m:msub>
			<m:mi>a</m:mi>
			<m:mi>k</m:mi>
		      </m:msub></m:ci>
		    <m:apply>
		      <m:power/>
		      <m:ci>M</m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:power/>
		    <m:ci>x</m:ci>
		    <m:ci>k</m:ci>
		  </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:ci>N</m:ci></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:power/>
		    <m:ci>x</m:ci>
		    <m:ci>k</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	So 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">f</m:ci>
	    <m:ci>x</m:ci>
	  </m:apply>
	</m:math> is also a polynomial over
	<m:math><m:ci>x</m:ci></m:math> with degree
	<m:math><m:ci>N</m:ci></m:math>.
      </para>
    </section>

    <section id="sec2">
      <name>Splines</name>
      <para id="p2">
	We know that <cnxn document="m11153" strength="8">splines</cnxn>
	are smoothly connected pieces of polynomials. Let
	<m:math>
	  <m:apply>
	    <m:ci type="fn">φ</m:ci>
	    <m:ci>x</m:ci>
	  </m:apply>
	</m:math> be a spline. 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">φ</m:ci>
	    <m:ci>x</m:ci>
	  </m:apply>
	</m:math> is a piecewise polynomial over integer intervals.
      </para>

      <para id="p2a">
	Dilate 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">φ</m:ci>
	    <m:ci>x</m:ci>
	  </m:apply>
	</m:math> by <m:math><m:ci>M</m:ci></m:math>. 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">φ</m:ci>
	    <m:apply>
	      <m:divide/>
	      <m:ci>x</m:ci>
	      <m:ci>M</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math> is also a piecewise polynomial over integer
	intervals with same degree. So it can be represented by using
	<cnxn document="m11129" strength="8">B-Spline</cnxn> Bases.
      </para>

      <para id="p2b">
	In particular integer dilates of B-splines can be represented
	by the unscaled B-spline bases themselves which gives us a
	<cnxn document="m11122" strength="8">scaling equation</cnxn> for
	B-Splines.
      </para>

      <section id="sec2a">
	<name>M-Scale Relation</name>
	<para id="p3">
	  Consider shifted causal B-splines 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:power/>
		<m:apply>
		  <m:ci type="fn">φ</m:ci>
		  <m:ci>x</m:ci>
		</m:apply>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn"><m:msup>
		    <m:mi>β</m:mi>
		    <m:mi>n</m:mi>
		  </m:msup></m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>x</m:ci>
		  <m:apply>
		    <m:divide/>
		    <m:apply>
		      <m:plus/>
		      <m:ci>n</m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>. These are obtained by the (
	  <m:math>
	  <m:apply>
	      <m:plus/>
	      <m:ci>n</m:ci>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math>)-fold convolution of 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn"><m:msup>
		  <m:mi>φ</m:mi>
		  <m:mn>0</m:mn>
		</m:msup></m:ci>
	      <m:ci>x</m:ci>
	    </m:apply>
	  </m:math>, the Haar scaling function.

	  <equation id="eqn3">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn"><m:msup>
		      <m:mi>φ</m:mi>
		      <m:mn>0</m:mn>
		    </m:msup></m:ci>
		  <m:apply>
		    <m:divide/>
		    <m:ci>x</m:ci>
		    <m:ci>M</m:ci>
		  </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:ci type="fn"><m:msup>
			<m:mi>φ</m:mi>
			<m:mn>0</m:mn>
		      </m:msup></m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:ci>x</m:ci>
		      <m:ci>k</m:ci>
		    </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:apply>
		      <m:ci type="fn"><m:msubsup>
			  <m:mi>h</m:mi>
			  <m:mi>M</m:mi>
			  <m:mn>0</m:mn>
			</m:msubsup></m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn"><m:msup>
			  <m:mi>φ</m:mi>
			  <m:mn>0</m:mn>
			</m:msup></m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>x</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"><m:msubsup>
		  <m:mi>h</m:mi>
		  <m:mi>M</m:mi>
		  <m:mn>0</m:mn>
		</m:msubsup></m:ci>
	      <m:ci>k</m:ci>
	    </m:apply>
	  </m:math> is the filter with z-transform 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn"><m:msubsup>
		    <m:mi>H</m:mi>
		    <m:mi>M</m:mi>
		    <m:mn>0</m:mn>
		  </m:msubsup></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>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:power/>
		  <m:ci>z</m:ci>
		  <m:apply>
		    <m:minus/>
		    <m:ci>k</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math> (discrete pulse of length
	  <m:math><m:ci>M</m:ci></m:math>).
	  Convolve 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn"><m:msup>
		  <m:mi>φ</m:mi>
		  <m:mn>0</m:mn>
		</m:msup></m:ci>
	      <m:apply>
		<m:divide/>
		<m:ci>x</m:ci>
		<m:ci>M</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> with itself 
	  <m:math>
	    <m:apply>
	      <m:plus/>
	      <m:ci>n</m:ci>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math> times.  This gives us the following result:

	  <equation id="eqn4">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn"><m:msup>
		      <m:mi>φ</m:mi>
		      <m:mi>n</m:mi>
		    </m:msup></m:ci>
		  <m:apply>
		    <m:divide/>
		    <m:ci>x</m:ci>
		    <m:ci>M</m:ci>
		  </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:condition>
		    <m:apply>
		      <m:in/>
		      <m:ci>k</m:ci>
		      <m:integers/>
		    </m:apply>
		  </m:condition>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn"><m:msubsup>
			  <m:mi>h</m:mi>
			  <m:mi>M</m:mi>
			  <m:mi>n</m:mi>
			</m:msubsup></m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn"><m:msup>
			  <m:mi>φ</m:mi>
			  <m:mi>n</m:mi>
			</m:msup></m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>x</m:ci>
			<m:ci>k</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  where	 
 
	  <equation id="eqn5">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn"><m:msubsup>
		      <m:mi>H</m:mi>
		      <m:mi>M</m:mi>
		      <m:mi>n</m:mi>
		    </m:msubsup></m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:apply>
		      <m:power/>
		      <m:ci>M</m:ci>
		      <m:ci>n</m:ci>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:power/>
		    <m:apply>
		      <m:ci type="fn"><m:msubsup>
			  <m:mi>H</m:mi>
			  <m:mi>M</m:mi>
			  <m:mn>0</m:mn>
			</m:msubsup></m:ci>
		      <m:ci>z</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:plus/>
		      <m:ci>n</m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </m:apply>
		</m:apply>

		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:apply>
		      <m:power/>
		      <m:ci>M</m:ci>
		      <m:ci>n</m:ci>
		    </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:power/>
		      <m:ci>z</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>k</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>
	  Thus we have an <m:math><m:ci>M</m:ci></m:math>-scale
	  relation for all integers <m:math><m:ci>M</m:ci></m:math>.
	  If 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>M</m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:math>, 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn"><m:msubsup>
		  <m:mi>H</m:mi>
		  <m:mn>2</m:mn>
		  <m:mi>n</m:mi>
		</m:msubsup></m:ci>
	      <m:ci>z</m:ci>
	    </m:apply>
	  </m:math>
	  is a binomial filter whose coefficients form the Pascal's triangle.
	</para>
      </section>
    </section>

    <section id="sec3">
      <name>Spline Wavelets</name>
      <para id="p4">
	We saw that shifted B-splines 
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn"><m:msup>
		  <m:mi>φ</m:mi>
		  <m:mi>n</m:mi>
		</m:msup></m:ci>
	      <m:ci>x</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn"><m:msup>
		  <m:mi>β</m:mi>
		  <m:mi>n</m:mi>
		</m:msup></m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>x</m:ci>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:plus/>
		      <m:ci>n</m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>
	are scaling functions.
      </para>

      <para id="para4b">
	We can form a nested set of subspaces
	<m:math>
	  <m:ci><m:msub>
	      <m:mi>V</m:mi>
	      <m:mi>j</m:mi>
	    </m:msub></m:ci>
	</m:math>, such that

	<equation id="eqn7">
	  <m:math display="block">
	    <m:apply>
	      <m:forall/>
	      <m:bvar>
		<m:ci>j</m:ci>
	      </m:bvar>
	      <m:condition>
		<m:apply>
		  <m:prsubset/>
		  <m:ci><m:msub>
		      <m:mi>V</m:mi>
		      <m:mi>j</m:mi>
		    </m:msub></m:ci>
		  <m:ci><m:msub>
		      <m:mi>V</m:mi>
		      <m:mrow>
			<m:mi>j</m:mi>
			<m:mo>+</m:mo>
			<m:mn>1</m:mn>
		      </m:mrow>
		    </m:msub></m:ci>
		</m:apply>
	      </m:condition>
	      <m:apply>
		<m:eq/>
		<m:ci><m:msub>
		    <m:mi>V</m:mi>
		    <m:mi>j</m:mi>
		  </m:msub></m:ci>
		<m:apply>
		  <m:ci type="fn"><m:msub>
		      <m:mi>Span</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub></m:ci>
		  <m:apply>
		    <m:ci type="fn">φ</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:power/>
			  <m:cn>2</m:cn>
			  <m:ci>j</m:ci>
			</m:apply>
			<m:ci>t</m:ci>
		      </m:apply>
		      <m:ci>k</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	And they form a <cnxn document="" strength="8">multiresolution
	  analysis</cnxn> system that is dense in
	<m:math>
	  <m:ci><m:msup>
	      <m:mi>L</m:mi>
	      <m:mn>2</m:mn>
	    </m:msup></m:ci>
	</m:math>
	. How do we find the spline wavelets?  
	<m:math>
	  <m:apply>
	    <m:ci type="fn"><m:msup>
		<m:mi>φ</m:mi>
		<m:mi>n</m:mi>
	      </m:msup></m:ci>
	    <m:apply>
	      <m:minus/>
	      <m:ci>x</m:ci>
	      <m:ci>k</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>
	are not orthogonal so we need to find either <cnxn document="" strength="8">biorthogonal</cnxn> or semi-orthogonal
	wavelets. The biorthogonal spline wavelets are compact and
	give FIR filters for the wavelet <cnxn document="" strength="8">filter bank</cnxn>. The semi-orthogonal spline
	wavelets generate IIR filter bank structures. There are also
	other spline wavelets such as Stromberg's one sided orthogonal
	splines and the Battle-Lemarie Wavelets.
      </para>

      <example id="ex1">
	<name>BIORTHOGONAL SPLINE WAVELETS</name>
	<para id="para7">
	  These are the wavelets obtained using biorthogonality of the
	  filters on synthesis and analysis sides of the filter
	  bank. For further details refer to <cnxn document="" strength="8">BIORTHOGONAL WAVELETS</cnxn>.
	</para>
	<para id="para8">
	  <list id="exlist">
	    <item>
	      <m:math>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:ci type="fn"><m:msup>
			<m:mi>φ</m:mi>
			<m:mn>1</m:mn>
		      </m:msup></m:ci>
		    <m:ci>x</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn"><m:msup>
			<m:mi>β</m:mi>
			<m:mn>1</m:mn>
		      </m:msup></m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:ci>x</m:ci>
		      <m:cn>1</m:cn>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:math>, the Hat function gives the 5/3 filter bank.
	    </item>
	    <item>
	      <m:math>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:ci type="fn">H</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:power/>
		    <m:apply>
		      <m:divide/>
		      <m:apply>
			<m:plus/>
			<m:cn>1</m:cn>
			<m:apply>
			  <m:power/>
			  <m:ci>z</m:ci>
			  <m:apply>
			    <m:minus/>
			    <m:cn>1</m:cn>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:cn>2</m:cn>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:math> is the scaling filter for 
	      <m:math>
		<m:apply>
		  <m:ci type="fn"><m:msup>
		      <m:mi>φ</m:mi>
		      <m:mn>1</m:mn>
		    </m:msup></m:ci>
		  <m:ci>x</m:ci>
		</m:apply>
	      </m:math>.
	    </item>
	    <item>
	      The biorthogonal scaling filter is 
	      <m:math>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:ci type="fn"><m:mover>
			<m:mi>H</m:mi>
			<m:mo>^</m:mo>
		      </m:mover></m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:power/>
		      <m:apply>
			<m:divide/>
			<m:apply>
			  <m:plus/>
			  <m:cn>1</m:cn>
			  <m:apply>
			    <m:power/>
			    <m:ci>z</m:ci>
			    <m:apply>
			      <m:minus/>
			      <m:cn>1</m:cn>
			    </m:apply>
			  </m:apply>
			</m:apply>
			<m:cn>2</m:cn>
		      </m:apply>
		      <m:cn>2</m:cn>
		    </m:apply>
		    <m:apply>
		      <m:divide/>
		      <m:apply>
			<m:plus/>
			<m:apply>
			  <m:minus/>
			  <m:cn>1</m:cn>
			</m:apply>
			<m:apply>
			  <m:times/>
			  <m:cn>4</m:cn>
			  <m:apply>
			    <m:power/>
			    <m:ci>z</m:ci>
			    <m:apply>
			      <m:minus/>
			      <m:cn>1</m:cn>
			    </m:apply>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:power/>
			  <m:ci>z</m:ci>
			  <m:apply>
			    <m:minus/>
			    <m:cn>2</m:cn>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:math>.
	    </item>
	  </list>
	  The scaling filters and wavelets generated are plotted in
	  <cnxn target="fig1" strength="9"/>.
	</para>

	<figure id="fig1">
	  <media type="image/png" src="spline53.png"/>
	  <caption>Spline 5/3 Biorthogonal Wavelets</caption>
	</figure>
      </example>

      <section id="sec3b">
	<name>IIR and Semiorthogonal</name>
	<para id="para9">
	  Basis 
	  <m:math>
	    <m:set>
	      <m:apply>
		<m:ci type="fn">φ</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>t</m:ci>
		  <m:ci>k</m:ci>
		</m:apply>
	      </m:apply>
	    </m:set>
	  </m:math> for 
	  <m:math>
	    <m:ci><m:msub>
		<m:mi>V</m:mi>
		<m:mn>0</m:mn>
	      </m:msub></m:ci>
	  </m:math>
	  are non-orthogonal. We impose wavelets
	  <m:math>
	    <m:set>
	      <m:apply>
		<m:ci type="fn">w</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>t</m:ci>
		  <m:ci>k</m:ci>
		</m:apply>
	      </m:apply>
	    </m:set>
	  </m:math> to be orthogonal to
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">φ</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>.
	</para>

	<para id="para10">
	  <m:math>
	    <m:apply>
	      <m:mo>⊥</m:mo>
	      <m:ci><m:msub>
		  <m:mi>V</m:mi>
		  <m:mn>0</m:mn>
		</m:msub></m:ci>
	      <m:ci><m:msub>
		  <m:mi>W</m:mi>
		  <m:mn>0</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	  </m:math>
	  and
	  <m:math>
            <m:apply>
            <m:xor/>
	    <m:ci><m:msub>
		<m:mi>V</m:mi>
		<m:mn>0</m:mn>
	    </m:msub></m:ci>
	    <m:ci><m:msub>
	        <m:mi>W</m:mi>
		<m:mn>0</m:mn>
	    </m:msub></m:ci>
            </m:apply>
	  </m:math> as in orthogonal scaling functions. 
	  <m:math>
	    <m:set>
	      <m:apply>
		<m:ci type="fn">w</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>t</m:ci>
		  <m:ci>k</m:ci>
		</m:apply>
	      </m:apply>
	    </m:set>
	  </m:math> need not be an orthogonal set.  The analysis
	  filters are IIR.  The high pass synthesis filter 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">G</m:ci>
	      <m:ci>z</m:ci>
	    </m:apply>
	  </m:math> is given by 

	  <equation id="eqn9">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">G</m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:minus/>
		    <m:apply>
		      <m:power/>
		      <m:ci>z</m:ci>
		      <m:apply>
			<m:minus/>
			<m:cn>1</m:cn>
			<m:apply>
			  <m:times/>
			  <m:cn>2</m:cn>
			  <m:ci>N</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">H</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:apply>
			<m:inverse/>
			<m:ci>z</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">A</m:ci>
		    <m:apply>
		      <m:minus/>
		      <m:apply>
			<m:inverse/>
			<m:ci>z</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  <m:math>
	    <m:apply>
	      <m:ci type="fn"><m:mover>
		  <m:mi>H</m:mi>
		  <m:mo>~</m:mo>
		</m:mover></m:ci>
	      <m:ci>z</m:ci>
	    </m:apply>
	  </m:math>
	  and
	  <m:math>
	    <m:apply>
	      <m:ci type="fn"><m:mover>
		  <m:mi>G</m:mi>
		  <m:mo>~</m:mo>
		</m:mover></m:ci>
	      <m:ci>z</m:ci>
	    </m:apply>
	  </m:math> are the low pass and high pass analysis filters
	  respectively.

	  <equation id="eqn10">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn"><m:mover>
		      <m:mi>H</m:mi>
		      <m:mo>~</m:mo>
		    </m:mover></m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:times/>
		    <m:cn>2</m:cn>
		    <m:apply>
		      <m:inverse/>
		      <m:ci>z</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn">H</m:ci>
		      <m:apply>
			<m:inverse/>
			<m:ci>z</m:ci>
		      </m:apply>
		    </m:apply>
		    <m:apply>
		      <m:ci type="fn">A</m:ci>
		      <m:apply>
			<m:inverse/>
			<m:ci>z</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">A</m:ci>
		    <m:apply>
		      <m:power/>
		      <m:ci>z</m:ci>
		      <m:apply>
			<m:minus/>
			<m:cn>2</m:cn>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  <equation id="eqn11">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn"><m:mover>
		      <m:mi>G</m:mi>
		      <m:mo>~</m:mo>
		    </m:mover></m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:times/>
		    <m:cn>2</m:cn>
		    <m:apply>
		      <m:ci type="fn">H</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>z</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">A</m:ci>
		    <m:apply>
		      <m:power/>
		      <m:ci>z</m:ci>
		      <m:apply>
			<m:minus/>
			<m:cn>2</m:cn>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  The 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">A</m:ci>
	      <m:apply>
		<m:power/>
		<m:ci>z</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math> in the denominator makes the analysis filters IIR, where 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">A</m:ci>
	      <m:ci>z</m:ci>
	    </m:apply>
	  </m:math> is the z-transform of the sequence, 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn">a</m:ci>
		<m:ci>k</m:ci>
	      </m:apply>
	      <m:apply>
		<m:scalarproduct/>
		<m:apply>
		  <m:ci type="fn">φ</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">φ</m:ci>
		  <m:apply>
		    <m:minus/>
		    <m:ci>t</m:ci>
		    <m:ci>k</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>.
	</para>
      </section>
    </section>
  </content>
  
</document>
