This item is the starting point for accurate identification of DTMF signals. After detecting this item, the DTMF decoder is triggered to decode the received data and wait until the corresponding dial key value is reached.
1. analysis of input signal features: the signal is the circuit noise in the DTMF signal plus the channel. Now, preliminary analysis shows that the background noise is gaussian background noise, which is good at not causing great loss to the DTMF frequency characteristics, this will solve the problem.
2. The signal is composed of one or more DTMF signals, but the processing is the same. This is difficult, that is, in the case of background noise, it can accurately detect the starting point of the signal and commonly used endpoint detection.AlgorithmIt may be invalid. A common algorithm is frame-based, with a frame length of 256 samples or 100 samples. The error is usually one to five frames. However, the standard DTMF signal is a dial-up key with a sound lasting for MS and a sampling rate of 8 kHz, that is, 800 samples, where only 400samples has a signal, and the rest is mute. This requires a good study of the VAD algorithm to ensure that at least 75% samples of each dial-up signal is kept, that is, 200 samples + 400 sample mute, in order to parse the corresponding value in the subsequent DTMF decoder.
3. There are requirements for algorithm complexity. in real time, we need to detect (P (CM + background noise signal) in telephone channels.
4. To implement the software structure, consider how to call the relationship between data streams and how to flow data streams. Preliminary analysis: VaDProgramTo keep running, when a signal is detected in the channel, the DTMF decoder is triggered and the corresponding key value or status number is obtained through DTMF decoder.
While (1)
{
Dtmf_real_vad ();
If (FLAG)
{
Dtmf_dec ();
}
}
Now there are so many analyses to write at that timeCodeThen modify.