You are here: Symbol Reference > SignalUtils Namespace > Functions > SignalUtils.Differentiate Function
DSP Master VCL
ContentsIndex
PreviousUpNext
SignalUtils.Differentiate Function

Differentiate the signal.

Pascal
function Differentiate(const Src: TVec; const Dst: TVec; var State: TDiffState; Dt: double): TVec; overload;

Differentiate the signal Src and place the result in Dst, The routine can also be used for streaming data, if the value of the State parameter is preserved between consecutive calls. dT defines the sampling period. Src can be complex or real. For setting the initial conditions to other then 0 see the TDiffState description. 

The following formula is used for numeric differentiation: 

 

y[i] = (x[i] - x[i-2]) / (2 * dT)

dT ... sampling period
x - input
y - output

 

The filter does not preserve linear phase, but it is more accurate than: 

y[i] = (x[i]-x[i-1])/dT 

 

which can be rewriten as: 

y[i] = ((x[i] - x[i-1]) + (x[i-1] - x[i-2]))/2 * 1/dT 

To apply a differentiator preserving linear phase see the OptimalFir.RemezImpulse and KaiserImpulse routines. 

Note Record types as well as all other variables are automatically initialized to zero, if they are declared as fields of an object. The state variable of the Differentiate routine has to be initialized before it can be used, if declared within a routine.

Copyright (c) 1999-2025 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!