DTMF receivers are required to detect frequencies with a tolerance of Æ1:5 percent as
valid tones. Tones that are offset by Æ3:5 percent or greater must not be detected. This
requirement is necessary to prevent the detector from falsely detecting speech and other
signals as valid DTMF digits. The receiver is required to work with a worst-case signal-
to-noise ratio of 15 dB and with a dynamic range of 26 dB.
Another requirement of the receiver is the ability to detect DTMF signals when two
tones are received at different levels. The high-frequency tone may be received at a lower
level than the low-frequency tone due to the magnitude response of the communication
channel. This level difference is called twist, and the situation described above is called a
forward (or standard) twist. Reverse twist occurs when the low-frequency tone is
received at a lower level than the high-frequency tone. The receiver must operate with
a maximum of 8 dB normal twist and 4 dB reverse twist. A final requirement for the
receiver is that it operates in the presence of speech without incorrectly identifying the
speech signal as valid DTMF tones. This is referred to as talk-off performance.
9.3.2 Goertzel Algorithm
The principle of DTMF detection is to examine the energy of the received signal at the
DTMF frequencies (defined in Figure 9.1) to determine whether a valid DTMF tone
pair has been received. The detection algorithm can be a DFT implementation using an
FFT algorithm or a filter-bank implementation. An FFT can be used to calculate the
energies of N evenly spaced frequencies. To achieve the frequency resolution required to
detect the eight DTMF frequencies within Æ1:5 percent frequency deviation, a 256-
point FFT is needed for an 8 kHz sample rate. For the relatively small number of tones
to be detected, the filter-bank implementation is more efficient.
Since only eight frequencies are of interest, it is more efficient to use the DFT directly
for eight different values of k that correspond to the DTMF frequencies defined in
Figure 9.1. The DFT coefficients can be more efficiently calculated by using the Goertzel
algorithm, which can be interpreted as a matched filter for each frequency k as illustrated
in Figure 9.5. In this figure, x(n) is the input signal of the system, H
z is the transfer
function of the filter at kth frequency bin, and X(k) is the corresponding filter output.
Figure 9.5 Flow graph of Goertzel filters
DTMF TONE DETECTION