<?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="None">
  <name>Digital-to-Digital Frequency Transformations</name>
  <metadata>
  <md:version>1.1</md:version>
  <md:created>2005/02/21 01:31:31 US/Central</md:created>
  <md:revised>2005/04/24 16:09:25 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="jsilv">
      <md:firstname>Jeffrey</md:firstname>
      
      <md:surname>Silverman</md:surname>
      <md:email>jsilv@rice.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>
    <para id="p1">Given a prototype <emphasis>digital</emphasis>
    filter design, transformations similar to the bilinear transform
    can also be developed.</para>   
    <para id="p2">Requirements on such a mapping
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:power/>
	    <m:ci>z</m:ci>
	    <m:cn>-1</m:cn>
	  </m:apply>
	  <m:apply>
	    <m:ci type="fn">g</m:ci>
	    <m:apply>
	      <m:power/>
	      <m:ci>z</m:ci>
	      <m:cn>-1</m:cn>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>:
    </para>

    <list id="list1" type="enumerated">
      <item id="it1">points inside the unit circle stay inside the unit
	circle (condition to preserve stability)</item>
      <item id="it2">unit circle is mapped to itself (preserves frequency
	response)</item>
    </list>
    
    <para id="p3"><cnxn target="it2">This condition</cnxn> implies
      that
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:exp/>
	    <m:apply>
	      <m:minus/>
	      <m:apply>
		<m:times/>
		<m:imaginaryi/>
		<m:ci><m:msub>
		    <m:mi>ω</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:ci type="fn">g</m:ci>
	    <m:apply>
	      <m:exp/>
	      <m:apply>
		<m:minus/>
		<m:apply>
		  <m:times/>
		  <m:imaginaryi/>
		  <m:ci>ω</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:apply>
	      <m:abs/>
	      <m:apply>
		<m:ci type="fn">g</m:ci>
		<m:ci>ω</m:ci>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:exp/>
	      <m:apply>
		<m:times/>
		<m:imaginaryi/>
		<m:apply>
		  <m:arg/>
		  <m:apply>
		    <m:ci type="fn">g</m:ci>
		    <m:ci>ω</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math> requires that
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:abs/>
	    <m:apply>
	      <m:ci type="fn">g</m:ci>
	      <m:apply>
		<m:exp/>
		<m:apply>
		  <m:minus/>
		  <m:apply>
		    <m:times/>
		    <m:imaginaryi/>
		    <m:ci>ω</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  <m:cn>1</m:cn>
	</m:apply>
      </m:math> on the unit circle!
    </para>

    <para id="p4">Thus we require an <term>all-pass</term>
    transformation:
      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:ci type="fn">g</m:ci>
	    <m:apply>
	      <m:power/>
	      <m:ci>z</m:ci>
	      <m:cn>-1</m:cn>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:product/>
	    <m:bvar>
	      <m:ci>k</m:ci>
	    </m:bvar>
	    <m:lowlimit>
	      <m:cn>1</m:cn>
	    </m:lowlimit>
	    <m:uplimit>
	      <m:ci>p</m:ci>
	    </m:uplimit>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:minus/>
		<m:apply>
		  <m:power/>
		  <m:ci>z</m:ci>
		  <m:cn>-1</m:cn>
		</m:apply>
		<m:ci><m:msub>
		    <m:mi>α</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub></m:ci>
	      </m:apply>
	      <m:apply>
		<m:minus/>
		<m:cn>1</m:cn>
		<m:apply>
		  <m:times/>
		  <m:ci><m:msub>
		      <m:mi>α</m:mi>
		      <m:mi>k</m:mi>
		    </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:apply>
	  </m:apply>
	</m:apply>
      </m:math> where
      <m:math>
	<m:apply>
	  <m:lt/>
	  <m:apply>
	    <m:abs/>
	    <m:ci><m:msub>
		<m:mi>α</m:mi>
		<m:mi>K</m:mi>
	      </m:msub></m:ci>
	  </m:apply>
	  <m:cn>1</m:cn>
	</m:apply>
      </m:math>, which is required to satisfy <cnxn target="it1">this condition</cnxn>.
    </para>

    <example id="ex1">
      <name>Lowpass-to-Lowpass</name>
      <para id="ex1p1">
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:power/>
	      <m:ci><m:msub>
		  <m:mi>z</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:cn>-1</m:cn>
	    </m:apply>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:minus/>
		<m:apply>
		  <m:power/>
		  <m:ci>z</m:ci>
		  <m:cn>-1</m:cn>
		</m:apply>
		<m:ci>a</m:ci>
	      </m:apply>
	      <m:apply>
		<m:minus/>
		<m:cn>1</m:cn>
		<m:apply>
		  <m:times/>
		  <m:ci>a</m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>z</m:ci>
		    <m:cn>-1</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math> which maps original filter with a cutoff at 
	<m:math><m:msub><m:mi>ω</m:mi><m:mi>c</m:mi>
	  </m:msub>
	</m:math> to a new filter with cutoff
	<m:math><m:msubsup><m:mi>ω</m:mi><m:mi>c</m:mi>
	    <m:mi>′</m:mi>
	  </m:msubsup>
	</m:math>,
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>a</m:ci>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:sin/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:minus/>
		    <m:ci><m:msub>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
		      </m:msub></m:ci>
		    <m:ci><m:msubsup>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
			<m:mi>′</m:mi>
		      </m:msubsup></m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:sin/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:plus/>
		    <m:ci><m:msub>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
		      </m:msub></m:ci>
		    <m:ci><m:msubsup>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
			<m:mi>′</m:mi>
		      </m:msubsup></m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>
      </para>
    </example>

    <example id="ex2">
      <name>Lowpass-to-Highpass</name>
      <para id="ex2p1">
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:power/>
	      <m:ci><m:msub>
		  <m:mi>z</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:cn>-1</m:cn>
	    </m:apply>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:plus/>
		<m:apply>
		  <m:power/>
		  <m:ci>z</m:ci>
		  <m:cn>-1</m:cn>
		</m:apply>
		<m:ci>a</m:ci>
	      </m:apply>
	      <m:apply>
		<m:plus/>
		<m:cn>1</m:cn>
		<m:apply>
		  <m:times/>
		  <m:ci>a</m:ci>
		  <m:apply>
		    <m:power/>
		    <m:ci>z</m:ci>
		    <m:cn>-1</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math> which maps original filter with a cutoff at 
	<m:math><m:msub><m:mi>ω</m:mi><m:mi>c</m:mi>
	  </m:msub>
	</m:math> to a frequency reversed filter with cutoff
	<m:math><m:msubsup><m:mi>ω</m:mi><m:mi>c</m:mi>
	    <m:mi>′</m:mi>
	  </m:msubsup>
	</m:math>,
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:ci>a</m:ci>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:cos/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:minus/>
		    <m:ci><m:msub>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
		      </m:msub></m:ci>
		    <m:ci><m:msubsup>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
			<m:mi>′</m:mi>
		      </m:msubsup></m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:cos/>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:plus/>
		    <m:ci><m:msub>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
		      </m:msub></m:ci>
		    <m:ci><m:msubsup>
			<m:mi>ω</m:mi>
			<m:mi>c</m:mi>
			<m:mi>′</m:mi>
		      </m:msubsup></m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>
      </para>
    </example>

    <para id="pend">(Interesting and occasionally useful!)</para>

  </content>
  
</document>
