<?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:m="http://www.w3.org/1998/Math/MathML" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="interpolation">

  <name>Interpolation</name>

  <metadata>
  <md:version>2.14</md:version>
  <md:created>2002/01/10</md:created>
  <md:revised>2005/10/01 15:14:14.178 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="schniter">
      <md:firstname>Phil</md:firstname>
      
      <md:surname>Schniter</md:surname>
      <md:email>schniter@ee.eng.ohio-state.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="jago">
      <md:firstname>Adan</md:firstname>
      
      <md:surname>Galvan</md:surname>
      <md:email>jago@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="emaloney">
      <md:firstname>Erin</md:firstname>
      
      <md:surname>Maloney</md:surname>
      <md:email>emaloney@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="schniter">
      <md:firstname>Phil</md:firstname>
      
      <md:surname>Schniter</md:surname>
      <md:email>schniter@ee.eng.ohio-state.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>CD</md:keyword>
    <md:keyword>compact disc</md:keyword>
    <md:keyword>digital audio</md:keyword>
    <md:keyword>interpolation</md:keyword>
    <md:keyword>interpolator</md:keyword>
    <md:keyword>oversampling</md:keyword>
    <md:keyword>upsampler</md:keyword>
    <md:keyword>upsampling</md:keyword>
    <md:keyword>zero-order hold</md:keyword>
  </md:keywordlist>

  <md:abstract>Introduction of interpolation and it's application.</md:abstract>
</metadata>




  <content>
    <section id="sec1">
      <name>Interpolation</name>

      <para id="para1">
Interpolation is the process of upsampling and filtering a signal to increase its effective sampling rate. To be more specific, say that
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">x</m:ci>
	    <m:ci>m</m:ci>
	  </m:apply>
	</m:math>
is an (unaliased) <m:math><m:ci>T</m:ci></m:math>-sampled version of 
	<m:math>
	  <m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>x</m:mi>
		      <m:mi>c</m:mi>
		    </m:msub>
		  </m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	</m:math>
and
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">v</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math>
is an <m:math><m:ci>L</m:ci></m:math>-upsampled version version of 
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">x</m:ci>
	    <m:ci>m</m:ci>
	  </m:apply>
	</m:math>.
If we filter 
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">v</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math>
with an ideal <m:math><m:apply><m:divide/><m:pi/><m:ci>L</m:ci></m:apply></m:math>-bandwidth lowpass filter (with DC gain <m:math><m:ci>L</m:ci></m:math>) to obtain 
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">y</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math>, then
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">y</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math>
will be a <m:math><m:apply><m:divide/> <m:ci>T</m:ci><m:ci>L</m:ci> </m:apply></m:math>-sampled version of 
	<m:math>
	  <m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>x</m:mi>
		      <m:mi>c</m:mi>
		    </m:msub>
		  </m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	</m:math>. This process is illustrated in <cnxn target="fig1" strength="9"/>.
      </para>
      <figure id="fig1">
	<media type="image/png" src="m10444fig1.png"/>
      </figure>



      <para id="para2">

We justify our claims about interpolation using frequency-domain arguments. 
From the sampling theorem, we know that <m:math><m:ci>T</m:ci></m:math>-
sampling 	<m:math>
	  <m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>x</m:mi>
		      <m:mi>c</m:mi>
		    </m:msub>
		  </m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	</m:math> to create
 	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">x</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply>
	</m:math> yields

<equation id="eq1">
	  <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">X</m:ci>
		  <m:apply>
		    <m:exp/>
		    <m:apply>
		      <m:times/>
		      <m:imaginaryi/>
		      <m:ci>ω</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:ci>T</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:sum/>
		    <m:bvar><m:ci>k</m:ci></m:bvar>
		    <m:condition><m:ci>k</m:ci></m:condition>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>X</m:mi>
			  <m:mi>c</m:mi>
			</m:msub>
		      </m:ci>
		      <m:apply>
                  <m:times/>
                  <m:imaginaryi/>
                  <m:apply>
			<m:divide/>
			<m:apply>
			  <m:minus/>
			  <m:ci>ω</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:cn>2</m:cn>
			    <m:pi/>
			    <m:ci>k</m:ci>
			  </m:apply>
			</m:apply>
			<m:ci>T</m:ci>
		      </m:apply>
                 </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	  </m:math>
</equation>

After upsampling by factor <m:math><m:ci>L</m:ci></m:math>, 
<cnxn target="eq1" strength="9"/> implies

	  <m:math display="block">
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">V</m:ci>
		  <m:apply>
		    <m:exp/>
		    <m:apply>
		      <m:times/>
		      <m:imaginaryi/>
		      <m:ci>ω</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:ci>T</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:sum/>
		    <m:bvar><m:ci>k</m:ci></m:bvar>
		    <m:condition><m:ci>k</m:ci></m:condition>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>X</m:mi>
			  <m:mi>c</m:mi>
			</m:msub>
		      </m:ci>
		      <m:apply>
                  <m:times/>
                  <m:imaginaryi/>
                  <m:apply>
			<m:divide/>
			<m:apply>
			  <m:minus/>
                      <m:apply>
                      <m:times/>
                        <m:ci>ω</m:ci>
                        <m:ci>L</m:ci>
                      </m:apply> 
			  <m:apply>
			    <m:times/>
			    <m:cn>2</m:cn>
			    <m:pi/>
			    <m:ci>k</m:ci>
			  </m:apply>
			</m:apply>
			<m:ci>T</m:ci>
		      </m:apply>
                 </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>

         	<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:cn>1</m:cn>
		    <m:ci>T</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:sum/>
		    <m:bvar><m:ci>k</m:ci></m:bvar>
		    <m:condition><m:ci>k</m:ci></m:condition>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>X</m:mi>
			  <m:mi>c</m:mi>
			</m:msub>
		      </m:ci>
		      <m:apply>
                  <m:times/>
                  <m:imaginaryi/>
                  <m:apply>
			<m:divide/>
			<m:apply>
			  <m:minus/>
			  <m:ci>ω</m:ci>
			  <m:apply>
			    <m:times/>
                    <m:apply>
                      <m:divide/>
			  <m:apply>
			    <m:times/>
			    <m:cn>2</m:cn>
			    <m:pi/>
                    </m:apply>
                     <m:ci>L</m:ci>
                     </m:apply> 
			    <m:ci>k</m:ci>
			  </m:apply>
			</m:apply>
                 <m:apply>
                  <m:divide/>
			<m:ci>T</m:ci>
                  <m:ci>L</m:ci>
                 </m:apply>
		      </m:apply>
                 </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
		</m:apply>
	  </m:math>

Lowpass filtering with cutoff <m:math><m:apply><m:divide/>
<m:pi/><m:ci>L</m:ci></m:apply></m:math> and gain
<m:math><m:ci>L</m:ci></m:math> yields


	  <m:math display="block">
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">Y</m:ci>
		  <m:apply>
		    <m:exp/>
		    <m:apply>
		      <m:times/>
		      <m:imaginaryi/>
		      <m:ci>ω</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
         	<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:ci>L</m:ci>
		    <m:ci>T</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:sum/>
		  <m:bvar>
	    <m:apply>
	    <m:eq/>
            <m:apply>
            <m:in/>
		  <m:apply>
	        <m:divide/>
		    <m:ci>k</m:ci><m:ci>L</m:ci>
	        </m:apply>
		   <m:integers/>
	      </m:apply>
	    </m:apply>
	  </m:bvar>
	  <m:condition>
		<m:apply><m:in/>
		  <m:apply>
        	  <m:divide/>
                <m:ci>k</m:ci>
                <m:ci>L</m:ci>
		  </m:apply>
		  <m:integers/>
	    </m:apply>
	  </m:condition>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>X</m:mi>
			  <m:mi>c</m:mi>
			</m:msub>
		      </m:ci>
		      <m:apply>
                  <m:times/>
                  <m:imaginaryi/>
                  <m:apply>
			<m:divide/>
			<m:apply>
			  <m:minus/>
			  <m:ci>ω</m:ci>
			  <m:apply>
			    <m:times/>
                    <m:apply>
                      <m:divide/>
			  <m:apply>
			    <m:times/>
			    <m:cn>2</m:cn>
			    <m:pi/>
                    </m:apply>
                     <m:ci>L</m:ci>
                     </m:apply> 
			    <m:ci>k</m:ci>
			  </m:apply>
			</m:apply>
                 <m:apply>
                  <m:divide/>
			<m:ci>T</m:ci>
                  <m:ci>L</m:ci>
                 </m:apply>
		      </m:apply>
                 </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>

          	<m:apply>
		  <m:times/>
		  <m:apply>
		    <m:divide/>
		    <m:ci>L</m:ci>
		    <m:ci>T</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:sum/>
		    <m:bvar><m:ci>l</m:ci></m:bvar>
	         <m:condition><m:ci>l</m:ci></m:condition>
		    <m:apply>
		      <m:ci type="fn">
			<m:msub>
			  <m:mi>X</m:mi>
			  <m:mi>c</m:mi>
			</m:msub>
		      </m:ci>
		      <m:apply>
                  <m:times/>
                  <m:imaginaryi/>
                  <m:apply>
			<m:divide/>
			<m:apply>
			  <m:minus/>
			  <m:ci>ω</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:cn>2</m:cn>
			    <m:pi/>
			    <m:ci>l</m:ci>
			  </m:apply>
			</m:apply>
                 <m:apply>
                  <m:divide/>
			<m:ci>T</m:ci>
                  <m:ci>L</m:ci>
                 </m:apply>
		      </m:apply>
                 </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
		</m:apply>
	  </m:math>

since the spectral copies with indices other than <m:math><m:apply>
<m:eq/><m:ci>k</m:ci><m:apply><m:times/><m:ci>l</m:ci><m:ci>L</m:ci>
</m:apply></m:apply></m:math> (for <m:math><m:apply><m:in/><m:ci>
l</m:ci><m:integers/></m:apply></m:math>) are removed. 
Clearly, this process yields a <m:math><m:apply><m:divide/><m:ci>
T</m:ci><m:ci>L</m:ci></m:apply></m:math>-shaped version of
 	<m:math>
	  <m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>x</m:mi>
		      <m:mi>c</m:mi>
		    </m:msub>
		  </m:ci>
	    <m:ci>t</m:ci>
	  </m:apply>
	</m:math>.
<cnxn target="fig2" strength="9"/> illustrates these frequency-domain arguments for 
<m:math><m:apply><m:eq/><m:ci>L</m:ci><m:cn>2</m:cn></m:apply></m:math>.

      </para>
      <figure id="fig2">
	<media type="image/png" src="m10444fig2.png"/>
      </figure>


    </section>

   

  </content>
</document>
