• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Using Cross Corelation to lower influence of ADC for DAC measurements

May I ask you to measure without weighting ?
It's a detail for sure, but this kind of measure is always unweighted here.
It enought only correlation
 

Attachments

  • resultCorrelNondBFSA.png
    resultCorrelNondBFSA.png
    48.3 KB · Views: 39
Seems to work for me. Effect is most easily seen with open inputs, eliminating most common mode content. Measurement titles below show total input rms level for the various tests, starting with an rms average as a reference.

View attachment 385128
for me with E1DA cosmos ADC give exactly -15db with 1000 correlation
 

Attachments

  • crossCorrelE1DAcosmosADC_Noise.jpg
    crossCorrelE1DAcosmosADC_Noise.jpg
    285.4 KB · Views: 36
what would you get with longer fft's comparable with the number of samples processed in total?
Longer FFs provide narrower bin widths, so the noise floor will drop, but the RMS value we are comparing will not change.

Edit: John @JohnPM already answered, should've read ahead.
 
In simpler terms, what happens to the CC averaging output if the ADC channel input signals are identical except for polarity? Does it (partially) cancel?
My expectation is that the correlation gives negative values for these signal components and the FFT will consider this as an amplitude and it will thus have a non zero rms value.

But as mentioned in post #112 I do see a real benefit for those systematic ADC imperfections that are polarity dependent.
Edit: I would therefore promote the proposal @KSTR made to have a button to invert the captured data of one of the channels (personally I'd prefer to have the option to invert the reference-channel)
Edit: removed systematic because I think this applies for every imperfection that is polarity dependent
 
Last edited:
What equation did you take
Averaging re1*re2 + im1*im2 for each FFT bin, the average being a proxy for the squared magnitude at that bin frequency with the proviso that it could be negative.
 
Averaging re1*re2 + im1*im2 for each FFT bin, the average being a proxy for the squared magnitude at that bin frequency with the proviso that it could be negative.
(a+Jb)*conj(a+Jb) = (a+jb)*(a-Jb) =a^2+b^2
Good for me
after, i don't understand
sqrt(SUM(a^2+b^2)/nb-correl) right for you .
If this , we continue
I try to do the simulation with same level , -134dBFS / 64k
 
In simpler terms, what happens to the CC averaging output if the ADC channel input signals are identical except for polarity? Does it (partially) cancel?
OK, finally simple enough for me to understand. :)

Yes, that works. Here it is on that Apollo Solo again for 1000 cross correlations with a synthetic 1 kHz tone injected with the appropriate polarity on each input, with some H2 and H3 to confirm they survive the processing. There isn't a lot of common mode pickup on those open inputs but enough to show it works.

1723062398324.png
 
after, i don't understand
sqrt(SUM(a^2+b^2)/nb-correl) right for you .
Once the sets of re1*re2 + im1*im2 have been summed and divided by the number of cross correlations plot 10*log10 of their absolute values, since it is possible for them to be negative at frequencies where there is no input.
 
Thinking that to the end, a gain fine-trim (for one channel would be handy to get deepest null there.
The virtual balanced input uses the FS voltage calibration values for each input to adjust the level before the sum/difference operation. The same will apply for the inversion option.
 
Yes, that works.
Ok, now I'm bit puzzled ...
Is the improvement observed really due to cross-correlation, or is it in the end rather a subtraction of the common-mode signal present on the two inputs?
(which would still be a nice result)
 
Once the sets of re1*re2 + im1*im2 have been summed and divided by the number of cross correlations plot 10*log10 of their absolute values, since it is possible for them to be negative at frequencies where there is no input.
for me is not good , look simulation , i have exactly attenuation = 5*log(N) for these levels with 2noise uncorrelated ~ 134dBFS
I have same reaction using E1DA ADC
 

Attachments

  • CorrelSimul.png
    CorrelSimul.png
    61.1 KB · Views: 23
  • crossCorrelE1DAcosmosADC_Noise.jpg
    crossCorrelE1DAcosmosADC_Noise.jpg
    285.4 KB · Views: 25
Back
Top Bottom