Implenting the Goertzel algorithm on the PSoC 5LP

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable
        Hello!!! I am working to get the goertzel algorithm implemented on my PSoC 5LP. I am started from one of the Filter example projects in Creator and now I am trying to figure out the best way to pull data from the Filter block into software. I found the “Filter_Read8(Filter_CHANNEL_A)” function in another example. I think this is what I need to use to pull data from the filter a sample at a time. (I am running the ADC resolution at 8 bits). Is this the best way to get the samples into software so I can run my algorithm in the for(;;) loop? Thanks for you help!!!   
0 Likes
3 Replies
WoKi_264666
Level 3
Level 3
First like received

 Hello,

   

you need a constant clock for the AD- conversion.  I have implemented the Goertzel algorithm within a timer clock ISR. Works great!!

   

Wolfgang

0 Likes
Anonymous
Not applicable
        Wolfgang, Yeah, the Goertzel algorithm is awesome. I already have it running perfectly in Matlab. Could you upload your project so I can see how you did the constant clock with the AD conversion? I am also interested in seeing how you got the algorithm working with the timer ISR. Many thanks!!!   
0 Likes
lock attach
Attachments are accessible only for community members.
WoKi_264666
Level 3
Level 3
First like received

 Hello "jravert",

   

here is a my program for decoding morsecode in an early state. It uses 3 Goertzel filters. 

   

Have a look at:

   

main.c  line 599 - some Goertzel defines

   

              420ff,  477ff

   

ADC_Int.c line 27ff definitions

   

                    77 ff the Goertzels

   

The program compiles with Creator 3.0 SP1. It is intended for CY8CKIT-003, but you can see the principles for PSoC5  too.  There are many things you must not read, it's very specific...

   

Best Easter- greetings from Germany!

   

Wolfgang

   

 

0 Likes