<?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="new0">
  <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Uniform Filterbanks</name>
  <metadata xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
  <md:version xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2.3</md:version>
  <md:created xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2003/01/08</md:created>
  <md:revised xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2005/10/05 15:55:12.468 GMT-5</md:revised>
  <md:authorlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="schniter">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Phil</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Schniter</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">schniter@ee.eng.ohio-state.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <md:maintainer xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="jago">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Adan</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Galvan</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">jago@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="schniter">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Phil</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Schniter</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">schniter@ee.eng.ohio-state.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">uniform filterbanks</md:keyword>
  </md:keywordlist>

  <md:abstract xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/"/>
</metadata>



  <content xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <section 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="s1_sub2">
      <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Uniform Filterbanks</name>
      <para 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="p1_s1s2">
	With <m:math><m:ci>M</m:ci></m:math> uniformly spaced
	sub-bands, the sub-band width is 
	<m:math>
	  <m:apply>
	    <m:divide/>
	    <m:apply>
	      <m:times/>
	      <m:cn>2</m:cn>
	      <m:pi/>
	    </m:apply>
	    <m:ci>M</m:ci>
	  </m:apply>
	</m:math> radians, implying that the sub-band signal can be
	downsampled by a factor <m:math><m:ci>M</m:ci></m:math> (but
	not more than <m:math><m:ci>M</m:ci></m:math>) without loss
	of information.  This is referred to as a "critically
	sampled" filterbank.  This maximal level of downsampling is
	advantageous when storing or further processing the sub-band
	signals.  With critical sampling, the total number of
	downsampled sub-band output samples equals the total number
	of input samples.  Assuming lossless sub-band processing,
	the critically-sampled synthesis/analysis procedure is
	illustrated in <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" strength="8" target="fig5"/>:
      </para>
      
      <figure 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="fig5">
	<media xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="image/png" src="wf_f5.png"/>
      </figure>	

      <para 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="p2_s1s2">
	Recall that one of our goals in filter design is to ensure
	that 
	<m:math>
	  <m:apply>
	    <m:approx/>
	    <m:apply>
	      <m:ci type="fn" class="discrete">y</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn" class="discrete">x</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>n</m:ci>
		<m:ci>d</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math> for some integer delay
	<m:math><m:ci>d</m:ci></m:math>.  From the <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" strength="8" target="fig5">block diagram above</cnxn>, one can see that
	imperfect analysis filtering will contribute aliasing errors
	to the sub-band signals.  This aliasing distortion will
	degrade
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">y</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math> 
	if it is not cancelled by the synthesis filterbank.  Though
	ideal brick-wall filters 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">
	      <m:msub>
		<m:mi>H</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci>z</m:ci>
	  </m:apply>
	</m:math> and 
	<m:math>
	  <m:apply>
	    <m:ci type="fn">
	      <m:msub>
		<m:mi>G</m:mi>
		<m:mi>k</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:ci>z</m:ci>
	  </m:apply>
	</m:math> could easily provide perfect reconstruction
	(<foreign xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">i.e.</foreign>,
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn" class="discrete">y</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:ci type="fn" class="discrete">x</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>n</m:ci>
		<m:ci>d</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>), they would be unimplementable due to their
	doubly-infinite impulse responses.  Thus, we are interested
	in the design of causal FIR filters that give near-perfect
	reconstruction or, if possible, perfect reconstruction.
      </para>


      <!--  OLD STUFF:

      <figure id='fig2'>
      <media type="image/png" src="filterbanks2.png"/>
    </figure>
      <para id='sec1para3'>
      <list id='list1a'>
      <item>
      Uniform filterbank:
      <m:math>
      <m:apply>
      <m:eq/>
      <m:ci>
      <m:msub>
      <m:mi>&omega;</m:mi>
      <m:mi>k</m:mi>
    </m:msub>
    </m:ci>
      <m:apply>
      <m:divide/>
      <m:apply>
      <m:times/>
      <m:cn>2</m:cn>
      <m:pi/>
      <m:ci>k</m:ci>
    </m:apply>
      <m:ci>M</m:ci>
    </m:apply>
    </m:apply>
    </m:math>,
      <m:math>
      <m:apply>
      <m:eq/>
      <m:ci>BW</m:ci>
      <m:apply>
      <m:divide/>
      <m:apply>
      <m:times/>
      <m:cn>2</m:cn>
      <m:pi/>
    </m:apply>
      <m:ci>M</m:ci>
    </m:apply>
    </m:apply>
    </m:math>
    </item>	    
      <item>
      Constant-Q filterbank: 
      <m:math>
      <m:apply>
      <m:eq/>
      <m:apply>
      <m:divide/>
      <m:apply>
      <m:times/>
      <m:ci>B</m:ci>
      <m:ci>
      <m:msub>
      <m:mi>&omega;</m:mi>
      <m:mi>k</m:mi>
    </m:msub>
    </m:ci>
    </m:apply>
      <m:ci>
      <m:msub>
      <m:mi>&omega;</m:mi>
      <m:mi>k</m:mi>
    </m:msub>
    </m:ci>
    </m:apply>
      <m:ci>constant</m:ci>
    </m:apply>
    </m:math>.
    </item>
    </list>
    </para>
      <figure id='fig3d'>
      <media type="image/png" src="filterbanks3.png"/>
    </figure>
      <para id='sec1para4'>
      Because
      <m:math>
      <m:apply>
      <m:ci type='fn' class='discrete'>
      <m:msub>
      <m:mi>V</m:mi>
      <m:mi>k</m:mi>
    </m:msub>
    </m:ci>
      <m:ci>n</m:ci>
    </m:apply>
    </m:math>
      are bandlimited, it is typical to downsample the outputs.  If
      we downsample an M-band filterbank by
      <m:math><m:ci>M</m:ci></m:math>, the number of inputs equals
      the total number of oral?/synth outputs per line.  This is
      called "critically sampled".
    </para>
      <para id='sec1para5'>
      Typically the subband processing is some form of lossy
      compression.  Then as we compress less and less, we would
      want to have
      <m:math>
      <m:apply>
      <m:eq/>
      <m:apply>
      <m:ci type='fn' class='discrete'>y</m:ci>
      <m:ci>n</m:ci>
    </m:apply>
      <m:apply>
      <m:ci type='fn' class='discrete'>x</m:ci>
      <m:apply>
      <m:minus/>
      <m:ci>n</m:ci>
      <m:ci>
      <m:msub>
      <m:mi>n</m:mi>
      <m:mn>0</m:mn>
    </m:msub>
    </m:ci>
    </m:apply>
    </m:apply>
    </m:apply>
    </m:math>.  This requires 
    </para>
      <figure id='fig4d'>
      <media type="image/png" src="filterbanks4.png"/>
    </figure>
      <para id='sec1para6'>
      which is a pure delay.  Can this be accomplished if 
      <m:math>
      <m:set>
      <m:apply>
      <m:ci type='fn'>
      <m:msub>
      <m:mi>H</m:mi>
      <m:mi>k</m:mi>
    </m:msub>
    </m:ci>
      <m:ci>z</m:ci>
    </m:apply>
      <m:apply>
      <m:ci type='fn'>
      <m:msub>
      <m:mi>G</m:mi>
      <m:mi>k</m:mi>
    </m:msub>
    </m:ci>
      <m:ci>z</m:ci>
    </m:apply>
    </m:set>
    </m:math> are non-ideal?  Yes, as we will see.
    </para>
      -->

      <para 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="sec2para1">
	There are two principle approaches to the design of
	filterbanks:
	
	<list 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="list2" type="enumerated">
	  <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	    Classical: Approximate ideal brick wall filters to ensure
	    good sub-band isolation (<foreign xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">i.e.</foreign>,
	    frequency selectivity) and accept (a hopefully small
	    amount of) aliasing and thus reconstruction error.
	  </item>
	  
	  <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	    Modern: Constrain the filters to give perfect (or
	    near-perfect) reconstruction and hope for good sub-band
	    isolation. 
	  </item>
	</list>
      </para>
    </section>
  </content>
  
</document>
