Signal processing functions

In this topic, we will look at integral transforms, but before we do this, we must introduce two functions that are significantly related to such transforms:

  1. the unit step function $u(t)$, and
  2. the unit impulse function $\delta(t)$.

These functions are implemented in Maple, but as Maple is primarily a mathematical programming languages, there are some differences we must address.

First, the functions are called Heaviside(t) and Dirac(t), respectively. Second, the second is defined as the derivative of the first, and therefore the second function at $t = 0$ is undefined, a mathematically correct statement.

To begin, we will introduce a new function in Maple: alias(...). This function allows you to provide a different name for a given one. An alias is equivalent to a.k.a., or also known as. Second, we can let Maple to treat the Heaviside function as the more familiar unit step function:

[> interface( 'imaginaryunit' = 'j' ):
alias( 'u' = 'Heaviside' ):
alias( 'delta' = 'Dirac' ):
_EnvUseHeavisideAsUnitStep := true:

Now, you can use u( t ) and delta( t ), instead, and if either of the functions Heaviside or Dirac appear in the output of an integral, for example, they will appear as u and delta, respectively, and the first will behave in a manner similar to that of the unit step function.

You can now add these to your profile, so make sure that your username.mapleprofile file contains at least:

[MapleCode]
interface( 'imaginaryunit' = 'j' ):
alias( 'u' = 'Heaviside' ):
alias( 'delta' = 'Dirac' ):
_EnvUseHeavisideAsUnitStep := true:

These functions work as one may expect:

[> int( y(t)*u(t - 4), t = -10..10 );

$\int_4^{10} y(t) dt$

[> int( exp(-t)*u(t), t = -infinity..infinity );

$1$

[> int( delta(t - tau)*y(t), t = -infinity..infinity );

$y(\tau)$

[> int( delta(t - 5)*cos(t), t = -infinity..infinity );

$\cos(5)$