# OpenStax_CNX

You are here: Home » Content » ECE 454 and ECE 554 Supplemental reading » DSP notation

### Recently Viewed

This feature requires Javascript to be enabled.

Inside Collection (Course):

Course by: Thad Welch. E-mail the author

# DSP notation

Module by: Roy Ha, Michael Haag. E-mail the authors

Summary: A description of the recommended notation for use with digital signal processing modules submitted to the Connexions project.

## Introduction

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.

## XSL Transformations and Macros

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.

## Signal Processing Notation

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.

Table 1: Recommended Notation
Content Continuous-Time Notation Discrete-Time Notation
Time tt nn
Frequency ff (HZ) vv (cycles/sample)
Signal xt x t xn x n
Fourier Transform XΩ X Ω Xω X ω

A listing of all notation presented in this module.

### Time

It is suggested that tt be used as the continuous variable of time and that nn be used as the discrete variable of time.

#### Example 1: MathML Mark-Up



<m:math><m:ci>t</m:ci></m:math>

<m:math><m:ci>n</m:ci></m:math>



#### Period

For discrete-time, periodic functions, we recommend that a capital T, T T, be used to denote the period, or sampling period, of a signal.

### Frequency

Like time, frequency can be represented as a continuous or as a discrete variable. It is recommended that ff Hz be used for the continuous variable of frequency and that vv 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 kk is used. Corresponding to the continuous variable, an appropriate radian measure would be Ω=2×πf Ω 2 π f rad/sec and for the discrete case ω=2×πv ω 2 π v 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.

#### Example 2: MathML Mark-Up



<!-- 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>



### Signal

It is sometimes useful to describe an arbitrary signal, or an input/output relationship. In such cases, it is recommended that f f be used to represent a generic signal. For an input/output relationship, use x x as an arbitrary input signal and y y as the arbitrary output signal. When writing out the signal as a function of some variable, such as time, it can be represented as xt x t for continuous-time signals and as xn x n for discrete-time signals.

#### Example 3: MathML Mark-Up

For a continuous-time signal, xt x t :



<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, xn x n :



<m:math>
<m:apply>
<m:ci type="fn" class="discrete">x</m:ci>
<m:ci>n</m:ci>
</m:apply>
</m:math>



### Special Signals

There are several signals used often enough to merit special attention. They are presented here.

#### Impulse

The impulse, or Dirac-Delta function, should be presented as δt δ t in continuous-time and as δn δ n in discrete-time.

##### Aside:
The impulse is a signal which could be given a definitionURL, which in conjunction with csymbol would allow us to facilitate the coding of the mathematical expression.

##### Example 4: MathML Mark-Up


<!-- Continuous Time -->
<m:math>
<m:apply>
<m:ci type='fn'>&delta;</m:ci>
<m:ci>t</m:ci>
</m:apply>
</m:math>




<!-- Discrete Time -->
<m:math>
<m:apply>
<m:ci type='fn' class='discrete'>&delta;</m:ci>
<m:ci>n</m:ci>
</m:apply>
</m:math>



#### Unit Step

The unit step should be presented as ut u t in continuous-time and as un u n in discrete-time. These functions will be marked-up in MathML the same as the delta function above; however, rather than the δ δ symbol you will use u u.

##### Aside:
The unit step is a signal which could be given a definitionURL, which in conjunction with csymbol would allow us to facilitate the coding of the mathematical expression.

#### Sinc

The sinc function should be represented as

sincx=sinxx sinc x x x
(1)
##### Aside:
The sinc function is a signal which could be given a definitionURL, which in conjunction with 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:

##### Example 5: MathML Mark-Up


<m:math>
<m:apply>
<m:ci type='fn'>sinc</m:ci>
<m:ci>x</m:ci>
</m:apply>
</m:math>



### Norm

The norm of a vector or function should be represented as x x For instance, the Euclidean norm (sometimes called the L2-norm) of a vector should be given by

x= i =1Nxi2 x i 1 N x i 2
(2)

#### 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 xx in the above paragraph.

#### Example 6: MathML Mark-Up



<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

Convolution is given by and should be displayed as

f*g=fτgtτd τ f g τ f τ g t τ
(3)

#### Aside:

The convolution operator is defined by a csymbol which can be used through the following CNXML/MathML code.

#### Example 7: MathML Mark-Up



<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>



#### Circular Convolution

Standard notation for circular convolution, or periodic convolution, uses a circled asterick, , between two variables or functions. See the equation below as an example: yt=ftgt y t f t g t Although a 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>&circledast;</m:mo></m:ci>
<m:ci>f</m:ci>
<m:ci>g</m:ci>
</m:apply>
</m:math>



### Twiddle Factor

The Twiddle factor should be displayed as

W N =ei2πN W N 2 N
(4)

#### Aside:

The twiddle factor could be given a definitionURL, which in conjunction with, probably given by <twiddle/>.

#### Example 8: MathML Mark-Up



<m:math>
<m:ci>
<m:msub>
<m:mi>W</m:mi>
<m:mi>N</m:mi>
</m:msub>
</m:ci>
</m:math>



### Fourier Transform

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 xx is the function to be transformed):

• CTFT: XΩ X Ω


<m:math>
<m:apply>
<m:ci type='fn'>X</m:ci>
<m:ci>&Omega;</m:ci>
</m:apply
</m:math>


• DTFT: Xω X ω


<m:math>
<m:apply>
<m:ci type='fn'>X</m:ci>
<m:ci>&omega;</m:ci>
</m:apply
</m:math>


• DFT: Xn X n


<m:math>
<m:apply>
<m:ci type='fn' class='discrete'>X</m:ci>
<m:ci>n</m:ci>
</m:apply
</m:math>



#### Aside:

The Fourier operator ℱ[·] could be given a definitionURL, which in conjunction with csymbol would allow us to facilitate the coding of the mathematical expression.

#### CTFT

There are a few ways of describing the Fourier transform. The recommended notation for the transform is given as:

XΩ=xte(iΩt)d t X Ω t x t Ω t
(5)

### Laplace Transform

The Laplace transform is defined as

xt=Xs=xte(st)d t x t X s t x t s t
(6)
where s=σ+iΩ s σ Ω is the complex frequency. The unilateral Laplace transform, or one-side Laplace, is defined exactly the same but the lowlimit of the integral is 0 0 rather than .

#### Aside:

The Laplace operator ℒ[·] could be given a definitionURL, which in conjunction with csymbol would allow us to facilitate the coding of the mathematical expression.



<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>



### z-transform

The (unilateral) z-transform is given by

Zfn=Fz= n =0fnzn Z f n F z n 0 f n z n
(7)
where z=σ+iω z σ ω is complex in general.

#### Aside:

The z-transform operator Z[·] could be given a definitionURL, which in conjunction with 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>



### Complex Numbers

As is common in electrical engineering, it is recommended that the complex number i be used to denote 1 1 . Use  <m:imaginaryi/>  to mark-up all instances of the imaginary number, i . Use the following notation and code for operations dealing with complex numbers.

• The modulus of a complex number zz will be represented as |z| z .


<m:math>
<m:apply>
<m:abs/>
<m:ci>z</m:ci>
</m:apply>
</m:math>


• The argument of complex number zz will be rendered as z z using the arg tag in MathML. The standard notation in electrical engineering often denotes the argument simply as z z , but this does not utilize the 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>&ang;</m:mo>
<m:mi>z</m:mi>
</m:mrow>
</m:ci>
</m:math>


• The conjugate of a complex number zz will be represented as z * z * . The default rendering for the conjugate tag in MathML is z¯ z . The first notation is more common to electrical engineers and can be rendered using the following MathML code:


<m:math>
<m:ci>
<m:msup>
<m:mi>z</m:mi>
<m:mo>&ast;</m:mo>
</m:msup>
</m:ci>
</m:math>



#### Aside:

The 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.

### Inner Product

The inner product (or scalar product) of two vectors is given by

x1,x2= x 1 t x 2 * td t x 1 x 2 t x 1 t x 2 * t
(8)
The MathML code used to denote an inner product follows. Note that this code is for a more simplified expression, only dealing with x x and y y rather than a subscripted variable as seen in the equation above.



<m:math>
<m:apply>
<m:scalarproduct/>
<m:ci type="vector">x</m:ci>
<m:ci type="vector">y</m:ci>
</m:apply>
</m:math>



## Content actions

EPUB (?)

### What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

PDF | EPUB (?)

### What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

#### Collection to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

#### Definition of a lens

##### Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

##### What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

##### Who can create a lens?

Any individual member, a community, or a respected organization.

##### What are tags?

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks

#### Module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

#### Definition of a lens

##### Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

##### What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

##### Who can create a lens?

Any individual member, a community, or a respected organization.

##### What are tags?

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks

### Reuse / Edit:

Reuse or edit collection (?)

#### Check out and edit

If you have permission to edit this content, using the "Reuse / Edit" action will allow you to check the content out into your Personal Workspace or a shared Workgroup and then make your edits.

#### Derive a copy

If you don't have permission to edit the content, you can still use "Reuse / Edit" to adapt the content by creating a derived copy of it and then editing and publishing the copy.

| Reuse or edit module (?)

#### Check out and edit

If you have permission to edit this content, using the "Reuse / Edit" action will allow you to check the content out into your Personal Workspace or a shared Workgroup and then make your edits.

#### Derive a copy

If you don't have permission to edit the content, you can still use "Reuse / Edit" to adapt the content by creating a derived copy of it and then editing and publishing the copy.