Re: Goertzel Alogorithm Stability in Low SNR
- From: Tim Wescott <tim@xxxxxxxxxxxxxxxx>
- Date: Mon, 12 Nov 2007 09:56:43 -0600
On Mon, 12 Nov 2007 07:37:12 -0600, superlou wrote:
Hi everyone,
I have been using a Goertzel algorithm to measure the power of 50 and 60
Hz tones in ADC data on a C6713 demo board. The technique is very
succesful given a strong signal tone. Given a signficant tone, the
measured power levels match precisely the input power and have a very low
varying range (about 1dB). However, as the signal decreases, the variance
of the measured power increases greatly. For example, with no significant
signal in a noisy environment, the measured levels vary by about 40 dB
with a 80 dB mean (numbers are arbitrary but useful for example).
You are measuring variation in dB? Relative to what? This may be why you
are seeing an apparent change in the noise 'variance' -- the term
'variance' is an absolute one, so your variance should be calculated in
ADC counts, not dB relative to the signal or some such. The filter is a
linear one, so with the same amount of noise you should always see the
same absolute variance.
With a
small signal, the variance decreases and the mean drops to 80 dB.
Hold it. You just said with no signal the mean is 80dB. It changes from
80dB to 80dB? 80dB relative to what?
As the
desired signal in the noisy environment increases, the measured levels
converge and match the changes in the input signal.
Certainly if you're expressing your output in dB this is what would appear
to be the case; as the signal swamps out the noise the dB variation due to
noise will, indeed, go down.
Since I am trying to determine the existance and strength of the desired
50/60 Hz tone by simply its rise above the noise floor, the convergance
to
underneath the apparent (no signal) noise floor is frustrating and
puzzling.
This is the first time that you've mentioned the filter variance being
less than the noise floor. Explain things thoroughly, please.
I was wondering if anyone had any experience with this effect
or had any suggestions to try.
How are you measuring noise? If you have broadband noise, then you would
expect that a narrow filter such as you implement using the Goertzel
algorithm would, indeed, have output "below the noise floor". It's why
you're using the thing, for goodness sake!
You should expect that in the presence of white noise, the noise output
power of a narrow filter is the filter's bandwidth times the spectral power
density of the noise.
While I have had minimal luck with a
moving average or windowed minema filter, the delay incurred is much
larger than allowable. I have tried various forms of windowing on the
input data, but the system still displays the same characteristics. The
Geortzel algorithm is performed on a 4000 point data buffer with new
data
shifted in in 40 point segments.
It sounds like the algorithm is doing just as it should.
--
Tim Wescott
Control systems and communications consulting
http://www.wescottdesign.com
Need to learn how to apply control theory in your embedded system?
"Applied Control Theory for Embedded Systems" by Tim Wescott
Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
.
- Follow-Ups:
- Re: Goertzel Alogorithm Stability in Low SNR
- From: superlou
- Re: Goertzel Alogorithm Stability in Low SNR
- References:
- Goertzel Alogorithm Stability in Low SNR
- From: superlou
- Goertzel Alogorithm Stability in Low SNR
- Prev by Date: Re: Goertzel Alogorithm Stability in Low SNR
- Next by Date: BaseStation Scheduling
- Previous by thread: Re: Goertzel Alogorithm Stability in Low SNR
- Next by thread: Re: Goertzel Alogorithm Stability in Low SNR
- Index(es):
Relevant Pages
|
Loading