Slope detector

The slope detection is a method of FM-demodulation which converts the received FM signal to AM and demodulates with an envelope detector.


Any circuit that outputs the time derivative of the input can perform FM to AM conversion. In an FM signal the frequency is low, when the amplitude of the message signal is low and vice versa. Utilizing the proporty that

$\displaystyle \frac{d}{dt} f(t) \leftrightarrow sF(s)$     (O.1)

a differentiation corresponds to a filter having the transfer function $ H(j\omega) = j\omega$ . The ampltitude plot of this filter is shown in figure O.1. A plot of the signal before and after differentiation is shown in figure jtkr04:fig:slope02a and jtkr04:fig:slope02b. Obviously differentiation does not eliminate the frequencies around the carrier wave.

Differentiating the FM-signal and taking the absolute value produces a DC-offset and the amplitude varying input signal. This is shown in figure jtkr04:fig:slope02c. The DC offset and the frequency contents near the carrier that is still present, is removed by band pass filtering. The result is shown in figure jtkr04:fig:slope02d. The absolute value and low pass filtering corresponds to the envelope of the AM signal.

Figure O.1: Conversion from FM to AM.

Figure O.2: Conversion of 10kHz input to FM signal to absolute of AM signal.

Mathematical description

In the following a mathematical description of the slope detector is made. The original FM signal, see figure O.2a, is given on the form:

$\displaystyle s(t)$ $\displaystyle =$ $\displaystyle A_{c} \cdot \cos\left(\omega_{c} \cdot t + 2\cdot \pi \cdot k_{f} \cdot \int m(t) \cdot dt\right)$ (O.2)

$ s(t)$ is the incoming FM signal. [V]
$ \omega_{c}$ is the carrier frequency. [rad/s]
$ m(t)$ is the messages signal. [V]
$ A_{c}$ is the carrier amplitude. [rad/V]
$ k_{f}$ is the frequency sensitivity. [Hz/V]

By means of differention the FM signal, $ s(t)$ is transformed into an AM modulated FM signal, see figure O.2b. For simplicity $ 2 \pi k_{f}$ is subsituted by c in the following and $ A_{c}$ is omitted.

$\displaystyle s_{diff}(t)$ $\displaystyle =$ $\displaystyle \frac{d}{dt}\left[ \cos(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt)\right]$ (O.3)
$\displaystyle s_{diff}(t)$ $\displaystyle =$ $\displaystyle (\omega_{c} + c \cdot m(t)) \cdot - \sin(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt)$ (O.4)
$\displaystyle s_{diff}(t)$ $\displaystyle =$ $\displaystyle (\omega_{c}) \cdot - \sin(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt)+ \ldots$  
  $\displaystyle \ldots$ $\displaystyle (c \cdot m(t)) \cdot - \sin(\omega_{c} \cdot t + \int m(t) \cdot dt)$ (O.5)

Now the absolute value is taken, see figure O.2 c.

$\displaystyle abs(s_{diff}(t))$ $\displaystyle =$ $\displaystyle \sqrt{\left((\omega_{c}) \cdot \cos(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt) + \right. } \ldots$  
  $\displaystyle \ldots$ $\displaystyle \overline{\left. (c \cdot m(t)) \cdot \cos(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt)\right)^2}$ (O.6)
$\displaystyle abs(s_{diff}(t))$ $\displaystyle =$ $\displaystyle \sqrt{\frac{1}{2}} \cdot \sqrt{\omega_{c}^2 + 2 \cdot \cos(2\cdot(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt)) + (c \cdot m(t))^{2} + } \ldots$  
  $\displaystyle \ldots$ $\displaystyle \overline{c \cdot m(t) \cdot \omega_{c} + c \cdot m(t) \cdot \omega_{c} \cdot \cos(2\cdot(\omega_{c} \cdot t + c \cdot \int m(t) \cdot dt))}$ (O.7)

As a final step this new signal is bandpass filtered. This approach will only work if highest frequency of the wanted signal significantly lower than the carrier frequncy [Carlson, 1986, pages 259-261], see figure O.2 d. This yields

$\displaystyle s_{demod}$ $\displaystyle =$ $\displaystyle k \cdot m(t)$ (O.8)

$ k$ is a constant. [-]

Balanced frequency discrimination

As a final note on slope detectors, the balanced slope detector is mentioned. Balanced frequency discrimination offers an elegant alternative to simply blocking the DC offset. A frequency discriminator basically consists of a slope circuit, an envelope detector and a DC-block connected in series. In balanced frequency discrimination the DC-block is omitted, and a parrallel signal route consisting of yet another slope circuit, $ H_2$ and and envelope detector is added. The setup is shown in figure O.3. The relation between the slope circuits $ H_1$ and $ H_2$ must fulfill equation (O.9).
Figure O.3: Block diagram of a balanced slope detector.

$\displaystyle \vert H_2(f+f_{\rm c})\vert = \vert H_1(-f+f_{\rm c})\vert$     (O.9)

That is - in the range of linearity the sum of the two transferfunctions will be constant. Furthermore at $ f=f_{\rm c}$ , $ H_1$ and $ H_2$ will be equal in amplitude. These proporties are shown in figure O.4a.
Figure O.4: Amplitude responses of a balanced frequency discriminator.
The two signals at hand are: the envelope of the modulated signal passed through $ H_1$ and the envelope of the modulated signal passed through $ H_2$ . When these two are subtracted the offset amplitude cancels out and a frequency response of figure O.4b is achieved. Note that the resulting slope is twice as steep as either one of the slopes, $ H_1$ or $ H_2$ . The rule for the applicability of this method is the same as for the frequency discriminator.
[Haykin, 2001, pages 121-124,725-730]

Digitization considerations

The digital version of the slope detector has the advantage over the analog counterpart, due to the linear frequency response of the slope. However this property is nullified if the sampling frequency is not significantly higher than the input frequency.

Another positive attribute of the digital signal processing is the ability to produce high-order filters with relative ease.

MATLABTM implementation

The algorithm is implemented using the built in diff() and abs() functions and the self-supplied FIR-filter of appendix cha:firfilter.

C implementation considerations

There are no considerations regarding implementation in C.


In this appendix a slope FM demodulator has been explained and implemented in MATLAB. The algorithm will be testet and compared to other demodulation algorithms in appendix K.

Jes Toft Kristensen 2005-12-13