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