0
$\begingroup$

I'm trying to apply a goertzel filter on my sound data of 20500 Hz with sampling rate of 44100[samples/sec]. My bit duration which is passed to the goertzel function is returning a very low magnitude at high freqs. So, I've noticed that as bit duration is lower the magnitude also is lower. The 2 parameters of increasing the freq and decreasing the singal's duration is making the magnitude be closer to 0. For instance: 0.00005.

I saw on wikipedia that the filter has 2 poles on the unity circle of it's Z-Transform - causing it be unstable.

My question is: if I use a very small signal duration, for example 5ms would it make a sense to duplicate this frame's singal several times to make the whole new frame larger so the goertzel have a lot of more samples?

$\endgroup$
  • $\begingroup$ When you talk about high frequencies, what frequency range are you referring to? I'm asking because the anti-aliasing filter also removes or strongly attenuates frequencies close to Nyquist. $\endgroup$ – Matt L. Jun 12 '15 at 10:56
  • $\begingroup$ 20500 to 20600 Hz. But also I use an app with 17500 to 17600 Hz. I've tried to duplicate the array but the magnitude is even lower... $\endgroup$ – axcelenator Jun 12 '15 at 11:14
  • $\begingroup$ I wouldn't expect any significant signal contribution in that range anyway. First, because most source signals (music, speech) hardly have any power in that range, and second, because the anti-aliasing filter probably has its transition band in that region, so it starts attenuating frequencies in that range. $\endgroup$ – Matt L. Jun 12 '15 at 11:17
  • $\begingroup$ I try to demodulate FSK : 1 is 17500 and 0 is 17600. Is there any idea how to get the filter's magnitude to a higher rates? $\endgroup$ – axcelenator Jun 12 '15 at 11:18
  • $\begingroup$ What exactly do you mean by this:" My bit duration which is passed to the goertzel function is returning a very low magnitude at high freqs. So, I've noticed that as bit duration is lower the magnitude also is lower. ". Once you sampled your signal of 20500 Hz at 44100 Hz you have only a discrete sequence, no bit durations! Goertezel is just an algorithm to compute DFT efficiently when you do not need to compute DFT values for all values of frequency bins. That way, Goertzel itself does not lower or increase the values, No instability too caused by Goertzel itself! $\endgroup$ – Seetha Rama Raju Sanapala Jun 12 '15 at 22:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.