Signal processing integration

Please recall that we have a number of initial statements that you should consider putting into your .mapleprofile file:

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

With respect to the Laplace transform, we have another issue with the default Maple integration. The Laplace transform uses the integral

$\int_{0^-}^\infty f(t) dt$

where the $0^-$ indicates that the integral is actually the limit from the left:

$\int_{0^-}^\infty f(t) dt = \lim_{a \rightarrow 0^-} \int_a^\infty f(t) dt$

Thus, by default, if we ask for this integral, we get the wrong result:

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

$0$

Instead, what we are looking for is

[> limit( int( delta( t )*cos( t ), t = %a..infinity ), %a = 0, 'left' );

$1$

Recall that we place the % in front of the a to ensure that we are using a symbol that can never be assigned to by the user.

We can write a simple function that calculates this integral, and you can define this function in your profile:

[> int0inf := (intgrnd, var)
    -> limit( int( intgrnd, var = %a..infinity ), %a = 0, 'left' ):
[> int0inf( sin(t)/t, t );

$\frac{\pi}{2}$

[> int0inf( delta(t)*sin(t)/t, t );

$1$

[> int0inf( f(t), t );

$\lim_{a \rightarrow 0^-} \int_a^\infty f(t) dt$