<?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="m10161">

  <name>DSP Notation</name>
  
  <metadata>
  <md:version>2.6</md:version>
  <md:created>2001/07/02</md:created>
  <md:revised>2002/06/18 00:00:00.006 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="rha">
      <md:firstname>Roy</md:firstname>
      
      <md:surname>Ha</md:surname>
      <md:email>rha@rice.edu</md:email>
    </md:author>
      <md:author id="mjhaag">
      <md:firstname>Michael</md:firstname>
      
      <md:surname>Haag</md:surname>
      <md:email>mjhaag@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="rha">
      <md:firstname>Roy</md:firstname>
      
      <md:surname>Ha</md:surname>
      <md:email>rha@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>DSP</md:keyword>
    <md:keyword>signal</md:keyword>
    <md:keyword>digital</md:keyword>
    <md:keyword>signal processing</md:keyword>
    <md:keyword>notation</md:keyword>
  </md:keywordlist>

  <md:abstract>A description of the recommended notation for use with digital signal processing modules submitted to the Connexions project.</md:abstract>
</metadata>

  <content>
    <section id="s1">
      <name>Introduction</name>

      <para id="para1">
	Within the <link src="http://cnx.rice.edu">Connexions
	Project</link>, <link src="http://www.w3.org/Math">MathML</link> content has been
	chosen to render mathematical expressions.  Although most
	common expressions can be rendered using MathML, it is known
	that not all expressions are supported.  New notations are
	constantly being developed and various academic communities
	often use specialized notations.  The evolution of MathML is
	an understandably slow process.  Because of the diversity of
	languages and academic cultures, it is impossible to encode
	all of the possible notations or even the bulk of mathematical
	notation in MathML content.  However, seeing the necessity for
	extensibility, the MathML recommendation allows for extensions
	to be written for MathML using the <code>csymbol</code> tag.
	A list of extensions written by the Connexions Project can be
	found on
	<link src="http://mountainbunker.org/wikis/mathml/CSymbol">
	  Mountainbunker</link>.
      </para>

    </section>

    <section id="s2">
      <name>XSL Transformations and Macros</name>

      <para id="para2">
	Although certain types of content may be supported by MathML, authors
	may wish to a notational rendering different from the default without
	altering the <emphasis>meaning</emphasis> of the mathematics. 
	<link src="http://www.w3.org/Style/XSL">XSL transformations</link>
	can be used to bind different notation to MathML content tags without
	altering their semantics.<!-- In a similar fashion, macros can be written 
	as abbreviations for commonly used mathematical expressions.  Until 
	acceptable MathML content editors are available, such macros would
	facilitate writing mathematical expressions by hand.  An XSLT
	stylesheet could be written for extensions, macros, and presentation of
	MathML content.-->
      </para>
    </section>

    <section id="s3">
      <name>Signal Processing Notation</name>

      <para id="para3">
	The Connexions project is not yet able to support author
	written XSLT stylesheets, and the rendering of different
	notations is not yet possible.  Therefore, a recommended notation is
	presented which is to be used until on-the-fly rendering of author
	stylesheets is supported by Connexions software.  Examples of
	MathML code are included for each notation to help the use the
	correct notation and MathML code.
      </para>

      <!-- Other possible canidates to be included:
            - Mean
            - Auto/Cross correlation
            - Power Spectrum
            - Expected Value
      -->

      <para id="para3a">
	Below is a quick-reference table of the notation we recommend
	for the content whose correct notation is often found written
	with various variables and symbols.  Click on any of the
	content names to be taking to a brief discussion of it and
	<emphasis>example code</emphasis> of how to mark-up the MathML
	correctly.
      </para>
      
      <table frame="all" id="content">
	<name>Recommended Notation</name>
	<tgroup cols="3" align="left" colsep="1" rowsep="1">
	  <thead valign="top">
	    <row>
	      <entry align="center">Content</entry>
	      <entry align="center">Continuous-Time Notation</entry>
	      <entry align="center">Discrete-Time Notation</entry>
	    </row>
	  </thead>
	  <tbody valign="top">
	    <row>
	      <entry align="center"><cnxn target="s3_1" strength="6">Time</cnxn></entry>
	      <entry align="center">
		<m:math display="inline"><m:ci>t</m:ci></m:math>
	      </entry>
	      <entry align="center">
		<m:math display="inline"><m:ci>n</m:ci></m:math>
	      </entry>
	    </row>
	    <row>
	      <entry align="center">
		<cnxn target="s3_2" strength="6">Frequency</cnxn>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>f</m:ci></m:math> (HZ)
	      </entry>
	      <entry align="center">
		<m:math><m:ci>v</m:ci></m:math> (cycles/sample)
	      </entry>
	    </row>
	    <row>
	      <entry align="center">
		<cnxn target="s3_2" strength="6">Angular Frequency</cnxn>
	      </entry>
	      <entry align="center">
		<m:math><m:ci>Ω </m:ci></m:math> (rad/sec)
	      </entry>
	      <entry align="center">
		<m:math><m:ci>ω </m:ci></m:math> (rad/sample)
	      </entry>
	    </row>
	    <row>
	      <entry align="center">
		<cnxn target="s3_3" strength="6">Signal</cnxn>
	      </entry>
	      <entry align="center">
		<m:math>
		  <m:apply>
		    <m:ci type="function">x</m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math>
		  <m:apply>
		    <m:ci type="function" class="discrete">x</m:ci>
		    <m:ci>n</m:ci>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>
	    <row>
	      <entry align="center">
		<cnxn target="s3_8" strength="6">Fourier Transform</cnxn>
	      </entry>
	      <entry align="center">
		<m:math display="inline">
		  <m:apply>
		    <m:ci type="function">X</m:ci>
		    <m:ci>Ω</m:ci>
		  </m:apply>
		</m:math>
	      </entry>
	      <entry align="center">
		<m:math display="inline">
		  <m:apply>
		    <m:ci type="function">X</m:ci>
		    <m:ci>ω</m:ci>
		  </m:apply>
		</m:math>
	      </entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>


      <para id="para33a">
	A listing of all notation presented in this module.
	<list id="list2" type="enumerated">
	  <item><cnxn target="s3_1" strength="6">Time</cnxn></item>
	  <item><cnxn target="s3_2" strength="6">Frequency</cnxn></item>
	  <item><cnxn target="s3_3" strength="6">Signal</cnxn></item>
	  <item><cnxn target="s3_4" strength="6">Special signals</cnxn>
	    <list id="list2a" type="enumerated">
	      <item><cnxn target="s3_4_1" strength="6">Impulse</cnxn></item>
	      <item><cnxn target="s3_4_2" strength="6">Unit Step</cnxn></item>
<!--	      <item><cnxn target='s3_4_3' strength='6'>Ramp</cnxn></item>
	      <item><cnxn target='s3_4_4' strength='6'>Sign</cnxn></item>
-->	      <item><cnxn target="s3_4_5" strength="6">Sinc</cnxn></item>
	    </list>
	  </item>
	  <item><cnxn target="s3_5" strength="6">Norm</cnxn></item>
	  <item><cnxn target="s3_6" strength="6">Convolution</cnxn>
	    <list id="list2cc" type="enumerated">
	      <item><cnxn target="circonv" strength="6">Circular Convolution</cnxn></item>
	    </list>
	  </item>
	  <item><cnxn target="s3_7" strength="6">Twiddle Factor</cnxn></item>
	  <item><cnxn target="s3_8" strength="6">Fourier Transform</cnxn>
	    <list id="list2b" type="enumerated">
	      <item><cnxn target="s3_8_1" strength="6">CTFT</cnxn></item>
	    </list>
	  </item>
	  <item><cnxn target="s3_9" strength="6">Laplace Transform</cnxn></item>
	  <item><cnxn target="s3_10" strength="6">Z-Transform</cnxn></item>
	  <item><cnxn target="s3_11" strength="6">Complex Numbers</cnxn></item>
	  <item><cnxn target="s3_12" strength="6">Inner Product</cnxn></item>
	</list>
      </para>

      <section id="s3_1">
	<name>Time</name>

	<para id="para4">
	  It is suggested that <m:math><m:ci>t</m:ci></m:math> be used
	  as the continuous variable of time and that
	  <m:math><m:ci>n</m:ci></m:math> be used as the discrete
	  variable of time.
	</para>

	<example id="s1_e1">
	  <name>MathML Mark-Up</name>
	  <code type="block" id="c1">
	    <![CDATA[
	  <m:math><m:ci>t</m:ci></m:math>
	    
	  <m:math><m:ci>n</m:ci></m:math>
	    ]]>
	  </code>
	</example>

	<section id="s3_sub1">
	  <name>Period</name>
	  <para id="p1_prd">
	    For discrete-time, periodic functions, we recommend that a
	    capital T, <m:math><m:ci>T</m:ci> </m:math>, be used to
	    denote the period, or sampling period, of a signal.
	  </para>
	</section>
      </section>

      <section id="s3_2">
	<name>Frequency</name>

	<para id="para5">
	  Like time, frequency can be represented as a continuous or
	  as a discrete variable.  It is recommended that <m:math display="inline"><m:ci>f</m:ci></m:math> Hz be used for the
	  continuous variable of frequency and that <m:math display="inline"><m:ci>v</m:ci></m:math> cycles/sample be used
	  as a discrete variable.  Further, frequency may be further
	  limited in the discrete case to taking a limited number of
	  values (as in the case of the discrete Fourier transform).
	  In these cases, it is recommended that <m:math display="inline"><m:ci>k</m:ci></m:math> is used.
	  Corresponding to the continuous variable, an appropriate
	  radian measure would be
	  <m:math display="inline">
	    <m:apply>
	      <m:eq/>
              <m:ci>Ω</m:ci>
              <m:apply>
                <m:times/>
		<m:cn>2</m:cn>
		<m:cn>π</m:cn>
		<m:ci>f</m:ci>
              </m:apply>
	    </m:apply>
	  </m:math> rad/sec
	  and for the discrete case
	  <m:math display="inline">
	    <m:apply>
	      <m:eq/>
              <m:ci>ω</m:ci>
              <m:apply>
                <m:times/>
		<m:cn>2</m:cn>
		<m:cn>π</m:cn>
		<m:ci>v</m:ci>
              </m:apply>
	    </m:apply>
	  </m:math> rad/sample.  These last two notations are extremely
	  important as they are seen in most Fourier Transforms and
	  other signal and processing equations.  See the code below for
	  example MathML mark-up.
	</para>

	<example id="s2_e2">
	  <name>MathML Mark-Up</name>

	  <code type="block" id="c2">
	    <![CDATA[
	  <!-- Radian Freq in Continuous Time -->
	  <m:math><m:ci>&Omega;</m:ci></m:math>
	   
          <!-- Radian Freq in Discrete Time -->
	  <m:math><m:ci>&omega</m:ci></m:math>
	    ]]>
	  </code>

	</example>
      </section>

      <section id="s3_3">
	<name>Signal</name>

	<para id="para6">
	  It is sometimes useful to describe an arbitrary signal, or an
	  input/output relationship.  In such cases, it is recommended
	  that
	  <m:math display="inline">
	    <m:ci type="vector">f</m:ci>
	  </m:math>
	  be used to represent a generic signal.  For an input/output
	  relationship, use <m:math display="inline"> <m:ci type="vector">x</m:ci> </m:math> as an arbitrary input
	  signal and <m:math display="inline"> <m:ci type="vector">y</m:ci> </m:math> as the arbitrary output
	  signal.  When writing out the signal as a function of some
	  variable, such as time, it can be represented as
	  
	  <m:math>
	    <m:apply>
	      <m:ci type="function">x</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>

	  for continuous-time signals and as
	  <m:math>
	    <m:apply>
	      <m:ci type="function" class="discrete">x</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math>
	  for discrete-time signals.
	</para>

	<example id="s3_e1">
	  <name>MathML Mark-Up</name>
	  <para id="dummy_p"/>
	  <para id="p1_e2">
	    For a continuous-time signal,  <m:math>
	    <m:apply>
	      <m:ci type="function">x</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>:
	  </para>

	  <code type="block" id="c3a">
	    <![CDATA[
	  <m:math>
	    <m:apply>
	      <m:ci type="function">x</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>
	     ]]>
	  </code>

	  <para id="p2_e2">
	    For a discrete-time signal, <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">x</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math>:
	  </para>
	  
	  <code type="block" id="c3b">
	    <![CDATA[
	  <m:math>
	    <m:apply>
	      <m:ci type="fn" class="discrete">x</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:math>
	    ]]>
	  </code>

	</example>
      </section>

      <section id="s3_4">
	<name>Special Signals</name>
	<para id="para7">
	  There are several signals used often enough to merit special
	  attention.  They are presented here.
	</para>

	<section id="s3_4_1">
	  <name>Impulse</name>
	  <para id="para7_1">
	    The impulse, or <cnxn document="m10059" strength="8">Dirac-Delta function</cnxn>, should be
	    presented as
	    
	    <m:math display="block">
	      <m:apply>
		<m:ci type="fn">δ</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math>
	   
	    in continuous-time and as

	    <m:math display="block">
	      <m:apply>
		<m:ci type="fn" class="discrete">δ</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	    </m:math>
	    in discrete-time.

	    <note type="aside">The impulse is a signal which could be
	      given a definitionURL, which in conjunction with
	      <code>csymbol</code> would allow us to
	      facilitate the coding of the mathematical
	      expression.<!-- , probably given by
	      <code>&lt;impulse/&gt;</code>-->
	    </note>
	  </para>

	  <example id="s4_e1">
	    <name>MathML Mark-Up</name>
	    
	    <code type="block" id="c4a">
	      <![CDATA[
	    <!-- Continuous Time -->
	    <m:math>
	      <m:apply>
	        <m:ci type='fn'>&delta;</m:ci>
	        <m:ci>t</m:ci>
	      </m:apply>
	    </m:math>
	      ]]>
	    </code>

	      <code type="block" id="c4b">
	      <![CDATA[
	    <!-- Discrete Time -->
	    <m:math>
	      <m:apply>
	        <m:ci type='fn' class='discrete'>&delta;</m:ci>
	        <m:ci>n</m:ci>
	      </m:apply>
	    </m:math>
	      ]]>
	    </code>
	  </example>

	</section>

	<section id="s3_4_2">
	  <name>Unit Step</name>
	  <para id="para7_2">
	    The unit step should be presented as
	    <m:math display="block">
	      <m:apply>
		<m:ci type="function">u</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math>

	    in continuous-time and as
	    <m:math display="block">
	      <m:apply>
		<m:ci type="fn" class="discrete">u</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	    </m:math>

	    in discrete-time.  These functions will be marked-up in
	    MathML the same as the delta function above; however,
	    rather than the <m:math><m:ci>δ</m:ci>
	    </m:math> symbol you will use <m:math><m:ci>u</m:ci>
	    </m:math>.

	    <note type="aside">
	      The unit step is a signal which could be given a
	      definitionURL, which in conjunction with
	      <code>csymbol</code> would allow us to
	      facilitate the coding of the mathematical expression.
	    </note>
	  </para>
	</section>

<!-- 6/11/02 : Do not think these fuctions need to be included as are -->
<!-- not really standard functions used in other situations.
  

	<section id="s3_4_3">
	  <name>Ramp</name>
	  <para id="para7_3">
	    ???? 
	    <-(Should this be included?) ???? -
	  </para>
	</section>

	<section id="s3_4_4">
	  <name>Sign</name>
	  <para id="para7_4">
	    ????
	    <- What is a sign function? -
	  </para>
	</section>
-->
	<section id="s3_4_5">
	  <name>Sinc</name>
	  <para id="para7_5">
	    The sinc function should be represented as
	    <equation id="eq7_3">
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
                  <m:apply>
                    <m:ci type="function">sinc</m:ci>
                    <m:ci>x</m:ci>
                  </m:apply>
                  <m:apply>
                    <m:divide/>
		    <m:apply>
		      <m:sin/>
		      <m:ci>x</m:ci>
		    </m:apply>
		    <m:ci>x</m:ci>
                  </m:apply>
		</m:apply>
	      </m:math>
	    </equation>

	    <note type="aside">
	      The sinc function is a signal which could be given a
	      definitionURL, which in conjunction with
	      <code>csymbol</code> would allow us to
	      facilitate the coding of the mathematical expression.
	      This has not happened yet so, for now, we are using the
	      following markup: <!--, probably given by
	      <code>&lt;sinc/&gt;</code>.-->
	    </note>
	  </para>

	  <example id="s5_e1">
	    <name>MathML Mark-Up</name>
	    
	    <code type="block" id="c5a">
	      <![CDATA[
	    <m:math>
	      <m:apply>
	        <m:ci type='fn'>sinc</m:ci>
	        <m:ci>x</m:ci>
	      </m:apply>
	    </m:math>
	      ]]>
	    </code>

	  </example>
	</section>
      </section>


      <section id="s3_5">
	<name>Norm</name>
	<para id="para8">
	  The norm of a vector or function should be represented as
	  <m:math display="inline">
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
	      <m:ci type="vector">x</m:ci>
	    </m:apply>
	  </m:math>
	   
<!--
	    <m:ci>
	      <m:mrow>
		<m:mo>&Verbar;</m:mo>
		<m:mi fontweight="bold">x</m:mi>
		<m:mo>&Verbar;</m:mo>
	      </m:mrow>
	    </m:ci>
	  </m:math>.  -->

	  For instance, the Euclidean norm (sometimes called the
	  L2-norm) of a vector should be given by

	<!-- HACK: requires lots of presentation to mark up norm, 
	  see if there might be a better way. --> 

      <equation id="eq8">
	<m:math display="block">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
	      <m:ci>x</m:ci>
	    </m:apply>
	      <m:apply>
                  <m:root/>
		  <m:apply>
		    <m:sum/>
		    <m:bvar>
		      <m:ci>i</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:cn>1</m:cn>
		    </m:lowlimit>
		    <m:uplimit>
		      <m:ci>N</m:ci>
		    </m:uplimit>
		    <m:apply>
		      <m:power/>
		      <m:apply>
			<m:selector/>
			<m:ci type="vector">x</m:ci>
			<m:ci>i</m:ci>
		      </m:apply>
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
                </m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  <note type="aside">The norm operator has been given a
	    csymbol but are still working on the rendering of it.  The
	    correct code can be seen below and was used to mark-up the
	    first instance of the norm of <m:math><m:ci type="vector">x</m:ci></m:math> in the above paragraph.
	  </note>
	</para>
	
	<example id="s6_norme1">
	  <name>MathML Mark-Up</name>
	  
	  <code type="block" id="c_norm">
	    <![CDATA[	    
	  <m:math>
	    <m:apply>
	      <m:csymbol definitionURL='http://cnx.rice.edu/cd/cnxmath.ocd#norm'/>
	      <m:ci type='vector'>x</m:ci>
	    </m:apply>
	  </m:math>	    
	    ]]>
	  </code>
	</example>     
      </section>

      <section id="s3_6">
	<name>Convolution</name>
	<para id="para9">
	  <cnxn document="m10085" strength="8">Convolution</cnxn> is
	  given by and should be displayed as

	  <equation id="eq9">
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
		  <m:ci>f</m:ci>
		  <m:ci>g</m:ci>
		</m:apply>
                <m:apply>
                  <m:int/>
		  <m:bvar>
		    <m:ci>τ</m:ci>
		  </m:bvar>
		  <m:lowlimit>
		    <m:apply>
		      <m:minus/>
		      <m:infinity/>
		    </m:apply>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:infinity/>
		  </m:uplimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="function">f</m:ci>
		      <m:ci>τ</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:ci type="function">g</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>t</m:ci>
			<m:ci>τ</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
                </m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  <note type="aside">The convolution operator is defined by a
	    <code>csymbol</code> which can be used through the
	    following CNXML/MathML code. 
	  </note>
	</para>
	
	<example id="s6_e1">
	  <name>MathML Mark-Up</name>
	  
	  <code type="block" id="c6_conv">
	    <![CDATA[	    
	  <m:math>
	    <m:apply>
	      <m:csymbol definitionURL='http://cnx.rice.edu/cd/cnxmath.ocd#convolve'/>
	      <m:ci>f</m:ci>
	      <m:ci>g</m:ci>
	    </m:apply>
	  </m:math>	    
	    ]]>
	  </code>
	</example>     

	<section id="circonv">
	  <name>Circular Convolution</name>
	  <para id="p1_circon">
	    Standard notation for <cnxn document="m12053">circular
	    convolution</cnxn>, or periodic convolution, uses a
	    circled asterick, <m:math><m:ci>⊛</m:ci>
	    </m:math>, between two variables or functions.  See the
	    equation below as an example:
	    
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">y</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	    <m:apply>
	      <m:ci><m:mo>⊛</m:mo></m:ci>
		  <m:apply>
		    <m:ci type="fn">f</m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">g</m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>

	    Although a <code>csymbol</code> for regular
	    convolution exists, there is still not a proper
	    mathematical way to mark-up circular convolution.  Until a
	    csymbol or MathML tag is created, we advise using the
	    following code:
	  </para>

	  <code type="block" id="c6a_circconv">
	    <![CDATA[	    
	  <m:math>
	    <m:apply>
	      <m:ci><m:mo>&circledast;</m:mo></m:ci>
	      <m:ci>f</m:ci>
	      <m:ci>g</m:ci>
	    </m:apply>
	  </m:math>	    
	    ]]>
	  </code>

	</section>
      </section>
      
      <section id="s3_7">
	<name>Twiddle Factor</name>
	<para id="para10">
	  The Twiddle factor should be displayed as
	  <equation id="eq10">
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
                <m:ci>
                  <m:msub>
                    <m:mi>W</m:mi>
                    <m:mi>N</m:mi>
                  </m:msub>
                </m:ci>
                <m:apply>
                  <m:exp/>
		  <m:apply>
		    <m:minus/>
		    <m:apply>
		      <m:divide/>
		      <m:apply>
			<m:times/>
			<m:imaginaryi/>
			<m:cn>2</m:cn>
			<m:pi/>
		      </m:apply>
		      <m:ci>N</m:ci>
		    </m:apply>
		  </m:apply>
                </m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	  <note type="aside">The twiddle factor could be given a
	    definitionURL, which in conjunction with, probably given
	    by <code>&lt;twiddle/&gt;</code>.
	  </note>
	</para>

	<example id="s7_e1">
	  <name>MathML Mark-Up</name>
	  
	  <code type="block" id="c7_twid">
	    <![CDATA[	    
	  <m:math>
	    <m:ci>
	      <m:msub>
	        <m:mi>W</m:mi>
	        <m:mi>N</m:mi>
	      </m:msub>
	    </m:ci>
	  </m:math>	    
	    ]]>
	  </code>
	</example> 	
      </section>


      <section id="s3_8">
	<name>Fourier Transform</name>
	<para id="para11">
	  Although the concept of the <cnxn document="m0046" strength="6">Fourier transform</cnxn> is well-known, there are
	  variations in the precise definition of the transform.  It
	  is recommended that the following notation be used for the
	  Fourier transform.  Which particular transform is used
	  (discrete Fourier transform, continuous-time Fourier series,
	  discrete-time Fourier transform, etc) should be apparent
	  from context (these all assume that <m:math display="inline"><m:ci type="vector">x</m:ci></m:math> is the
	  function to be transformed):
	</para>	

	<list id="list1">
	  <item>
	    CTFT:
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="function">X</m:ci>
		<m:ci>Ω</m:ci>
	      </m:apply>
	    </m:math>
	  </item>
	</list>
	
	<code type="block" id="c8_FTa">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
  	    <m:ci type='fn'>X</m:ci>
	    <m:ci>&Omega;</m:ci>
	  </m:apply
	</m:math>	    
	  ]]>
	</code>
	
	<list id="lista2">
	  <item>
	    DTFT:
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="function">X</m:ci>
		<m:ci>ω</m:ci>
	      </m:apply>
	    </m:math>
	  </item>
	</list>

	<code type="block" id="c8_FTb">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
  	    <m:ci type='fn'>X</m:ci>
	    <m:ci>&omega;</m:ci>
	  </m:apply
	</m:math>	    
	  ]]>
	</code>

	<list id="lista3">
	  <item>
	    DFT:
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="fn" class="discrete">X</m:ci>
		<m:ci>n</m:ci>
	      </m:apply>
	    </m:math>
	  </item>
	</list>

	<code type="block" id="c8_FTc">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
  	    <m:ci type='fn' class='discrete'>X</m:ci>
	    <m:ci>n</m:ci>
	  </m:apply
	</m:math>	    
	  ]]>
	</code>

	<para id="p1_note">
	  <note type="aside">
	    The Fourier operator ℱ[·] could be given
	    a definitionURL, which in conjunction with
	    <code>csymbol</code> would allow us to facilitate
	    the coding of the mathematical expression.<!--, probably
	    given by <code>&lt;fourier/&gt;</code>.-->
	  </note>
	</para>

	<section id="s3_8_1">
	  <name>CTFT</name>
	  <para id="para11_1">
	    There are a few ways of describing the Fourier transform.  The 
	    recommended notation for the transform is given as:
	    <equation id="eq11">
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
                  <m:apply>
                    <m:ci type="function">X</m:ci>
                    <m:ci>Ω</m:ci>
                  </m:apply>
                  <m:apply>
                    <m:int/>
		    <m:bvar>
		      <m:ci>t</m:ci>
		    </m:bvar>
		    <m:lowlimit>
		      <m:apply>
			<m:minus/>
			<m:infinity/>
		      </m:apply>
		    </m:lowlimit>
		    <m:uplimit>
		      <m:infinity/>
		    </m:uplimit>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:ci type="function">x</m:ci>
			<m:ci>t</m:ci>
		      </m:apply>
		      <m:apply>
			<m:exp/>
			<m:apply>
			  <m:minus/>
			  <m:apply>
			    <m:times/>
			    <m:imaginaryi/>
			    <m:ci>Ω</m:ci>
			    <m:ci>t</m:ci>
			  </m:apply>
			</m:apply>
		      </m:apply>
		    </m:apply>
                  </m:apply>
		</m:apply>
	      </m:math>
	    </equation>

	  </para>
	</section>
      </section>

      <section id="s3_9">
	<name>Laplace Transform</name>
	<para id="para12">
	  The Laplace transform is defined as
	  <equation id="eq12">
	    <m:math display="block">
	      <m:apply>
		<m:eq/>               
                <m:apply>
		  <m:ci type="fn" class="discrete">ℒ</m:ci>
		  <m:apply>
		    <m:ci type="fn">x</m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
                </m:apply>
		<m:apply>
                  <m:ci type="function">X</m:ci>
                  <m:ci>s</m:ci>
                </m:apply>
                <m:apply>
                  <m:int/>
		  <m:bvar>
		    <m:ci>t</m:ci>
		  </m:bvar>
		  <m:lowlimit>
		    <m:apply>
		      <m:minus/>
		      <m:infinity/>
		    </m:apply>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:infinity/>
		  </m:uplimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="function">x</m:ci>
		      <m:ci>t</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:exp/>
		      <m:apply>
			<m:minus/>
			<m:apply>
			  <m:times/>
			  <m:ci>s</m:ci>
			  <m:ci>t</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
                </m:apply>
	      </m:apply>
	    </m:math>
	  </equation>
	  where 
	  <m:math display="inline">
	    <m:apply>
	      <m:eq/>
              <m:ci>s</m:ci>
              <m:apply>
                <m:plus/>
		<m:ci>σ</m:ci>
		<m:apply>
		  <m:times/>
		  <m:imaginaryi/>
		  <m:ci>Ω</m:ci>
		</m:apply>
              </m:apply>
	    </m:apply>
	  </m:math>
	  is the complex frequency.  The unilateral Laplace transform,
	  or one-side Laplace, is defined exactly the same but the
	  lowlimit of the integral is <m:math><m:cn>0</m:cn> </m:math>
	  rather than <m:math><m:apply><m:minus/><m:infinity/>
	    </m:apply>
	  </m:math>.

	  <note type="aside">The Laplace operator ℒ[·]
	    could be given a definitionURL, which in conjunction with
	    <code>csymbol</code> would allow us to facilitate
	    the coding of the mathematical expression.
	  </note>
	</para>

	<code type="block" id="c9_lap">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">&Lscr;</m:ci>
	    <m:apply>
	      <m:ci type="fn">x</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>	    
	  ]]>
	</code>
      </section>

      <section id="s3_10">
	<name>z-transform</name>
	<para id="para13">
	  The (unilateral) <cnxn document="m10549" strength="8">z-transform</cnxn> is given by

	  <equation id="eq13">
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
                <m:apply>
		  <m:ci type="fn" class="discrete">Z</m:ci>
		  <m:apply>
		    <m:ci type="function">f</m:ci>
		    <m:ci>n</m:ci>
		  </m:apply>
                </m:apply>
                <m:apply>
		  <m:ci type="fn" class="discrete">F</m:ci>
		  <m:ci>z</m:ci>
		</m:apply>
                <m:apply>
                  <m:sum/>
		  <m:bvar>
		    <m:ci>n</m:ci>
		  </m:bvar>
		  <m:lowlimit>
		    <m:cn>0</m:cn>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:infinity/>
		  </m:uplimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="fn" class="discrete">f</m:ci>
		      <m:ci>n</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:power/>
		      <m:ci>z</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>n</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
                </m:apply>
	      </m:apply>
	    </m:math>
	  </equation>
	  where
	  <m:math display="inline">
	    <m:apply>
	      <m:eq/>
              <m:ci>z</m:ci>
              <m:apply>
                <m:plus/>
		<m:ci>σ</m:ci>
		<m:apply>
		  <m:times/>
		  <m:imaginaryi/>
		  <m:ci>ω</m:ci>
		</m:apply>
              </m:apply>
	    </m:apply>
	  </m:math>
	  is complex in general.

	  <note type="aside">The z-transform operator Z[·]
	    could be given a definitionURL, which in conjunction with
	    <code>csymbol</code> would allow us to facilitate
	    the coding of the mathematical expression.
	  </note>
	</para>

	<code type="block" id="c9_ztrans">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
	    <m:ci type="fn" class="discrete">Z</m:ci>
	    <m:apply>
	      <m:ci type="fn" class="discrete">f</m:ci>
	      <m:ci>n</m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>	    
	  ]]>
	</code>
      </section>

      <section id="s3_11">
	<name>Complex Numbers</name>
	<para id="para14">
	  As is common in electrical engineering, it is recommended
	  that the <cnxn document="m0081" strength="8">complex
	  number</cnxn> <m:math display="inline"><m:imaginaryi/></m:math>
	  be used to denote
	  <m:math display="inline">
	    <m:apply>
	      <m:root/>
              <m:apply>
                <m:minus/>
		<m:cn>1</m:cn>
              </m:apply>
	    </m:apply>
	  </m:math>.  Use <code> <![CDATA[ <m:imaginaryi/>
	    ]]></code> to mark-up <emphasis>all</emphasis>
	    instances of the imaginary number, <m:math><m:imaginaryi/>
	    </m:math>.  Use the following notation and code for
	    operations dealing with complex numbers.
	</para>

	<list id="list_c1">
	  <item>The <term>modulus</term> of a complex number
	    <m:math><m:ci>z</m:ci></m:math> will be represented as
	    <m:math display="inline">
	      <m:apply>
		<m:abs/>
		<m:ci>z</m:ci>
	      </m:apply>
	    </m:math>.
	  </item>
	</list>

	<code type="block" id="codea_cm">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
	    <m:abs/>
	    <m:ci>z</m:ci>
	  </m:apply>	
	</m:math>	    
	  ]]>
	</code>

	<list id="list_c2">
	  <item>The <term>argument</term> of complex number
	    <m:math><m:ci>z</m:ci></m:math> will be rendered as
	    <m:math>
	      <m:apply>
		<m:arg/><m:ci>z</m:ci>
	      </m:apply>
	    </m:math> using the <code>arg</code> tag in
	    MathML.  The standard notation in electrical engineering
	    often denotes the argument simply as 
	    <m:math display="inline">
	      <m:ci>
		<m:mrow>
		  <m:mo>∠</m:mo>
		  <m:mi>z</m:mi>
		</m:mrow>
	      </m:ci>
	    </m:math>, but this does not utilize the
	    <code>arg</code> tag.  See the codeblock below to
	    see how both of these representations should be
	    implemented:
	  </item>
	</list>

	<code type="block" id="codeb_cm">
	  <![CDATA[	
	<!-- Using arg tag in MathML -->
	<m:math>
	  <m:apply>
	    <m:arg/>
	    <m:ci>z</m:ci>
	  </m:apply>
	</m:math
	  
	<!-- Using presentation MathML to render standard EE notation -->
	<m:math>
	  <m:ci>
	    <m:mrow>
	      <m:mo>&ang;</m:mo>
	      <m:mi>z</m:mi>
	    </m:mrow>
	  </m:ci>	 
	</m:math>	    
	  ]]>
	</code>


	<list id="list_c3">
	  <item> The <term>conjugate</term> of a complex number
	    <m:math><m:ci>z</m:ci></m:math> will be represented as

	    <m:math display="inline">
	      <m:ci>
		<m:msup>
		  <m:mi>z</m:mi>
		  <m:mo>*</m:mo>
		</m:msup>
	      </m:ci>
	    </m:math>.  

	    The default rendering for the
	    <code>conjugate</code> tag in MathML is
	    <m:math>
	      <m:apply>
		<m:conjugate/>
		<m:ci>z</m:ci>
	      </m:apply>
	    </m:math>.  The first notation is more common to
	    electrical engineers and can be rendered using the
	    following MathML code:
	  </item>
	</list>

	<code type="block" id="codec_cm">
	  <![CDATA[	    
	<m:math>
	  <m:ci>
	    <m:msup>
	      <m:mi>z</m:mi>
	      <m:mo>&ast;</m:mo>
	    </m:msup>
	  </m:ci>	  
	</m:math>	    
	  ]]>
	</code>

	<para id="p2_cmplx">
	  <note type="aside">
	    The <code>abs</code> tag in MathML content can be used
	    to display the modulus with the default rendering.  However, the 
	    <code>arg</code> and the <code>conjugate</code>
	    tags' default rendering is not the recommended rendering.  The
	    correct rendering will be implemented using an XSL transformation. 
	    The Connexions project has already implemented the use of j for
	    the imaginary unit in its stylesheets.
	  </note>
	</para>
      </section>

      <section id="s3_12">
	<name>Inner Product</name>
	<para id="para15">
	  The inner product (or scalar product) of two vectors is
	  given by

	  <equation id="eq15">
	    <m:math display="block">
	      <m:apply>
		<m:eq/>
                <m:apply>
                  <m:scalarproduct/>
                  <m:apply>
                    <m:selector/>
		    <m:ci type="vector">x</m:ci>
		    <m:cn>1</m:cn>
                  </m:apply>
                  <m:apply>
                    <m:selector/>
		    <m:ci type="vector">x</m:ci>
		    <m:cn>2</m:cn>
                  </m:apply>
                </m:apply>
                <m:apply>
                  <m:int/>
		  <m:bvar>
		    <m:ci>t</m:ci>
		  </m:bvar>
		  <m:lowlimit>
		    <m:apply>
		      <m:minus/>
		      <m:infinity/>
		    </m:apply>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:infinity/>
		  </m:uplimit>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:ci type="function">
			<m:msub>
			  <m:mi fontweight="bold">x</m:mi>
			  <m:mn>1</m:mn>
			</m:msub>
		      </m:ci>
		      <m:ci>t</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:ci type="function">
			<m:msubsup>
			  <m:mi fontweight="bold">x</m:mi>
			  <m:mn>2</m:mn>
			  <m:mo>*</m:mo>
			</m:msubsup>
		      </m:ci>
		      <m:ci>t</m:ci>
		    </m:apply>
		  </m:apply>
                </m:apply>
	      </m:apply>
	    </m:math>
	  </equation>

	 The MathML code used to denote an inner product follows.
	 Note that this code is for a more simplified expression, only
	 dealing with <m:math><m:ci type="vector">x</m:ci>
	 </m:math> and <m:math><m:ci type="vector">y</m:ci>
	 </m:math> rather than a subscripted variable as seen in the
	 equation above.
	</para>

	<code type="block" id="code_innprod">
	  <![CDATA[	    
	<m:math>
	  <m:apply>
	    <m:scalarproduct/>
	    <m:ci type="vector">x</m:ci>
	    <m:ci type="vector">y</m:ci>
	  </m:apply>
	</m:math>	    
	  ]]>
	</code>
      </section>
    </section>
  </content>

</document>
