Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Goertzel

Sascha
Beginner
306 Views

Hello all,

how to use Goertzel function to detect DTMF signal?
As source I have PCM data 48000Hz splitted into 40ms slices.
How to detect the key 1 (two tones 697Hz and 1209Hz) ?

 

0 Kudos
3 Replies
Igor_B_Intel1
Employee
306 Views

Please check file at samples: speech-codecs\codec\speech\td\src\usc_dtmf.c.

Please take a not that this is only sample and does not conforms to standard.

0 Kudos
Sascha
Beginner
306 Views

what about ipp Goertz function?

IppStatus ippsGoertz_16s_Sfs(const Ipp16s* pSrc, int len, Ipp16sc* pVal, Ipp32f rFreq, int scaleFactor)

what is the "rFreq" in my case?

0 Kudos
Sascha
Beginner
306 Views

Sascha wrote:

what about ipp Goertz function?

IppStatus ippsGoertz_16s_Sfs(const Ipp16s* pSrc, int len, Ipp16sc* pVal, Ipp32f rFreq, int scaleFactor)

what is the "rFreq" in my case?

maybe someone need it, here is the answer:

//and you need scale factor 10
ippsGoertz_16s_Sfs(pBuffer, AudioSamplesPerFrame, &pVal_Low[0], (697.0f / 48000.0f), 10 );
ippsGoertz_16s_Sfs(pBuffer, AudioSamplesPerFrame, &pVal_High[0], (1209.0f / 48000.0f), 10 );

0 Kudos
Reply