<?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="Module.2004-05-19.4747">
  <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/">Chirp-z Transform</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.3</md:version>
  <md:created xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2004/05/19 10:47:47 GMT-5</md:created>
  <md:revised xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2004/06/18 10:15:00.017 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="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="harika">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Harika</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Basana</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">ilsai@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer 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:maintainer>
    <md:maintainer xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="kclarks">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Kyle</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Clarkson</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">kclarks@rice.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/">z-tranform</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">DFT</md:keyword>
  </md:keywordlist>

  <md:abstract xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Efficient scheme for computing samples of the z-transform. (Important special case: DFTs)</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/">
    <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="intro">
      Let
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:power/>
	    <m:ci>z</m:ci>
	    <m:ci>k</m:ci>
	  </m:apply>
	  <m:apply>
	    <m:times/>
	    <m:ci>A</m:ci>
	    <m:apply>
	      <m:power/>
	      <m:ci>W</m:ci>
	      <m:apply>
		<m:minus/>
		<m:ci>k</m:ci>
	      </m:apply>  
	    </m:apply>  
	  </m:apply>
	</m:apply>
      </m:math>, where

      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:ci>A</m:ci>
	  <m:apply>
	    <m:times/>
	    <m:ci><m:msub><m:mi>A</m:mi><m:mi>o</m:mi></m:msub></m:ci>
	    <m:apply>
	      <m:exp/>
	      <m:apply>
		<m:times/>
		<m:imaginaryi/>
		<m:ci><m:msub><m:mi>θ</m:mi><m:mi>o</m:mi></m:msub></m:ci>
	      </m:apply>  
	    </m:apply>  
	  </m:apply>
	</m:apply>
      </m:math>, 
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:ci>W</m:ci>
	  
	  <m:apply>
	    <m:times/>
	    <m:ci><m:msub><m:mi>W</m:mi><m:mi>o</m:mi></m:msub></m:ci>
	    <m:apply>
	      <m:exp/>
	      <m:apply>
		<m:minus/>
		<m:apply>
		  <m:times/>
		  <m:imaginaryi/>
		  <m:ci><m:msub><m:mi>φ</m:mi><m:mi>o</m:mi></m:msub></m:ci>
		</m:apply>  
	      </m:apply>
	    </m:apply>  
	  </m:apply>
	</m:apply>
      </m:math>.

    </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="para_2">
      We wish to compute <m:math><m:ci>M</m:ci></m:math> samples, 
      <m:math>
	<m:apply>
	  <m:eq/>
	  <m:ci>k</m:ci>
	  <m:list>
	    <m:cn>0</m:cn>
	    <m:cn>1</m:cn>
	    <m:cn>2</m:cn>
	    <m:ci>…</m:ci>
	    <m:apply>
	      <m:minus/>
	      <m:ci>M</m:ci>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:list>
	</m:apply>
      </m:math>
      of

      <m:math display="block">
	<m:apply> 
	  <m:eq/>
	  
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci type="fn">X</m:ci>
	      <m:ci><m:msub><m:mi>z</m:mi><m:mi>k</m:mi></m:msub></m:ci>
	    </m:apply>

	    <m:apply>
	      <m:sum/>
	      <m:bvar><m:ci>n</m:ci></m:bvar>
	      <m:uplimit>
		<m:apply>
		  <m:minus/>
		  <m:ci>N</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:uplimit>
	      <m:lowlimit><m:cn>0</m:cn></m:lowlimit>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">x</m:ci>
		  <m:ci>n</m:ci>
		</m:apply>
		<m:apply>
		  <m:power/>
		  <m:ci><m:msub><m:mi>z</m:mi><m:mi>k</m:mi></m:msub></m:ci>
		  <m:apply>
		    <m:minus/>
		    <m:ci>n</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>  
	  </m:apply> 
	  
	  <m:apply>
	    <m:sum/>
	    <m:bvar><m:ci>n</m:ci></m:bvar>
	    <m:uplimit>
	      <m:apply>
		<m:minus/>
		<m:ci>N</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:uplimit>
	    <m:lowlimit><m:cn>0</m:cn></m:lowlimit>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:ci type="fn">x</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:apply>
		<m:power/>
		<m:ci>A</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>n</m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:power/>
		<m:ci>W</m:ci>
		<m:ci>nk</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  
	</m:apply>
      </m:math>

      <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="fig1001" orient="horizontal">
	<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="figure3.png"/> 
      </figure> 

    </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="para_3">
      Note that 
      <m:math>
	<m:apply>
	  <m:implies/>

	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:power/>
	      <m:apply>
		<m:minus/>
		<m:ci>k</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:cn>2</m:cn>
	    </m:apply>
	    
	    <m:apply>
	      <m:plus/>
	      <m:apply>
		<m:minus/>
		<m:apply>
		  <m:power/>
		  <m:ci>n</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:cn>2</m:cn>
		  <m:ci>n</m:ci>
		  <m:ci>k</m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:power/>
		<m:ci>k</m:ci>
		<m:cn>2</m:cn>
	      </m:apply>
	      
	    </m:apply>
	  </m:apply>



	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:times/>
	      <m:ci>n</m:ci>
	      <m:ci>k</m:ci>
	    </m:apply>
	    
	    <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:apply>
		  <m:power/>
		  <m:ci>n</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
		
		<m:apply>
		  <m:minus/>
		  <m:apply>
		    <m:power/>
		    <m:ci>k</m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:power/>
		    <m:apply>
		      <m:minus/>
		      <m:ci>k</m:ci>
		      <m:ci>n</m:ci>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
		
	      </m:apply>  
	    </m:apply>
	  </m:apply>
	</m:apply>
      </m:math>, So

      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:ci type="fn">X</m:ci>
	    <m:ci><m:msub><m:mi>z</m:mi><m:mi>k</m:mi></m:msub></m:ci>
	  </m:apply>
	  
	  <m:apply>
	    <m:sum/>
	    <m:bvar><m:ci>n</m:ci></m:bvar>
	    <m:uplimit>
	      <m:apply>
		<m:minus/>
		<m:ci>N</m:ci>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:uplimit>
	    <m:lowlimit><m:cn>0</m:cn></m:lowlimit>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:ci type="fn">x</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	      <m:apply>
		<m:power/>
		<m:ci>A</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>n</m:ci>
		</m:apply>
	      </m:apply>
	      
	      <m:apply>
		<m:power/>
		<m:ci>W</m:ci>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:power/>
		    <m:ci>n</m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>  
	      
	      <m:apply>
		<m:power/>
		<m:ci>W</m:ci>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:power/>
		    <m:ci>k</m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>    		   
	      
	      
	      <m:apply>
		<m:power/>
		<m:ci>W</m:ci>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:minus/>
		    <m:apply>
		      <m:power/>
		      <m:apply>
			<m:minus/>
			<m:ci>k</m:ci>
			<m:ci>n</m:ci>
		      </m:apply>
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply> 		   
	      
	    </m:apply>
	  </m:apply>  
	  
	</m:apply>
      </m:math>


      <m:math display="block">
	<m:apply>
	  <m:eq/>
	  <m:apply>
	    <m:times/>
	    <m:apply>
	      <m:power/>
	      <m:ci>W</m:ci>
	      <m:apply>
		<m:divide/>
		<m:apply>
		  <m:power/>
		  <m:ci>k</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply>    	     
	    
	    <m:apply>
   	      <m:sum/>
	      <m:bvar><m:ci>n</m:ci></m:bvar>
	      <m:uplimit>
		<m:apply>
		  <m:minus/>
		  <m:ci>N</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:uplimit>
	      <m:lowlimit><m:cn>0</m:cn></m:lowlimit>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:ci type="fn">x</m:ci>
		  <m:ci>n</m:ci>
		</m:apply>
		<m:apply>
		  <m:power/>
		  <m:ci>A</m:ci>
		  <m:apply>
		    <m:minus/>
		    <m:ci>n</m:ci>
		  </m:apply>
		</m:apply>
		
		<m:apply>
		  <m:power/>
		  <m:ci>W</m:ci>
		  <m:apply>
		    <m:divide/>
		    <m:apply>
		      <m:power/>
		      <m:ci>n</m:ci>
		      <m:cn>2</m:cn>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>  
		
		
		
		
		<m:apply>
		  <m:power/>
		  <m:ci>W</m:ci>
		  <m:apply>
		    <m:divide/>
		    <m:apply>
		      <m:minus/>
		      <m:apply>
			<m:power/>
			<m:apply>
			  <m:minus/>
			  <m:ci>k</m:ci>
			  <m:ci>n</m:ci>
			</m:apply>
			<m:cn>2</m:cn>
		      </m:apply>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply> 		   
		
	      </m:apply>
	    </m:apply>  
	  </m:apply>
	</m:apply>
      </m:math>


    </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="para_4">
      Thus, 
      <m:math>
	<m:apply>
	  <m:ci type="fn">X</m:ci>
	  <m:ci><m:msub><m:mi>z</m:mi><m:mi>k</m:mi></m:msub></m:ci>                 
	</m:apply>
      </m:math>
      can be compared by
      <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="list_2" 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/" id="item1">Premultiply 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">x</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply> 
	  </m:math> by 

	  <m:math>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:power/>
		<m:ci>A</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>

	      <m:apply>
		<m:power/>
		<m:ci>W</m:ci>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:power/>
		    <m:ci>n</m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:cn>2</m:cn>
		</m:apply>
	      </m:apply>  
	    </m:apply>
	  </m:math>, 

	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:ci>n</m:ci>
	      <m:list> 
		<m:cn> 0 </m:cn> 
		<m:cn> 1</m:cn> 
		<m:ci> …</m:ci> 
		<m:apply>
		  <m:minus/>
		  <m:ci>N</m:ci>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:list> 
	    </m:apply>
	  </m:math> to make

	  <m:math>
	    <m:apply>
	      <m:ci type="fn">y</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply> 
	  </m:math>
	  
	</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/" id="item2">Linearly convolve with 
	  <m:math>
	    <m:apply>
	      <m:power/>
	      <m:ci>W</m:ci>
	      <m:apply>
		<m:divide/>
		<m:apply>
		  <m:minus/>
		  <m:apply>
		    <m:power/>
		    <m:apply>
		      <m:minus/>
		      <m:ci>k</m:ci>
		      <m:ci>n</m:ci>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply> 
	    
	  </m:math>
	  
	</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/" id="item3">Post multiply by to get 
	  <m:math>
	    <m:apply>
	      <m:power/>
	      <m:ci>W</m:ci>
	      <m:apply>
		<m:divide/>
		<m:apply>
		  <m:power/>
		  <m:ci>k</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply>  
	  </m:math> to get 
	  <m:math>
	    <m:apply>
	      <m:ci type="fn">X</m:ci>
	      <m:ci><m:msub><m:mi>z</m:mi><m:mi>k</m:mi></m:msub></m:ci>                 
	    </m:apply>
	  </m:math>.
	</item>
      </list>
    </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="para_5">
      <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="item1">1.</cnxn> and <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="item3">3.</cnxn> require <m:math><m:ci>N</m:ci></m:math>
      and <m:math><m:ci>M</m:ci></m:math> operations respectively.
      <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="item2">2.</cnxn> can be performed efficiently
      using fast convolution.

      <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="fig1002" orient="horizontal">
	<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="figure8.png"/> 
      </figure>
    </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="para_6">
      <m:math>
	<m:apply>
	  <m:power/>
	  <m:ci>W</m:ci>
	  <m:apply>
	    <m:minus/>
	    <m:apply>
	      <m:divide/>
	      <m:apply>
		<m:power/>
		<m:ci>n</m:ci>
		<m:cn>2</m:cn>
	      </m:apply>
	      <m:cn>2</m:cn>
	    </m:apply>
	  </m:apply>
	</m:apply>  
      </m:math> 
      is required only for
      <m:math>
	<m:apply>
	  <m:leq/> 
	  <m:apply>
	    <m:minus/>
	    <m:apply>
	      <m:minus/>  
	      <m:ci>N</m:ci>
	      <m:cn>1</m:cn>
	    </m:apply>
	  </m:apply>
	  <m:apply>
	    <m:leq/>
	    <m:ci>n</m:ci>
	    <m:apply>
	      <m:minus/>
              <m:ci>M</m:ci>
              <m:cn>1</m:cn>
	    </m:apply>
	  </m:apply>
	</m:apply> 
      </m:math>, so this linear convolution can be implemented with 
      <m:math>
	<m:apply>
	  <m:geq/> 
	  <m:ci>L</m:ci>
	  <m:apply>
	    <m:plus/>
	    <m:ci>N</m:ci>
	    <m:apply>
	      <m:minus/>
              <m:ci>M</m:ci>
              <m:cn>1</m:cn>
	    </m:apply>
	  </m:apply>
	</m:apply> 
      </m:math> FFTs.

      <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">
	Wrap 
	<m:math>
	  <m:apply>
	    <m:power/>
	    <m:ci>W</m:ci>
	    <m:apply>
	      <m:minus/>
	      <m:apply>
		<m:divide/>
		<m:apply>
		  <m:power/>
		  <m:ci>n</m:ci>
		  <m:cn>2</m:cn>
		</m:apply>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:apply>  
	</m:math> around L
	when implementing with circular convolution.
      </note>
      So, a weird-length <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="12032" target="DFTequation">DFT</cnxn> can be implemented relatively efficiently
      using power-of-two algorithms via the chirp-z transform.
    </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="para_7">
      Also useful for "zoom-FFTs".
    </para>
    
  </content>
  
</document>
