<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/technology/cnxml/schema/dtd/0.5/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="id15152667">
  <name>m26 - Calculation of the Fourier Transform and Fourier Series using the FFT</name>
  <metadata>
  <md:version>1.1</md:version>
  <md:created>2006/08/01 13:47:14.834 GMT-5</md:created>
  <md:revised>2006/09/17 13:35:11.056 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="cburrus">
      <md:firstname>C.</md:firstname>
      <md:othername>Sidney</md:othername>
      <md:surname>Burrus</md:surname>
      <md:email>csb@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="cburrus">
      <md:firstname>C.</md:firstname>
      <md:othername>Sidney</md:othername>
      <md:surname>Burrus</md:surname>
      <md:email>csb@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="kochelek">
      <md:firstname>Doug</md:firstname>
      
      <md:surname>Kochelek</md:surname>
      <md:email>kochelek@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>FFT</md:keyword>
    <md:keyword>Fourier series</md:keyword>
    <md:keyword>sampling</md:keyword>
  </md:keywordlist>

  <md:abstract>Using the high efficiency of the FFT allows the approximate calculation of the FT and FS</md:abstract>
</metadata>
  <content>
<para id="id15037792">
   
   
</para>
<section id="id14878335">
<name>Calculation of the Fourier Transform and Fourier Series
using the FFT</name>
<para id="id15023070">
   Most theoretical and mathematical analysis of signals and systems use the
   Fourier series, Fourier transform, Laplace transform, discrete-time Fourier
   transform (DTFT), or the z-transform, however, when we want to actually
   evaluate transforms, we calculate values at sample frequencies. In other
   words, we use the discrete Fourier transform (DFT) and, for efficiency,
   usually evaluate it with the FFT algorithm. An important question is how can
   we calculate or approximately calculate these symbolic formula-based
   transforms with our practical finite numerical tool. It would certainly seem
   that if we wanted the Fourier transform of a signal or function, we could
   sample the function, take its DFT with the FFT, and have some approximation to
   samples of the desired Fourier transform. We saw in the previous section that
   it is, in fact, possible provided some care is taken.
</para>
<para id="id8663721">
   Summary
</para>
<para id="id5960621">
   For the signal that is a function of a continuous variable we have
</para>
<para id="id7710599">
   
   
      
      
         
            FT:
            <m:math display="inline">
     <m:mrow>
       <m:mi>f</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>t</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mi>F</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>ω</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
         
         
            DTFT:
            <m:math display="inline">
     <m:mrow>
       <m:mi>f</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mrow>
           <m:mi>T</m:mi>
           <m:mo/>
           <m:mi>n</m:mi>
         </m:mrow>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mfrac>
           <m:mn>1</m:mn>
           <m:mi>T</m:mi>
         </m:mfrac>
         <m:mo/>
         <m:mrow>
           <m:msub>
             <m:mi>F</m:mi>
             <m:mi>p</m:mi>
           </m:msub>
           <m:mo/>
           <m:mrow>
             <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
             <m:mi>ω</m:mi>
             <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
           </m:mrow>
         </m:mrow>
       </m:mrow>
       <m:mo form="infix">=</m:mo>
       <m:mrow>
         <m:mfrac>
           <m:mn>1</m:mn>
           <m:mi>T</m:mi>
         </m:mfrac>
         <m:mo/>
         <m:mrow>
           <m:munder>
             <m:mo form="prefix" largeop="true" movablelimits="true">∑</m:mo>
             <m:mi>ℓ</m:mi>
           </m:munder>
           <m:mrow>
             <m:mi>F</m:mi>
             <m:mo/>
             <m:mrow>
               <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
               <m:mrow>
                 <m:mi>ω</m:mi>
                 <m:mo form="infix">+</m:mo>
                 <m:mrow>
                   <m:mn>2</m:mn>
                   <m:mo/>
                   <m:mi>π</m:mi>
                   <m:mo/>
                   <m:mrow>
                     <m:mi>ℓ</m:mi>
                     <m:mo form="infix">/</m:mo>
                     <m:mi>T</m:mi>
                   </m:mrow>
                 </m:mrow>
               </m:mrow>
               <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
             </m:mrow>
           </m:mrow>
         </m:mrow>
       </m:mrow>
     </m:mrow>
   </m:math>
         
         
            DFT:
            <m:math display="inline">
     <m:mrow>
       <m:msub>
         <m:mi>f</m:mi>
         <m:mi>p</m:mi>
       </m:msub>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mrow>
           <m:mi>T</m:mi>
           <m:mo/>
           <m:mi>n</m:mi>
         </m:mrow>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mfrac>
         <m:mn>1</m:mn>
         <m:mi>T</m:mi>
       </m:mfrac>
       <m:mo/>
       <m:mrow>
         <m:msub>
           <m:mi>F</m:mi>
           <m:mi>p</m:mi>
         </m:msub>
         <m:mo/>
         <m:mrow>
           <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
           <m:mrow>
             <m:mo form="prefix">Δ</m:mo>
             <m:mi>k</m:mi>
           </m:mrow>
           <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
         </m:mrow>
       </m:mrow>
     </m:mrow>
   </m:math>
            for
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mrow>
           <m:mo form="prefix">Δ</m:mo>
           <m:mi>T</m:mi>
         </m:mrow>
         <m:mo/>
         <m:mi>N</m:mi>
       </m:mrow>
       <m:mo form="infix">=</m:mo>
       <m:mrow>
         <m:mn>2</m:mn>
         <m:mo/>
         <m:mi>π</m:mi>
       </m:mrow>
     </m:mrow>
   </m:math>
         
      
   
</para>
<para id="id15152567">
    For the signal that is a
   function of a discrete variable we have
</para>
<para id="id7710221">
   
   
      
      
         
            DTFT:
            <m:math display="inline">
     <m:mrow>
       <m:mi>h</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>n</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mi>H</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>ω</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
         
         
            DFT:
            <m:math display="inline">
     <m:mrow>
       <m:msub>
         <m:mi>h</m:mi>
         <m:mi>p</m:mi>
       </m:msub>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>n</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mi>H</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mrow>
           <m:mo form="prefix">Δ</m:mo>
           <m:mi>k</m:mi>
         </m:mrow>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            for
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mo form="prefix">Δ</m:mo>
         <m:mi>N</m:mi>
       </m:mrow>
       <m:mo form="infix">=</m:mo>
       <m:mrow>
         <m:mn>2</m:mn>
         <m:mo/>
         <m:mi>π</m:mi>
       </m:mrow>
     </m:mrow>
   </m:math>
         
      
   
</para>
<para id="id8661446">
    For the periodic signal of a
   continuous variable we have
</para>
<para id="id8661457">
   
   
      
      
         
            FS:
            <m:math display="inline">
     <m:mrow>
       <m:mover accent="true">
         <m:mi>g</m:mi>
         <m:mo accent="true" form="postfix">˜</m:mo>
       </m:mover>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>t</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mi>C</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>k</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
         
         
            DFT:
            <m:math display="inline">
     <m:mrow>
       <m:mover accent="true">
         <m:mi>g</m:mi>
         <m:mo accent="true" form="postfix">˜</m:mo>
       </m:mover>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mrow>
           <m:mi>T</m:mi>
           <m:mo/>
           <m:mi>n</m:mi>
         </m:mrow>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mi>N</m:mi>
       <m:mo/>
       <m:mrow>
         <m:msub>
           <m:mi>C</m:mi>
           <m:mi>p</m:mi>
         </m:msub>
         <m:mo/>
         <m:mrow>
           <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
           <m:mi>k</m:mi>
           <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
         </m:mrow>
       </m:mrow>
     </m:mrow>
   </m:math>   for
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mi>T</m:mi>
         <m:mo/>
         <m:mi>N</m:mi>
       </m:mrow>
       <m:mo form="infix">=</m:mo>
       <m:mi>P</m:mi>
     </m:mrow>
   </m:math>
         
      
   
</para>
<para id="id6226595">
    For the sampled bandlimited
   signal we have
</para>
<para id="id6226607">
   
   
      
      
         
            Sinc:
            <m:math display="inline">
     <m:mrow>
       <m:mi>f</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mi>t</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mo form="infix">→</m:mo>
     </m:mrow>
   </m:math>
            <m:math display="inline">
     <m:mrow>
       <m:mi>f</m:mi>
       <m:mo/>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mrow>
           <m:mi>T</m:mi>
           <m:mo/>
           <m:mi>n</m:mi>
         </m:mrow>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
         
         
            
            
            
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mrow>
           <m:mi>f</m:mi>
           <m:mo/>
           <m:mrow>
             <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
             <m:mi>t</m:mi>
             <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
           </m:mrow>
         </m:mrow>
         <m:mo form="infix">=</m:mo>
         <m:mrow>
           <m:munder>
             <m:mo form="prefix" largeop="true" movablelimits="true">∑</m:mo>
             <m:mi>n</m:mi>
           </m:munder>
           <m:mrow>
             <m:mi>f</m:mi>
             <m:mo/>
             <m:mrow>
               <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
               <m:mrow>
                 <m:mi>T</m:mi>
                 <m:mo/>
                 <m:mi>n</m:mi>
               </m:mrow>
               <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
             </m:mrow>
           </m:mrow>
         </m:mrow>
       </m:mrow>
       <m:mtext mathcolor="black">sinc</m:mtext>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
         <m:mrow>
           <m:mrow>
             <m:mn>2</m:mn>
             <m:mo/>
             <m:mi>π</m:mi>
             <m:mo/>
             <m:mrow>
               <m:mi>t</m:mi>
               <m:mo form="infix">/</m:mo>
               <m:mi>T</m:mi>
             </m:mrow>
           </m:mrow>
           <m:mo form="infix">−</m:mo>
           <m:mrow>
             <m:mi>π</m:mi>
             <m:mo/>
             <m:mi>n</m:mi>
           </m:mrow>
         </m:mrow>
         <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
       </m:mrow>
     </m:mrow>
   </m:math>
         
         
            
            
            
            if
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mi>F</m:mi>
         <m:mo/>
         <m:mrow>
           <m:mo fence="true" form="prefix" stretchy="false">(</m:mo>
           <m:mi>ω</m:mi>
           <m:mo fence="true" form="postfix" stretchy="false">)</m:mo>
         </m:mrow>
       </m:mrow>
       <m:mo form="infix">=</m:mo>
       <m:mn>0</m:mn>
     </m:mrow>
   </m:math>
            for
            <m:math display="inline">
     <m:mrow>
       <m:mrow>
         <m:mo fence="true" form="prefix" stretchy="false">|</m:mo>
         <m:mi>ω</m:mi>
         <m:mo fence="true" form="postfix" stretchy="false">|</m:mo>
       </m:mrow>
       <m:mo form="infix">&gt;</m:mo>
       <m:mrow>
         <m:mn>2</m:mn>
         <m:mo/>
         <m:mrow>
           <m:mi>π</m:mi>
           <m:mo form="infix">/</m:mo>
           <m:mi>T</m:mi>
         </m:mrow>
       </m:mrow>
     </m:mrow>
   </m:math>
         
      
   
</para>
<para id="id14315872">
    These formulas summarize much
   of the relations of the Fourier transforms of sampled signals and how they
   might be approximately calculate with the FFT. We next turn to the use of
   distributions and strings of delta functions as tool to study sampling.
</para>
<para id="id3971407">
   
   
</para>
</section>
</content>
</document>
