<?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="m10623">
  <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/">IIR Filtering: Filter-Design Exercise in MATLAB</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/">1.2</md:version>
  <md:created xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2006/07/26 11:19:33 GMT-5</md:created>
  <md:revised xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2007/01/13 01:02:32.328 US/Central</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="tbshen">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Thomas</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Shen</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">tbshen@uiuc.edu</md:email>
    </md:author>
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="dljones">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Douglas</md:firstname>
      <md:othername xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">L.</md:othername>
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Jones</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">dl-jones@uiuc.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="tbshen">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Thomas</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Shen</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">tbshen@uiuc.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/">conv</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">difference equation</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">direct form II</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">DSP</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">ellip</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">elliptic low-pass filter</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">freqz</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">gain factor</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">IIR</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">impulse response</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">infinite impulse response</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">linear time-invariant</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">LTI</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">notch filter</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">overflow</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">poles</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">zeros</md:keyword>
  </md:keywordlist>

  <md:abstract xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">You will derive the transfer function of a second-order, Direct Form II, infinite impulse response (IIR) filter.  Then you will create a fourth-order IIR filter, plot its frequency response, and decompose the fourth-order filter into two second-order sections, choosing an appropriate gain for each stage to prevent overflow.</md:abstract>
</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="sec2">
      <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/"/>
      <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="p4">
	The transfer function for the second-order section shown 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/" document="m10025" target="fig1">IIR Filtering:
	Introduction</cnxn> is

	<equation 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="eqn1">
	  <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:times/>
		<m:ci>G</m:ci>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:plus/>
		    <m:cn>1</m:cn>
		    <m:apply>
		      <m:times/>
		      <m:ci><m:msub>
			  <m:mi>b</m:mi>
			  <m:mn>1</m:mn>
			</m:msub></m:ci>
		      <m:apply>
			<m:power/>
			<m:ci>z</m:ci>
			<m:cn>-1</m:cn>
		      </m:apply>
		    </m:apply>
		    <m:apply>
		      <m:times/>
		      <m:ci><m:msub>
			  <m:mi>b</m:mi>
			  <m:mn>2</m:mn>
			</m:msub></m:ci>
		      <m:apply>
			<m:power/>
			<m:ci>z</m:ci>
			<m:cn>-2</m:cn>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:plus/>
		    <m:cn>1</m:cn>
		    <m:apply>
		      <m:times/>
		      <m:ci><m:msub>
			  <m:mi>a</m:mi>
			  <m:mn>1</m:mn>
			</m:msub></m:ci>
		      <m:apply>
			<m:power/>
			<m:ci>z</m:ci>
			<m:cn>-1</m:cn>
		      </m:apply>
		    </m:apply>
		    <m:apply>
		      <m:times/>
		      <m:ci><m:msub>
			  <m:mi>a</m:mi>
			  <m:mn>2</m:mn>
			</m:msub></m:ci>
		      <m:apply>
			<m:power/>
			<m:ci>z</m:ci>
			<m:cn>-2</m:cn>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>
      </para>

      <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="sec2a">
	<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/">Exercise</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="p5">
	  First, derive the above transfer function.  Begin by writing
	  the <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">difference equations</term> for
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">w</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> in terms of the input and past values 
	  (<m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">w</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>n</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:math> and 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">w</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>n</m:ci>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:math>).  Then write the difference equation for 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">y</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> also in terms of the past samples of 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">w</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math>.  After finding the two difference equations,
	  compute the corresponding Z-transforms and use the relation
	  <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:divide/>
		<m:apply>
		  <m:ci type="fn">Y</m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">X</m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:divide/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:ci type="fn">Y</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">W</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:ci type="fn">W</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">X</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math> to verify the IIR transfer function 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/" target="eqn1"/>.
	</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="p6">
	  Next, design the coefficients for a fourth-order filter
	  implemented as the cascade of two bi-quad sections.  Write a
	  MATLAB script to compute the coefficients.  Begin by
	  designing the fourth-order filter and checking the response
	  using the MATLAB commands
	</para>
	<code 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="block">
	  <![CDATA[
	  [B,A] = ellip(4,.25,10,.25) 
	  freqz(B,A)
	  ]]>
	</code>
	<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="p6a">
	  <note 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="Note">MATLAB's <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/"><code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">freqz</code></term>
	    command displays the frequency responses of IIR filters
	    and FIR filters.  For more information about this, type
	    <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">help freqz</code>.  Be sure to look at MATLAB's
	    definition of the transfer function.  </note><note 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="Note">If you use the <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">freqz</code> command as
	    shown above, without passing its returned data to another
	    function, both the magnitude (in decibels) and the phase
	    of the response will be shown.
	  </note>
	</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="p7">
	  Next you must find the roots of the numerator,
	  <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">zeros</term>, and roots of the denominator,
	  <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">poles</term>, so that you can group them to create two
	  second-order sections.  The MATLAB commands
	  <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">roots</code> and <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">poly</code> will be useful for
	  this task.  Save the scripts you use to decompose your
	  filter into second-order sections; they will probably be
	  useful later.
	</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="p8">
	  Once you have obtained the coefficients for each of your two
	  second-order sections, you are ready to choose a
	  <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">gain</term> factor, 
	  <m:math>
	    <m:ci>G</m:ci>
	  </m:math>, for each section.  As part of your MATLAB script,
	  use <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">freqz</code> to compute the response
	  <m:math>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:ci type="fn">W</m:ci>
		<m:ci>z</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">X</m:ci>
		<m:ci>z</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> with 
	  <m:math display="inline">
	    <m:apply>
	      <m:eq/>
	      <m:ci>G</m:ci>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math> for each of the sets of second-order coefficients.
	  Recall that on the DSP we cannot represent numbers greater
	  than or equal to 1.0.  If the maximum value of
	  <m:math>
	    <m:apply>
	      <m:abs/>
	      <m:apply>
		<m:divide/>
		<m:apply>
		  <m:ci type="fn">W</m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">X</m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math> is or exceeds 1.0, an input with magnitude less
	  than one could produce
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">w</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> terms with magnitude greater than or equal to one;
	  this is <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">overflow</term>.  You must therefore select a
	  gain values for each second-order section such that the
	  response from the input to the states,
	  <m:math>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:ci type="fn">W</m:ci>
		<m:ci>z</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">X</m:ci>
		<m:ci>z</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>, is always less than one in magnitude.  In other
	  words, set the value of 
	  <m:math>
	    <m:ci>G</m:ci>
	  </m:math> to ensure that
	  <m:math>
	    <m:apply>
	      <m:lt/>
	      <m:apply>
		<m:abs/>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:ci type="fn">W</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">X</m:ci>
		    <m:ci>z</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:math>.
	</para>
      </section>
      <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="sec2b">
	<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/">Preparing for processor implementation</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="p9b">As the processor exercises become more complex, it will
	  become increasingly important to observe good programming
	  practices. Of these, perhaps the most important is careful
	  planning of your program flow, memory and register use, and
	  testing procedure.  Write out pseudo-code for the processor
	  implementation of a bi-quad. Make sure you consider the way
	  you will store coefficients and states in memory. Then, to
	  prepare for testing, compute the values of
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">w</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> and 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">y</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math> for both second-order sections at 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>n</m:ci>
	      <m:set>
		<m:cn>0</m:cn>
		<m:cn>1</m:cn>
		<m:cn>2</m:cn>
	      </m:set>
	    </m:apply>
	  </m:math> using the filter coefficients you calculated in
	  MATLAB.  Assume
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:apply>
		<m:ci type="fn" class="discrete">x</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn" class="discrete">δ</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math> and all states are initialized to zero.  You may
	  also want to create a frequency sweep test-vector like the
	  one 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/" document="m13811">DSP Development Environment:
	  Introductory Exercise for TI TMS320C55x</cnxn> and use the
	  filter command to find the outputs for that input. Later,
	  you can recreate these input signals on the DSP and compare
	  the output values it calculates with those you find now. If
	  your program is working, the values will be almost
	  identical, differing only slightly because of quantization
	  effects, which are considered 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/" document="m10813">IIR
	  Filtering: Filter-Coefficient Quantization Exercise in
	  MATLAB</cnxn>.
	</para>
      </section>
    </section>

  </content>
  </document>
