Re: anti-aliasing



John Larkin wrote:
On Mon, 26 Nov 2007 12:31:52 -0500, Phil Hobbs
<pcdh@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

Tim Wescott wrote:
John Larkin wrote:
On Mon, 26 Nov 2007 09:33:28 -0500, Fred Bloggs <nospam@xxxxxxxxxx>
wrote:

Suppose one (actually, me) were firing an adc at some fixed rate,
ballpark 12 KHz in this case, and the input to the adc was a sine wave
of fixed but unknown frequency. The adc will take a bunch of samples,
ballpark 1000 maybe, and I want to compute the mean (ie, dc value) and
the mean of the abs value of the samples (ie, the ac value). That
works, but sometimes the input frequency aliases against the sample
rate and messes up the data, like gives a big average dc value when
there's really none there.

(This is not a Nyquist issue; the sample rate may be above or below
the sinewave frequency.)

So maybe I can fuzz up the sample rate so that it can't alias against
any constant sinewave frequency.

I could add a pseudo-random delay after every adc sample shot; but the
mean sample rate wouldn't change a lot. Or I could add successive
delays, essentially sweeping the sample rate down.
Do you intend on using a sample zero mean, or closeness to it, as a numerical criterion for confidence in the estimate of the mean of abs(.)?
This is a BIST (self-test) function for a DDS synthesizer. Any
significant mean value would be an indicator that something is wrong
in the stuff that generates the sinewaves. That might be excess dc
offset, clipping, or distortion.


Is there any analytical basis for this that you actually
understand?
Certainly.

What range of confidence are you looking for? 75%? 90%?
99.9%? or what? Give us some numbers.
I'd like to verify that the sinewave amplitude is within, say, 2% of
my target (that's the system spec) and that a 20 volt p-p sine has
below, say, 200 mV of offset. If I don't have aliasing, I'm seeing
offset measurements in the 50 mV range. The BIST subsystem is pretty
simple: a relay diverts the signal from the customer connector into a
12-bit ADC, and the rest is all firmware, including the ADC triggers.


There is a form of filtering
derived from principles of artificial intelligence that is more or less applicable, it is called _____ _____ filtering and it's quite powerful.
There's no filtering that can remove aliases once they're in the data.

Any ideas?
The very word "ideas" in this context actually means "guesses." That would be in keeping with your methodology. The success rate will be a function of something called the density of useful solutions...
Where do you think new concepts come from? They come from generating a
great number of ideas, and riffs on those ideas, and filtering them
for quality. A filter with no input has no output.

I wouldn't expect ideas from you, because you are hostile to the
chaotic nature of the creative process. Some people are that way, and
can do good work in other ways, but they won't allow themselves to
design.

John


Ooh. Testy.

Do you get to know what frequency the DDS is running at? If so, you could adjust your sampling rate to match, so you got a good picture of what it was doing. If the DDS always went fast enough, and the ADC sample time could be set precisely enough, you could even build up exactly one cycle of the output and analyze it for a heck of a lot more than just DC content.

Another approach would be to do it twice, with sampling rate F and F(1+1/N), where N is the number of samples. The lowest frequency that aliases both of those to DC is (N+1)*F. If you use three frequencies that are relatively prime, it'll be N**2 * F, which should be enough to cover most uses. This has the advantage of relying only on theory you can do in your sleep, which is important for a BIST routine.

Cheers,

Phil Hobbs

For N=1000, (1+1/N) is only 1.001. That won't move an alias very far.
The alias doesn't have to be to DC to mess me up, it just has to be to
a low frequency relative to my total sampling run duration.

If I did it twice, which measurement would I trust? Not the one with
the lowest DC offset, because I'm trying to measure offset.

Even three runs (which would take a lot of time) would be tricky...
would I throw out the one that has the highest DC offset, and average
the other two? Or pick the two that agree best?

Too much work!

John



It doesn't have to move it far--the aliased frequency goes from 0 to 1 cycle per N samples, which gives you a beautiful plot of the waveform. What's not to like?

If you do it three times, at least two will have similar offsets always. Majority rules.

Cheers,

Phil Hobbs

Cheers,

Phil Hobbs
.



Relevant Pages

  • Re: anti-aliasing
    ... The adc will take a bunch of samples, ... So maybe I can fuzz up the sample rate so that it can't alias against ... There's no filtering that can remove aliases once they're in the data. ... Well if your system is generating the sine wave then how does it come to ...
    (sci.electronics.design)
  • Re: anti-aliasing
    ... The adc will take a bunch of samples, ... So maybe I can fuzz up the sample rate so that it can't alias against ... There's no filtering that can remove aliases once they're in the data. ... Well if your system is generating the sine wave then how does it come to pass that you don't know the frequency? ...
    (sci.electronics.design)
  • Re: anti-aliasing
    ... The adc will take a bunch of samples, ... So maybe I can fuzz up the sample rate so that it can't alias against ... offset, clipping, or distortion. ... There's no filtering that can remove aliases once they're in the data. ...
    (sci.electronics.design)
  • Re: anti-aliasing
    ... The adc will take a bunch of samples, ... So maybe I can fuzz up the sample rate so that it can't alias against ... There's no filtering that can remove aliases once they're in the data. ... Fred keeps insulting me because I have ideas and design things. ...
    (sci.electronics.design)
  • Re: anti-aliasing
    ... The adc will take a bunch of samples, ... So maybe I can fuzz up the sample rate so that it can't alias against ... offset, clipping, or distortion. ... the expense of raising the wideband noise floor. ...
    (sci.electronics.design)