> I'm testing an A/D converter and need to average several acquired data sets
> to improve SNR. I've done this in the past with coherently sampled data,
> but in this case the data is not coherent and I'm not sure how to proceed.
> I've tried windowing the data sets individually then averaging, but that
> didn't work.
>
> I don't have sufficient control over the instrumentation to force coherent
> sampling. Thanks in advance for any assistance.
You have not made clear what your goal is in 'improving SNR'. If you
are trying to detect spurious tones, incoherent averaging will reduce
the false alarm rate at a given detection threshold by reducing the
variance of the averaged noise background. A classic reference on this
is:
TITLE: THE DETECTION PERFORMANCE OF FFT PROCESSORS FOR NARROWBAND
SIGNALS
PERSONAL AUTHOR: Walker, R.S.
CORPORATE AUTHOR: Defence Research Establishment Atlantic, Dartmouth NS
(CAN)
ABSTRACT: The report analyses the detection performance of the Fast
Fourier Transform (FFT) type signal processor for narrowband signals in
white Gaussian noise. Sinusoidal and narrowband Gaussian signals are
considered. The signal processor structure is based on the short-time
averaged periodogram approach to spectral estimation. Processor
parameters considered in the study include time-bandwidth product, data
windowing, periodogram overlap, FFT zeroes extension and data
normalization. A building-block approach is adopted, whereby the
effects of each parameter on the detection threshold can be determined.
Results are presented in graphical form. Hence, for a selected set of
processor parameters, the appropriate detection threshold can be
readily obtained. A thorough mathematical treatment of the problem is
presented in the Appendices.
DESCRIPTORS: Detection;Detection probability;Signal to noise
ratio;Signal processing;Narrowband;White noise;Random noise;Fast
fourier transforms
REPORT NUMBER: DREA-TM-82-A; Technical Memorandum REPORT DATE: 15 Feb
1982 NUMBER OF PAGES : 107
This is downloadable for free from the Canadian DREA by searching at:
http://pubs.drdc-rddc.gc.ca/BASIS/pcandid/www/engpub/SF
Try searching by author last name in the author field. This paper comes
up in the results. And did I say what the price is?
Dale B. Dalrymple
http://dbdimages.com
Reply by dcarr66●January 4, 20072007-01-04
>Coherent averaging will improve the SNR since the signal power gain is
>N^2 while the noise gain (assuming white noise) is N.
>
>Incoherent averaging (summing magnitude or magnitude squared) does not
>improve the SNR - it only reduces the variance of the noise estimate.
>If you look at a sinusoid in noise and take a look at 1 FFT the noise
>floor jumps around quite a bit. When you start averaging the FFTs
>together the noise floor tends to smooth out and become more stable.
>This is because the variance of the noise estimate (not the variance of
>the noise itself) is reduced. This assumes that the noise is a wide
>sense stationary process.
>
>The only way to improve the SNR is to do more coherent integration
>which in my example would mean taking a longer FFT.
>
>For details you should look at the detection and estimation books:
>Whalen - "Detection of Signals in Noise"
>Steven Kay - has a couple of books out
>Van Trees - Vol. I and Vol. III in his series discuss this.
>
>Cheers,
>Dave
>
>
Thanks to everyone for the suggestions. I think have a better handle on
the problem and definitely have some reading to do.
Dave
Reply by David●January 4, 20072007-01-04
dcarr66 wrote:
> >So, it reduces to the problem "is frequency X periodic at sampling rate Y,
>
> >and what is the period if it is periodic?" that we were posed with in the
>
> >DSP intro lectures?
>
> Yes, that's a better statement of the problem.
>
> >I'd suppose the next questions would be "how good an an average do you
> >need?", and "how good is the average you are getting now?"
>
> I'm working with a 10-bit ADC that is digitizing a spread-spectrum signal
> and need to determine the adjacent channel power ratio. I need to improve
> the SNR by at least 6 dB, preferably by 10 dB.
>
> >In other terms, what do you mean by "didn't work"?
>
> The SNR didn't improve. I experimented with coherent sinusoids generated
> in Matlab, and the SNR increases by 3 dB for every doubling of the number
> of averages.
>
> Dave
Coherent averaging will improve the SNR since the signal power gain is
N^2 while the noise gain (assuming white noise) is N.
Incoherent averaging (summing magnitude or magnitude squared) does not
improve the SNR - it only reduces the variance of the noise estimate.
If you look at a sinusoid in noise and take a look at 1 FFT the noise
floor jumps around quite a bit. When you start averaging the FFTs
together the noise floor tends to smooth out and become more stable.
This is because the variance of the noise estimate (not the variance of
the noise itself) is reduced. This assumes that the noise is a wide
sense stationary process.
The only way to improve the SNR is to do more coherent integration
which in my example would mean taking a longer FFT.
For details you should look at the detection and estimation books:
Whalen - "Detection of Signals in Noise"
Steven Kay - has a couple of books out
Van Trees - Vol. I and Vol. III in his series discuss this.
Cheers,
Dave
Reply by glen herrmannsfeldt●January 4, 20072007-01-04
dcarr66 wrote:
> I'm testing an A/D converter and need to average several acquired data sets
> to improve SNR. I've done this in the past with coherently sampled data,
> but in this case the data is not coherent and I'm not sure how to proceed.
> I've tried windowing the data sets individually then averaging, but that
> didn't work.
Like others, I am a little unsure of what you are asking.
In physics, for example light (and quantum mechanics in general),
for coherent signals you sum (or average) amplitude (with appropriate
phase included), for incoherent signals you sum (or average) the power.
-- glen
Reply by Jerry Avins●January 3, 20072007-01-03
dcarr66 wrote:
> I'm testing an A/D converter and need to average several acquired data sets
> to improve SNR. I've done this in the past with coherently sampled data,
> but in this case the data is not coherent and I'm not sure how to proceed.
> I've tried windowing the data sets individually then averaging, but that
> didn't work.
How does it fail?
...
Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
Reply by Scott Seidman●January 3, 20072007-01-03
"dcarr66" <carr@kenetinc.com> wrote in
news:3O-dnXutH9snaAbYnZ2dnUVZ_vupnZ2d@giganews.com:
>>Do you need to do this in real time?? That is, can you resample with
>>interpolation to a convenient Fs, and then do your FFT's, or would
>>this cause too much distortion?
>>
>
> I'm post-processing the acquired data, so I can do whatever Matlab
> will allow! ;-)
>
> I'm not sure how I would resample, since I don't have any way of
> knowing the absolute phase of each record. The reason the data is
> noncoherent is that I'm digitizing the output from a vector signal
> generator. The generator is looping a digital vector (that is
> converted to analog) but I have no way of knowing the length of the
> internal data record. Therefore I can't select an appropriate sample
> rate (or resampled rate) that would make the data coherent.
>
> Did I understand your suggestion correctly?
>
> Dave
You seem to be wrapping this in a coherent/noncoherent way of thinking,
but to me it seems to have more to do with not knowing how to slice up
your signal to generate a meaningful average. In fact, much of the
sampled data that people tend to work with is noncoherent, as there's
often no a priori way to know the content of the signal you're working
with before you lay out your sampling scheme, yet people manage to do
ensemble averaging all the time.
It's a little tough to lay out a plan knowing little about the guts of
the problem (what the generator output look like, the frequencies of
interest with respect to the sample rate, how long you can sample for,
etc.), but I can lay out some generalities.
When doing this sort of averaging, you need some mechanism to time-lock
the epochs. The easiest way to to this would be to have something
available like a bit toggle every time the buffer on the function
generator rolls over . Barring this, I would try something like an
autocorrelation on a long record (many iterations of the buffer) with
fairly fast sampling to see if you could pull out the period-- or maybe
even just a big ol' fft would serve the same purpose, with the lowest
frequency spike indicating the frequency you want. Then, split up your
data into epochs of this period, and average. Of course, this wouldn't
time lock onto the START of the waveform, unless you have some
information about where the start is that you could apply.
If this isn't feasible (because the data is too noisy, or something like
that), I'd try some random signal processing technique, like the Welch
periodogram, to estimate the power spectral density.
--
Scott
Reverse name to reply
Reply by dcarr66●January 3, 20072007-01-03
>Do you need to do this in real time?? That is, can you resample with
>interpolation to a convenient Fs, and then do your FFT's, or would this
>cause too much distortion?
>
I'm post-processing the acquired data, so I can do whatever Matlab will
allow! ;-)
I'm not sure how I would resample, since I don't have any way of knowing
the absolute phase of each record. The reason the data is noncoherent is
that I'm digitizing the output from a vector signal generator. The
generator is looping a digital vector (that is converted to analog) but I
have no way of knowing the length of the internal data record. Therefore I
can't select an appropriate sample rate (or resampled rate) that would make
the data coherent.
Did I understand your suggestion correctly?
Dave
Reply by Scott Seidman●January 3, 20072007-01-03
"dcarr66" <carr@kenetinc.com> wrote in
news:b_CdnddgTpz1SQbYnZ2dnUVZ_qKknZ2d@giganews.com:
> The SNR didn't improve. I experimented with coherent sinusoids generated
> in Matlab, and the SNR increases by 3 dB for every doubling of the number
> of averages.
>
> Dave
>
Ensemble averaging of N epochs should increase your SNR by a factor of
sqrt(N), best case (i.e., truly random gaussian noise), so there's your
3dB.
Do you need to do this in real time?? That is, can you resample with
interpolation to a convenient Fs, and then do your FFT's, or would this
cause too much distortion?
--
Scott
Reverse name to reply
Reply by dcarr66●January 3, 20072007-01-03
>So, it reduces to the problem "is frequency X periodic at sampling rate Y,
>and what is the period if it is periodic?" that we were posed with in the
>DSP intro lectures?
Yes, that's a better statement of the problem.
>I'd suppose the next questions would be "how good an an average do you
>need?", and "how good is the average you are getting now?"
I'm working with a 10-bit ADC that is digitizing a spread-spectrum signal
and need to determine the adjacent channel power ratio. I need to improve
the SNR by at least 6 dB, preferably by 10 dB.
>In other terms, what do you mean by "didn't work"?
The SNR didn't improve. I experimented with coherent sinusoids generated
in Matlab, and the SNR increases by 3 dB for every doubling of the number
of averages.
Dave
Reply by Scott Seidman●January 3, 20072007-01-03
"dcarr66" <carr@kenetinc.com> wrote in
news:PcudnQP3x5M9WwbYnZ2dnUVZ_uCinZ2d@giganews.com:
So, it reduces to the problem "is frequency X periodic at sampling rate Y,
and what is the period if it is periodic?" that we were posed with in the
DSP intro lectures?
I'd suppose the next questions would be "how good an an average do you
need?", and "how good is the average you are getting now?"
In other terms, what do you mean by "didn't work"?
--
Scott
Reverse name to reply