AN2384 Freescale Semiconductor / Motorola, AN2384 Datasheet - Page 18

no-image

AN2384

Manufacturer Part Number
AN2384
Description
Generic Tone Detection Using Teager-Kaiser Energy Operators on the StarCore SC140 Core
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
DTMF Detector on StarCore
All indexes simulate time by processing the samples at 4 KHz (every increment for each of the indexes is
equivalent to 250 ms).Figure 11 shows the overall digit processing flow chart.
This decision logic section first processes previous_digit by analyzing its duration (Step 1). It may be ignored (case
(A)) or may replace the digit (case (B)). Based on the result of Step 1, a decision is made about the digit (Step 2).
The digit processing part of the algorithm is performed only when an edge is detected, that is, when new_digit
differs from previous_digit.
4.2.6 Adjustments of the Sample Processing Unit
The parameter , which is the IIR low pass filter (LPF) gain, influences the bandwidth of the low pass filters. If its
value is close to 1, it decreases the filter bandwidth. The parameter r is the IIR notch filter gain that controls roll-off
around the notch location. Optimized values of
experimentally. All 16 DTMF digits must be considered. Extensive tests were conducted for different values of
power level (0 dBm0, –1 dBm0, –18 dBm0, and –22 dBm0), with a duration of 40 ms. The experiments show that
the best values for
To reduce noise effects, two bandwidths are used in low pass filters. When the same digit is detected several times,
the LPF with the lower bandwidth is used (filter with coefficient _locked) to focus on the locked frequency. When
the frequencies are unlocked, the LPF with the larger bandwidth is used (filter with coefficient _unlocked) to
allow faster response to any new tone. Each value is further optimized, resulting in the following final values:
As differences among theoretical values, simulation results, and actual (real-time) detector results appear, all
constants may be optimized, either empirically or theoretically. The following parameters were adjusted in relation
with various Q.24 tests (Mitel, CSELT, Bellcore): frequency tolerance tables, significant signal duration, pause
duration, signal duration, and interruption duration. If the detector performance needs to change, these values can
be tuned again. Other variables can also be optimized, such as coefficients of notch filters, energy thresholds,
minimum duration for frequency lock, and thresholds for sample amplification.
18
Generic Tone Detection Using Teager-Kaiser Energy Operators on the StarCore SC140 Core, Rev. 1
start. Simulated time that corresponds to the instant when the function is called. It is incremented at the
end of each call by the number of processed samples. Since it is a 16-bit value, the program initializes
it to 0 when it becomes large enough and during an appropriate non-valid signal.
i+start. Current loop index.
pause_state. Set to 1 when a pause is detected. It is a necessary condition to detect a key.
and r are as follows:
alpha_locked = 0.91552734375
alpha_unlocked = 0.701904296875
r = 0.36773681640625
and r, which generate good detection results, are determined
r = 0.35
= 0.88
(0x59D8)
(0x2F12)
(0x7530)
Freescale Semiconductor

Related parts for AN2384