Sign in

username:

password:



Not a member?

Search compdsp



Search tips

comp.dsp by Keywords

Adaptive Filter | ADPCM | ADSP | ADSP-2181 | Aliasing | AMR | Anti-Aliasing | ARMA | Autocorrelation | AutoCovariance | Beamforming | Bessel | Blackfin | Butterworth | C6713 | CCS | Chebyshev | CIC Filter | Circular Convolution | Code Composer Studio | Comb Filter | Compression | Convolution | Cross Correlation | DCT | Decimation | Deconvolution | Demodulation | DM642 | DSP Boards | DSP/BIOS | DTMF | Echo Cancellation | Equalization | Equalizer | ETSI | EZLITE (Ez-kit Lite) | FFT | FFTW | FIR Filter | Fixed Point | FSK | G.711 | G.723 | G.729 | Gaussian Noise | Goertzel | GPIO | Hilbert Transform | IFFT | IIR Filter | Interpolation | Invariance | JTAG | Kalman | Laplace Transform | Levinson | LPC | McBSP | MIPS | Modulation | MPEG | Multirate | Notch Filter | Nyquist | OFDM | Oversampling | Pink Noise | Pitch | PLL | Polyphase | QAM | QDMA | Quantization | Quantizer | Radar | Random Noise | Reed Solomon | Remez | Resampling | RTDX | Sampling | Sharc | TI C6711 | Undersampling | Viterbi | Wavelets | White Noise | Wiener Filter | Windowing | XDS510PP | Z Transform


Discussion Groups

Free Online Books

See Also

Embedded SystemsFPGAElectronics

Discussion Groups | Comp.DSP | Goertzel to recognize DTMF in Java

There are 6 messages in this thread.

You are currently looking at messages 0 to 6.


Goertzel to recognize DTMF in Java - 2004-11-29 01:36:00

Hello,

Im working on the recognition, from a wav file, of DTMF tones. The
program is being done in Java. What i do is open the file, get the info
in a byte array and pass it to a double array. Now im not sure what to
do.  Ive heard that the best algorithm for this task is Goertzel, but I
havent been able to find information that works for me.

Has anybody tried this before, does it work?
Information will be greatly appreciated!

Thanks,
Dan

______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: Goertzel to recognize DTMF in Java - Jim Thomas - 2004-11-29 09:48:00



b...@yahoo.com wrote:
> Ive heard that the best algorithm for this task is Goertzel, but I
> havent been able to find information that works for me.
> 
> Has anybody tried this before,

Yes.

> does it work?

Yes.

> Information will be greatly appreciated!

Can you describe why the information you found doesn't "work" for you?


-- 
Jim Thomas            Principal Applications Engineer  Bittware, Inc
j...@bittware.com  http://www.bittware.com    (603) 226-0404 x536
Visualize whirled peas.
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: Goertzel to recognize DTMF in Java - Jake Janovetz - 2004-11-29 09:57:00

Google "Goertzel Algorithm" and you'll get the same information
cheaper.  DTMF stuff is probably the most applied case study for the
Goertzel Algorithm.

I've used the Goertzel algorithm on a number of occasions and it works
as advertised.  It's a way to form a bin computation of the DFT as a
linear filter operation.  My reference has been Proakis & Manolakis,
3rd Edition, pp480-481.  (Discrete Signal Processing (Principles,
Algorithms, and Applications).

  Jake



b...@yahoo.com wrote in message news:<1...@f14g2000cwb.googlegroups.com>...
> Hello,
> 
> Im working on the recognition, from a wav file, of DTMF tones. The
> program is being done in Java. What i do is open the file, get the info
> in a byte array and pass it to a double array. Now im not sure what to
> do.  Ive heard that the best algorithm for this task is Goertzel, but I
> havent been able to find information that works for me.
> 
> Has anybody tried this before, does it work?
> Information will be greatly appreciated!
> 
> Thanks,
> Dan
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: Goertzel to recognize DTMF in Java - Howard Long - 2004-11-29 10:37:00

Hi Dan

> Im working on the recognition, from a wav file, of DTMF tones. The
> program is being done in Java. What i do is open the file, get the info
> in a byte array and pass it to a double array. Now im not sure what to
> do.  Ive heard that the best algorithm for this task is Goertzel, but I
> havent been able to find information that works for me.

I don't know if this is any good to you, but coincidentally very recently I
wrote a DTMF decoder in C for Windows that takes WAV format input from a
soundcard in real time, and decode it for use with a simple satellite
telemetry downlink that transmits if the satellite's on board computer is
not functioning.

I did not use the Goertzel algorithm (I wasn't aware of it until now) that
looks at second harmonics of the base DTMF tones.

I found some other references and source code, but in general I found them
to be rather bad at decoding with many falsings.

The algorithm I use only looks at the fundamentals, although to avoid
falsing it takes two successive (but not interleaved) samples. It also uses
a dynamic AGC so that it works in a noisy FM channel without squelch.

The FFT is based on some old DOS code that I ported to Windows.

As this is fairly young code, it's still evolving, but it does work pretty
well as it stands. Possible changes will include interleaved sampling in
order to take advantage of the samples at the beginning and end of the
Hamming window.

There is some other stuff in there applicable to the telemetry that of
course won't be of particular interest to you!

http://www.g6lvb.com/dtmffft.zip

Kind Regards, Howard


______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: Goertzel to recognize DTMF in Java - Rick Lyons - 2004-12-01 08:16:00

On 29 Nov 2004 06:57:19 -0800, j...@yahoo.com (Jake Janovetz)
wrote:

>Google "Goertzel Algorithm" and you'll get the same information
>cheaper.  DTMF stuff is probably the most applied case study for the
>Goertzel Algorithm.
>
>I've used the Goertzel algorithm on a number of occasions and it works
>as advertised.  It's a way to form a bin computation of the DFT as a
>linear filter operation.  My reference has been Proakis & Manolakis,
>3rd Edition, pp480-481.  (Discrete Signal Processing (Principles,
>Algorithms, and Applications).
>
>  Jake

Hi,
  just to add my two cents, as far as I an tell the 
feed forward coefficient in Figure 6.17 is not correct.
The WkN factor in Eq. (6.3.9) looks correct.

[-Rick-]

______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: Goertzel to recognize DTMF in Java - Steve Underwood - 2004-12-01 09:00:00

Howard Long wrote:
> Hi Dan
> 
> 
>>Im working on the recognition, from a wav file, of DTMF tones. The
>>program is being done in Java. What i do is open the file, get the info
>>in a byte array and pass it to a double array. Now im not sure what to
>>do.  Ive heard that the best algorithm for this task is Goertzel, but I
>>havent been able to find information that works for me.
> 
> 
> I don't know if this is any good to you, but coincidentally very recently I
> wrote a DTMF decoder in C for Windows that takes WAV format input from a
> soundcard in real time, and decode it for use with a simple satellite
> telemetry downlink that transmits if the satellite's on board computer is
> not functioning.
> 
> I did not use the Goertzel algorithm (I wasn't aware of it until now) that
> looks at second harmonics of the base DTMF tones.
> 
> I found some other references and source code, but in general I found them
> to be rather bad at decoding with many falsings.
> 
> The algorithm I use only looks at the fundamentals, although to avoid
> falsing it takes two successive (but not interleaved) samples. It also uses
> a dynamic AGC so that it works in a noisy FM channel without squelch.
> 
> The FFT is based on some old DOS code that I ported to Windows.
> 
> As this is fairly young code, it's still evolving, but it does work pretty
> well as it stands. Possible changes will include interleaved sampling in
> order to take advantage of the samples at the beginning and end of the
> Hamming window.
> 
> There is some other stuff in there applicable to the telemetry that of
> course won't be of particular interest to you!
> 
> http://www.g6lvb.com/dtmffft.zip
> 
> Kind Regards, Howard

The DTMF decoder in the spandsp library at ftp://ftp.opencall.org/pub 
achieves a very low false hit rate on the bellcore test tapes. The test 
suite for it is pretty close to being what you need to decode wave 
files. The bellcore data I use has been transcribed to wave files. The 
last part of the test suite reads through those wave files looking for 
false hits. Change that to just report the hits from a wave file, and 
you should be done (assuming your wave file is sampled at 8000 
samples/second).

Regards,
Steve

______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.