Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

Goertzel

Sascha
Beginner
165 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
165 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.

Sascha
Beginner
165 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?

Sascha
Beginner
165 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 );

Reply