I tried an experiment this evening with my 6-channel VLF receiver, which
uses a sound-card (sampled at 96KHz or 192KHz) to sample
a VLF loop antenna and amplifier, and then do power detection (and
other things) over six discrete channels, arbitrarily spaced.
The version that I’ve been using up until now uses a FIR bandpass filter
for each channel, followed by an utterly-uninteresting
power-detector chain.
I didn’t know anything about the Goertzel transform until a couple of
days ago, and decided to substitute an equivalent Goertzel
transform for each channel, to see if I could save any CPU by doing
so. The result was that I can save about 15% by going to
the Goertzel transform, instead of an FIR filter with
roughly-equivalent bandwidth.
I’m going to let it run for a couple of days to compare sensitivity.
For equally-spaced channels (which isn’t the case here), an FFT might
also be useful and slightly cheaper than a discrete FIR filter
for each channel.
–
Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
On Mon, Dec 27, 2010 at 10:12 PM, Marcus D. Leech [email protected]
wrote:
ago, and decided to substitute an equivalent Goertzel
transform for each channel, to see if I could save any CPU by doing so. The
result was that I can save about 15% by going to
the Goertzel transform, instead of an FIR filter with roughly-equivalent
bandwidth.
I’m going to let it run for a couple of days to compare sensitivity.
For equally-spaced channels (which isn’t the case here), an FFT might also
be useful and slightly cheaper than a discrete FIR filter
for each channel.
For non-equally space subband filters you can use lifting to generate
transforms with performance compariable to the FFT if you’re willing
to accept some limitations on the shape of the responses.
I’ve mostly been working on this in the area of video coding, — where
the filterbanks are small enough that I can find the coefficients via
straight numerical optimization, so I don’t know a whole lot about
constructing them in the general case. But it’s certainly an area
that someone interested in building faster filterbanks should look
into.