Why I never got that perfect null in difference testing part two
by, 08-22-2012 at 11:29 PM (1240 Views)
Okay, so difference testing didn't result in perfect nulls with only thermal and flicker noise left. Why not? The most obvious answer is a difference in level between the two signals recorded. With null depths of more than 100 db it takes very little level difference to leave a bit of the music above the noise floor. So I sent simple two or three tone test signals through comparing them. Using the same equipment and cable changing nothing. Had left equipment on for minimum of three full days so they were at thermal equilibrium. Got about the same results with null depths in the 100 db to 105 db range.
I used two or three tones separated by an octave each because that waveform has a stair stepped shape. The direction of the stair stepping in the residual waveform shows which of the two files compared was higher in level. In the synthetically created file shown here, the upper trace is the stair stepping if the first file is higher in level. The lower trace has reversed stair stepping of the wave if the second compared file has the higher level. With a bit of zooming in on the view this is apparent even at very low residual signal levels.
I did in fact find even with everything exactly the same there were minor level differences between recordings. Sometimes if the signal ran a few minutes the amount of difference would vary between different times. Maybe line voltage drifted, thermal drift altered resistor values whatever. We are talking very tiny differences. How tiny? The largest were different in level by .0003 dB. Typically they were a one half to a quarter that. Audacity if you export the FFT data goes to 6 digits past the decimal which should suffice for things a bit more than 144 db down in level. You also can digitally amplify data to the 6 digit levels. Is that level difference enough to account for the residuals above the noise floor in my test results? Well most of it yes. Those level difference would leave one in the null depth range of a 100 db or so. And sometimes over several minutes doing FFT's of different portions showed levels varied a bit over time.
Now this level of variance is in the range of at worst 40 parts per million and often only around 10 ppm in my results. Not all that hard to think gain or sensitivity of my equipment varied that much.
So I just amplify the lower level file with precision and get a fully nulled out to noise result right? Well, when I did that I got better results. Null levels now dropped to -115 db or so. At least when using simple two or three tone test files. I was able to get some music files to around 110 db nulls, but those are harder to read with precision on the FFT for matching the level of one file against another. And varying signal levels in music may also cause more variance in the electronics than steady sine wave test signals.
But even with simple test signals, I didn't get a complete null to noise. I did get several to have exactly matched levels. Exactly matched to 6 decimal places anyway. I even got exactly matched levels between two different interconnect cables when I tried that. Yet a residual remained. Lower yet some 20 db above the noise floor in some cases. How is that happening? What else is there? You get levels matched and subtract two files of the same level then they should leave nothing or at 6 decimal precision what is left should be over -144 db down. Yet they did leave something. Even in the thinnest slices where gain should change the least the residuals were there above the noise floor. With plenty of amplification you could still hear the test signal amongst the noise. Not as clearly as before, but it was still there.
What the heck could it be? Then it dawned on me....timing. Timing...in digital signals you have level and timing. Could what was left be a result of timing? How can you check on timing with the equipment I have? Shouldn't locked clocks deal with this well enough?
Well the answer was yes, the remaining residual in my difference files was from timing shifts. But that I think is a good topic for part three.
Find part three here: