| Content | Continuous-Time Notation | Discrete-Time Notation |
|---|---|---|
| Time |
|
|
| Frequency |
|
|
| Angular Frequency |
|
|
| Signal |
|
|
| Fourier Transform |
|
|
Summary: A description of the recommended notation for use with digital signal processing modules submitted to the Connexions project.
Within the Connexions
Project, MathML 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 csymbol tag.
A list of extensions written by the Connexions Project can be
found on
Mountainbunker.
Although certain types of content may be supported by MathML, authors may wish to a notational rendering different from the default without altering the meaning of the mathematics. XSL transformations can be used to bind different notation to MathML content tags without altering their semantics.
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.
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 example code of how to mark-up the MathML correctly.
| Content | Continuous-Time Notation | Discrete-Time Notation |
|---|---|---|
| Time |
|
|
| Frequency |
|
|
| Angular Frequency |
|
|
| Signal |
|
|
| Fourier Transform |
|
|
A listing of all notation presented in this module.
It is suggested that
<m:math><m:ci>t</m:ci></m:math>
<m:math><m:ci>n</m:ci></m:math>
For discrete-time, periodic functions, we recommend that a
capital T,
Like time, frequency can be represented as a continuous or
as a discrete variable. It is recommended that
<!-- Radian Freq in Continuous Time -->
<m:math><m:ci>Ω</m:ci></m:math>
<!-- Radian Freq in Discrete Time -->
<m:math><m:ci>&omega</m:ci></m:math>
It is sometimes useful to describe an arbitrary signal, or an
input/output relationship. In such cases, it is recommended
that
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>
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>
There are several signals used often enough to merit special attention. They are presented here.
The impulse, or Dirac-Delta function, should be
presented as
csymbol would allow us to
facilitate the coding of the mathematical
expression.
<!-- Continuous Time -->
<m:math>
<m:apply>
<m:ci type='fn'>δ</m:ci>
<m:ci>t</m:ci>
</m:apply>
</m:math>
<!-- Discrete Time -->
<m:math>
<m:apply>
<m:ci type='fn' class='discrete'>δ</m:ci>
<m:ci>n</m:ci>
</m:apply>
</m:math>
The unit step should be presented as
csymbol would allow us to
facilitate the coding of the mathematical expression.
The sinc function should be represented as
csymbol 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:
<m:math>
<m:apply>
<m:ci type='fn'>sinc</m:ci>
<m:ci>x</m:ci>
</m:apply>
</m:math>
The norm of a vector or function should be represented as
<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>
Convolution is given by and should be displayed as
csymbol which can be used through the
following CNXML/MathML code.
<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>
Standard notation for circular
convolution, or periodic convolution, uses a
circled asterick, csymbol 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:
<m:math>
<m:apply>
<m:ci><m:mo>⊛</m:mo></m:ci>
<m:ci>f</m:ci>
<m:ci>g</m:ci>
</m:apply>
</m:math>
The Twiddle factor should be displayed as
<twiddle/>.
<m:math>
<m:ci>
<m:msub>
<m:mi>W</m:mi>
<m:mi>N</m:mi>
</m:msub>
</m:ci>
</m:math>
Although the concept of the Fourier transform 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>
<m:apply>
<m:ci type='fn'>X</m:ci>
<m:ci>Ω</m:ci>
</m:apply
</m:math>
<m:math>
<m:apply>
<m:ci type='fn'>X</m:ci>
<m:ci>ω</m:ci>
</m:apply
</m:math>
<m:math>
<m:apply>
<m:ci type='fn' class='discrete'>X</m:ci>
<m:ci>n</m:ci>
</m:apply
</m:math>
csymbol would allow us to facilitate
the coding of the mathematical expression.
There are a few ways of describing the Fourier transform. The recommended notation for the transform is given as:
The Laplace transform is defined as
csymbol would allow us to facilitate
the coding of the mathematical expression.
<m:math>
<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:math>
The (unilateral) z-transform is given by
csymbol would allow us to facilitate
the coding of the mathematical expression.
<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>
As is common in electrical engineering, it is recommended
that the complex
number <m:imaginaryi/>
to mark-up all
instances of the imaginary number,
<m:math>
<m:apply>
<m:abs/>
<m:ci>z</m:ci>
</m:apply>
</m:math>
arg tag in
MathML. The standard notation in electrical engineering
often denotes the argument simply as
arg tag. See the codeblock below to
see how both of these representations should be
implemented:
<!-- 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>∠</m:mo>
<m:mi>z</m:mi>
</m:mrow>
</m:ci>
</m:math>
conjugate tag in MathML is
<m:math>
<m:ci>
<m:msup>
<m:mi>z</m:mi>
<m:mo>*</m:mo>
</m:msup>
</m:ci>
</m:math>
abs tag in MathML content can be used
to display the modulus with the default rendering. However, the
arg and the conjugate
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.
The inner product (or scalar product) of two vectors is given by
<m:math>
<m:apply>
<m:scalarproduct/>
<m:ci type="vector">x</m:ci>
<m:ci type="vector">y</m:ci>
</m:apply>
</m:math>