Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Goertzel

Sascha
Beginner
707 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
707 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
707 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
707 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