[The 'conjecture' is that there exists a DTMF decoding solution simply by sampling the output of a comparator. A further implied condition, known as the PICLIST criterion, is that such a solution is implementable on a PIC microcontroller and that source code is forthcoming...] > From: Scott Dattalo > > [cut] > Actually Chuck, I think this is problem that can be solved without > resorting > to analog filters. It is true that the phase between the sine waves will > vary and this will likewise cause the zero crossing points to wiggle > around. > However IMO I think you can look at say 10 or 20 milliseconds worth of > zero crossing information and still extract the high and low tones. Stay > tuned. Something tells me you're going to have a hard time doing this, Scott. For a start, there are an awful lot of unknowns (including the frequencies). If you don't know a-priori what the relative signal strengths, phases, noise and slight errors in frequencies are going to be, there's just too much that can go wrong with that nice bit stream. Another problem: your 'sampling rate' is effectively fixed at an average of 2 times per cycle - exactly the Nyquist limit. Digital filtering can oversample thus allowing some tradeoffs to be made. If you are after a _practical_ solution i.e. doesn't use more registers than are available in the typical, say, 16C84; and doesn't take more than 50ms of sampling; and is reasonably immune to all the variables listed above; then I think real analogue sampling is required. Digital filtering in some form or another, I would be willing to bet, would be the most robust method. One of the most important properties of a practical decoder would be the ability to determine when there is _not_ a DTMF signal. Digital filtering can easily determine this situation, whereas your zero-xing solution (if one exists) would have more difficulty e.g. it is fundamentally insensitive to the amplitude of the incoming signal. Regards and good luck, SJH Canberra, Australia