03-07-2010 09:14 AM
Hi,
I have written a VI to detect the touch tone '1' DTMF signal (697Hz and 1209Hz) in an input received through a microphone. The VI reads the sound, assembles a waveform and then passes it through parallel bandpass filters tuned to 697Hz +/- 10% and 1209Hz +/- 1% respectively (the tighter tuning on the higher filter came after some trial and error at minimising nuisance triggering). The filtered signals are then squared and the DC signal compared against a constant in order to return a boolean output of whether the tone has been heard or not.
I have just about got this to work so that the tone can be detected without my own speech triggering it. However if I play music in the background this is causing nuisance triggers, presumably as the music contains the two desired frequencies. Also, when I clear my throat loudly that triggers it as well.
Can anybody think of a suitable method I could use to cause a trigger on the 697/1209Hz signal without background noises triggering it? I would like to keep the method as simple as possible as I would eventually like to replicate my VI in low-cost electronics, hence my use of bandpass filters.
Thanks.
03-07-2010 02:18 PM
03-08-2010 06:40 AM - edited 03-08-2010 06:40 AM
I recalled that there is a minimum signal duration for a DTMF signal. A quick google search on "dtmf singal duration" returned several links stating that the ITU minimum duration is 40 ms.
A simple timer may be sufficient;if two of the eight frequencies are simultaneously and continueously present for > 40 ms, then you have a valid entry...