Goertzel Filter returned Magnitude in relation to average energy of the buffer

221 views Asked by At

I pass a slices of a buffer to my Goertzel filter. The buffer contains freqs of 18Khz and silence. The duration of each is 75ms. Sampling rate = 44.1. It works like FSK.

I'm trying to detect the threshold of my Goertzel filter of 18KHz. I thought of measuring the average energy of a buffer by the next formula:

Energy = (1/N) * Sum(Abs(x[n])) //Where N is total number of samples in the x slice

Now, my problem is how is that energy is related to the returned value of the Goertel Filter. I have noticed that as the freq I measure is lower the Goertel's magnitude is smaller. For example: if my Goertel is tuned to detect 13K I get something like 50 to 100; for, 18k I get even smaller numbers: 0.00001 to 0.005. The array I pass is float[] and all numbers are in range of +-1. Is there any good solution for that? Thanks

0

There are 0 answers