This Design Brief introduces a computationally efficient network that computes the derivative of a discrete time-domain (digital) sequence. While recursive differentiating networks exist, this article describes a simple tapped-delay line (finite impulse response or FIR) differentiator that has guaranteed linear phase.

Although the idea of differentiation is well-defined in the world of continuous signals, that's not the case for discrete signals. Fortunately, however, we can approximate the calculus of a derivative operation in the domain of discrete signals. (While DSP purists prefer to use the terminology "digital differencer," we'll use the term " differentiator.")

To review the notion of differentiation, think about a continuous sine wave, whose frequency is rad./s, represented by:

The derivative of that sine wave is:

Therefore, the derivative of a sine wave is a cosine wave whose amplitude is proportional to the original x(t) sine wave's frequency. Equation 2 says that an ideal differentiator's frequency magnitude response is a straight line increasing with frequencyω. Keeping that in mind, consider two common discrete-time FIR (non-recursive) differentiators: a first-difference and a central-difference differentiator. They are computationally simple schemes for estimating the derivative of a digital x(n) time-domain signal sequence with respect to time.

The first-difference differentiator, which involves the simple process of computing the difference between successive x(n) signal samples, is defined in the time domain by:

The frequency magnitude response of that differentiator is the dashed |H_{fd}(ω)|
curve in Figure 1. For comparison, Figure 1
also shows an ideal differentiator's straight-line |H_{idea}(ω)|
= magnitude response. The frequency axis in the figure covers the positive frequency
range 0≤ ω ≤ π samples/radian, corresponding to a cyclic frequency
range of 0 to f_{s}/2, where f_{s} is the x(n) sample rate in
hertz.

Equation 3 is sweet in its simplicity, but unfortunately its |H_{fd}(ω)|
tends to amplify high-frequency noise that often contaminates real-world signals.
For that reason, the central-difference differentiator is often used in practice.
The time-domain expression of the central-difference differentiator is:

The central-difference differentiator's frequency magnitude response is the
dotted |H_{cd}(ω)| curve in Figure 1. The tradeoff for |H_{cd}(ω)|'s
desirable high-frequency (noise) attenuation is that its frequency range of
linear operation is only from zero to roughly = 0.16 π samples/radian (0.08f_{s}
Hz). Unfortunately, that's less than the frequency range of linear operation
of the first-difference differentiator.

As noted, this Design Brief describes a third alternative, a computationally efficient differentiator that maintains the central-difference differentiator's beneficial high-frequency attenuation behavior, but extends its frequency range of linear operation. The differentiator is defined by:

This novel differentiator's normalized frequency magnitude response is the
solid |H_{dif}(ω)| curve in Figure
1. Its frequency range of linear operation extends from to zero to approximately
= 0.34π samples/radian (0.17f_{s} Hz). This is twice the usable frequency
range of the central-difference differentiator.

The implementation of the differentiator is shown in Figure
2, where a delay block comprises two unit delays. The folded-FIR structure
for this differentiator is presented in Figure
3, which shows that only a single multiply need be performed per y_{dif}(n)
output sample. The really slick aspect of the y_{dif}(n) differentiator
is that its non-unity coefficients (±1/16) are integer powers of two.
This means that a multiplication can be implemented with an arithmetic right
shift by four bits. Happily, such a binary right-shift implementation is a linearphase,
multiplier-less differentiator.

Another valuable feature of the y_{dif}(n) differentiator is that its
time delay (group delay) is exactly three sample periods (3/f_{s}),
making it convenient for use with popular FM demodulation methods.^{1}

Reference:

- Lyons, Richard,
*Understanding Digital Signal Processing, 2nd Edition*, Prentice Hall, Upper Saddle River, N.J., 2004, p. 549-552