DTMF / Tone Detect and Suppress
DUAL TONE Multi-Frequency Signaling Tones
Adaptive Digital’s tone detector has been deployed since 1995.
Features List
DETECTOR
- eXpress DSP compliant
- ITU Q.24 compliant
- Meets Bellcore GR506, ITU Q455 specifications
- Robust detection
- Low per-channel memory requirements
- Low false alarm rate
- C-callable
- Designed for multi-channel operation
- Programmable Frame Size
SUPPRESSOR
- Rapid tone suppression
- Minimal distortion to speech during false early detection
- C-Callable
- Designed for multi-channel operation
Availability
Platforms Arm ® Devices Armv9-A || Armv7-A || Armv7-M / Armv8-M | Legacy Cortex-M3, ARM9E/11 Texas Instruments – TI TMS320C7000 C7x, TI TMS320C6000 C64x/C64x+/C66x, C674x, TMS320C5000 C55x / C54x Windows DLL x86 Linux x86
ADT DTMF is available on the above Platforms: Other configurations are available upon request.
Specifications
NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.
↓ Click on links below to view specification tables.
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
DTMF ARM Cortex-A8 / A9 / A15
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory | Scratch Memeory |
DTMF Detect | 3 | 3104 | 3792 | 152 | 400 |
CPRG Detect | 1.6 | 1152 | 2992 | 152 | 400 |
Tone Detect Common | — | 3376 | — | — | — |
DTMF ARM Cortex-M4
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 4 | 1958 | 3442 | 148 |
DTMF ARM Cortex-M33/M35 – estimate
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 3.2 | 1958 | 3442 | 148 |
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
DTMF C64x+ / C66x / C674x
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 0.3 | 2592 | 3710 | 152 |
MFR1 Detect | 0.22 | 1504 | 3272 | 152 |
MFR2 FDetect | 0.33 | 1248 | 1736 | 152 |
MFR2 RDetect | 0.33 | 1248 | 1736 | 152 |
CprgDetect | 0.18 | 1312 | 2992 | 152 |
Common | — | 2464 | 0 | 0 |
Suppress | 0.38 | 1184 | 0 | 0 |
DTMF C64x
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 0.3 | 2176 | 3710 | 152 |
MFR1 Detect | 0.22 | 1440 | 3272 | 152 |
MFR2 FDetect | 0.33 | 1248 | 1736 | 152 |
MFR2 RDetect | 0.33 | 1248 | 1736 | 152 |
CprgDetect | 0.18 | 1408 | 2992 | 152 |
Common | — | 2592 | 0 | 0 |
Suppress | 0.38 | 1696 | 0 | 0 |
DTMF C54x / C55x
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of16 bit-words.
LOW Memory | Low MIPS | |||||||
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 0.83 | 607 | 40 | 55 | 0.36 | 601 | 1704 | 72 |
MFR1 Detect | 0.69 | 587 | 66 | 55 | 0.31 | 598 | 1626 | 72 |
MFR2 FDetect | 0.92 | 551 | 60 | 55 | 0.58 | 492 | 828 | 72 |
MFR2 RDetect | 0.92 | 551 | 60 | 55 | 0.58 | 492 | 828 | 72 |
CprgDetect | 0.55 | 610 | 32 | 55 | 0.25 | 576 | 1496 | 72 |
Common | — | 689 | 16 | 0 | — | 597 | 16 | 0 |
Suppress | 0.22 | 398 | 1680 | 0 | 0.22 | 368 | 0 | 0 |
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
DTMF C64x+ / C66x / C674x
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 0.3 | 2592 | 3710 | 152 |
MFR1 Detect | 0.22 | 1504 | 3272 | 152 |
MFR2 FDetect | 0.33 | 1248 | 1736 | 152 |
MFR2 RDetect | 0.33 | 1248 | 1736 | 152 |
CprgDetect | 0.18 | 1312 | 2992 | 152 |
Common | — | 2464 | 0 | 0 |
Suppress | 0.38 | 1184 | 0 | 0 |
DTMF C64x
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of bytes.
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 0.3 | 2176 | 3710 | 152 |
MFR1 Detect | 0.22 | 1440 | 3272 | 152 |
MFR2 FDetect | 0.33 | 1248 | 1736 | 152 |
MFR2 RDetect | 0.33 | 1248 | 1736 | 152 |
CprgDetect | 0.18 | 1408 | 2992 | 152 |
Common | — | 2592 | 0 | 0 |
Suppress | 0.38 | 1696 | 0 | 0 |
DTMF C54x / C55x
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of16 bit-words.
LOW Memory | Low MIPS | |||||||
Function | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory | MIPs Per-Channel | Program Memory | Data Memory | Per-Channel Data Memory |
DTMF Detect | 0.83 | 607 | 40 | 55 | 0.36 | 601 | 1704 | 72 |
MFR1 Detect | 0.69 | 587 | 66 | 55 | 0.31 | 598 | 1626 | 72 |
MFR2 FDetect | 0.92 | 551 | 60 | 55 | 0.58 | 492 | 828 | 72 |
MFR2 RDetect | 0.92 | 551 | 60 | 55 | 0.58 | 492 | 828 | 72 |
CprgDetect | 0.55 | 610 | 32 | 55 | 0.25 | 576 | 1496 | 72 |
Common | — | 689 | 16 | 0 | — | 597 | 16 | 0 |
Suppress | 0.22 | 398 | 1680 | 0 | 0.22 | 368 | 0 | 0 |
Description
Detect and Suppress Tones
The Adaptive Digital Technologies Signaling Tone Detector detects Signaling tones such as DTMF, MF R1, R2 Forward, R2 Reverse, Call Progress signals. Adaptive Digital’s proprietary algorithm is robust enough to meet Bellcore GR-506, and ITU Q455 recommendations while using few CPU cycles.
In addition to carrying speech signals, the telephone network is required to carry various in-band signaling tones. Telephony equipment must pass these tones with little distortion so they can be detected by receiving equipment. While speech compression works well with speech signals, many speech compression techniques are unable to pass signaling tones without excessive distortion. For these type of signals, a tone passer, consisting of a tone detector and tone regenerator, is used to ensure the reliable passage of the signaling tones.
- Dual Tone Multi-Frequency (DTMF)
- Multi Frequency R1 (MFR1)
- Multi Frequency R2 Forward (MFR2F)
- Multi Frequency R2 Reverse (MFR2R)
- Call Progress (CPRG)
- Fast Dual Tone Multi-Frequency (DTMF Fast Detection)
Multi Frequency (MF) signaling is used to transmit address information and other information between interswitching-system transmission facilities. There are three variants of MF signaling – R1, R2 forward, and R2 reverse.
Call Progress signals are used to indicate the state of the call being made.
DTMF
Adaptive Digital’s proprietary DTMF algorithm at less than one half the CPU utilization measured in MIPS (Millions of
Instructions Per Second) offers more than twice the channel density compared with the nearest competitor while
maintaining strict compliance with industry specifications Bellcore/Telcordia GR506 and ITU Q455.
An optional DTMF suppressor is available to suppress DTMF tones in Voice-Over-Packet systems that employ tone
passing via out-of-band signaling. This is useful when a low rate speech compression algorithm is unable to pass the
DTMF tones without significant distortion.
The ADT DTMF Detector is capable of detecting DTMF tones on multiple channels. It is ideal for T1/E1, PBX, voice-mail,
and computer telephony applications. Adaptive Digital’s tone detector has been deployed since 1995, hosted on
numerous platforms.
DTMF refers to the signal generated when you press a digit on a telephone’s touch keypad.
The term DTMF stems from the fact that whenever a telephone push button is pressed, the phone generates two specific tone frequencies that are the algebraic summation of the amplitude of the two frequencies.
Four frequencies are used for the rows and four for the columns, for a total of 8 frequencies and 16 possible combinations.
So that a voice can’t imitate the tones, one tone is generated from a high-frequency group and the other from a low frequency group of tones. The complex DTMF tone detect algorithm determines the single generated digit by extracting the two frequencies from the input signal, allowing for tolerances such as frequency offset and distortion such as additive noise, and then checking them to see if together they qualify as one of the digits.
A DTMF detector rejects any tone frequency that is not the sum of one high and one low tone. This prevents speech and noise signals from being interpreted as DTMF tones.
Function API's
DTMF_ADT_Init(. . .)
MFR1_ADT_Init(. . .) MFR1_ADT_toneDetect(. . .)
MFR2_F _ADT_Init(. . .) MFR2_F_ADT_toneDetect(. . .)
MFR2_R _ADT_Init(. . .) MFR2_R_ADT_toneDetect(. . .)
CPRG _ADT_Init(. . .) CPRG_ADT_toneDetect(. . .)
DTMF_ADT_toneDetect(. . .) DTMF_ADT_toneSuppress(. . .)