DSPRelated.com
Forums

Averaging incoherent (noncoherent?) samples

Started by dcarr66 January 3, 2007
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.


"dcarr66" <carr@kenetinc.com> wrote in
news:KsydnWRd8toiIgbYnZ2dnUVZ_rWnnZ2d@giganews.com: 

> 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. > > >
What do you mean by "coherent" sampling? -- Scott Reverse name to reply
>> >> >What do you mean by "coherent" sampling? > > >-- >Scott
http://www.maxim-ic.com/appnotes.cfm/appnote_number/1040/ Dave
"dcarr66" <carr@kenetinc.com> wrote in 
news:PcudnQP3x5M9WwbYnZ2dnUVZ_uCinZ2d@giganews.com:

>>> >>> >>What do you mean by "coherent" sampling? >> >> >>-- >>Scott > > http://www.maxim-ic.com/appnotes.cfm/appnote_number/1040/ > > Dave >
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
>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
"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
>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
"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
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. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
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