Measuring DAC Accuracy

Discussion in 'Source Measurements' started by purr1n, Mar 30, 2017.

  1. Scott Kramer

    Scott Kramer Friend

    Pyrate
    Joined:
    May 3, 2016
    Likes Received:
    1,455
    Trophy Points:
    93
    The DSP in is i2s, DSP out does the parallel... or it's shift registers doing it between DSP/DAC chip

    Not officially supporting i2s :): http://www.superbestaudiofriends.org/index.php?threads/modi-multibit-i2s-input-mod.3492

    As for the glitch, not too worried since it's at 0 volts... I'll read up on the link.

    Thanks!
     
    Last edited: Apr 2, 2017
  2. ultrabike

    ultrabike Measurbator - Admin

    Staff Member Pyrate MZR
    Joined:
    Sep 25, 2015
    Likes Received:
    8,960
    Trophy Points:
    113
    Location:
    Irvine CA
    Holy Schitt! You guys are nutts.
     
  3. purr1n

    purr1n Desire for betterer is endless.

    Staff Member Pyrate BWC
    Joined:
    Sep 24, 2015
    Likes Received:
    89,944
    Trophy Points:
    113
    Location:
    Padre Island CC TX
    Yeah. The biggest glitch is at zero transition and there will be smalier ones at specific transitions like 16384 to 16385. Note that the S19 has glitches too... with less of spike, but seemingly at every transition.
     
  4. briskly

    briskly Friend

    Pyrate
    Joined:
    Oct 3, 2015
    Likes Received:
    59
    Trophy Points:
    18
    Location:
    New York
    The 4 MSBs for the entire AD5547 form a string DAC, so that should limit the R-2R carry effects. Maybe increase the amplitude of the wave so that you can get more sets of the MSBs in the R-2R section.
     
  5. atomicbob

    atomicbob dScope Yoda

    Pyrate BWC MZR
    Joined:
    Sep 27, 2015
    Likes Received:
    18,841
    Trophy Points:
    113
    Location:
    On planet
    For your amusement here are some 200 Hz -72 dBFS triangle measurements from the dScope.

    Modi MB powered on for several days:
    20170402 Modi MB triangle 200 Hz  -72 dBFS level accuracy.png

    Bifrost MB at 5 minutes from cold power on:
    20170402 Bifrost MB triangle 200 Hz  -72 dBFS level accuracy - 5 min warm up.png

    Bifrost MB at 210 minutes from power on:
    20170402 Bifrost MB triangle 200 Hz  -72 dBFS level accuracy - 210 min warm up.png

    Ross Martin PCM1794A (hybrid MB - DS):
    20170402 RM PCM1794A triangle 200 Hz  -72 dBFS level accuracy.png

    Violectric V800 (DS):
    20170402 Violectric V800 triangle 200 Hz  -72 dBFS level accuracy - resample off.png


    Here are the last two measured again at 200 Hz -100 dBFS:

    Ross Martin PCM1794A:
    20170402 RM PCM1794A triangle 200 Hz  -100 dBFS level accuracy.png

    Violectric V800:
    20170402 Violectric V800 triangle 200 Hz  -100 dBFS level accuracy - resample off.png
     
  6. ultrabike

    ultrabike Measurbator - Admin

    Staff Member Pyrate MZR
    Joined:
    Sep 25, 2015
    Likes Received:
    8,960
    Trophy Points:
    113
    Location:
    Irvine CA
    Looks great @atomicbob, seems like less DC block filter issues there.

    LOL! It takes days for the MB DACs to settle?! Kool! That correlates highly with what folks are saying about leaving their gear on for best results.
     
    Last edited: Apr 2, 2017
  7. purr1n

    purr1n Desire for betterer is endless.

    Staff Member Pyrate BWC
    Joined:
    Sep 24, 2015
    Likes Received:
    89,944
    Trophy Points:
    113
    Location:
    Padre Island CC TX
    @atomicbob: can you show DS DACS results with 16 bits?
     
  8. atomicbob

    atomicbob dScope Yoda

    Pyrate BWC MZR
    Joined:
    Sep 27, 2015
    Likes Received:
    18,841
    Trophy Points:
    113
    Location:
    On planet
    I'll slip it into the queue tomorrow. Rest of evening is committed by request of family.
     
  9. ultrabike

    ultrabike Measurbator - Admin

    Staff Member Pyrate MZR
    Joined:
    Sep 25, 2015
    Likes Received:
    8,960
    Trophy Points:
    113
    Location:
    Irvine CA
    BTW, just wanted to show you guys different levels of issues using a 200 Hz pyramid like signal as it goes through an high pass (DC block) IIR (5th order Butterworth) with different corner frequencies (note a servo is still an IIR filter, with maybe a very low corner frequency):

    1000 kHz (this is not only a non-linear phase cluster f**k, the signal is in the stop band of the filter, i.e. it's gone)

    triangle_IIR_10kHz.jpg

    200 Hz (right at the signal)

    triangle_IIR_200Hz.jpg

    20 Hz

    triangle_IIR_20Hz.jpg

    2 Hz

    triangle_IIR_2Hz.jpg

    0.2 Hz

    triangle_IIR_0p2Hz.jpg

    No high pass IIR

    triangle_no_IIR.jpg

    So, the corner should be in the fractions of Hz for the phase distortion to stop screwing up all the way to 200 Hz.

    Using 16 bits may or may not show the bowing deal. But it would likely be an indication of how low the DC block is in frequency, or if there is a DC block at all.

    This IMO is a trade off. Somewhere in the chain there must be a DC block to avoid DC damage to the drivers. If its not in the DAC, it's going to be in the amplifier. And depending on the corner of the high pass, one may forget about non-bowing and the kind of accuracy we are discussing here with these tests. Cuz the amplifier just undid it.

    Ideally one wants a very low corner frequency in the DC block high pass. In the analog domain this requires large resistors and/or large capacitors, or maybe a servo which exploits the high impedance of the non-inverting input of an op-amp (or similar). Large resistors are bad because they inject noise. Large caps may be expensive if one wants low distortion, and huge either way. Using op-amps may necessitate the need of one that has low offset current while at the same time being low distortion and low noise. Many such parts with the super-awesome specs are not cheap and may only be available in SMD. There are OK through-hole parts. But they are in the OK range compared to the SMD parts.

    In all cases, one still has an IIR. Best one can do is move the corner as low as possible. Which may also mean that it could take time for things to settle on turn on and off (transients).

    (BTW, I'm very much open for corrections if I said something wrong or may be misguided in my thinking above)
     
    Last edited: Apr 2, 2017
  10. atomicbob

    atomicbob dScope Yoda

    Pyrate BWC MZR
    Joined:
    Sep 27, 2015
    Likes Received:
    18,841
    Trophy Points:
    113
    Location:
    On planet
    More 200 Hz -72 dBFS triangle measurements from the dScope.

    Bifrost MB 20 hrs warm-up source word length 16 bit undithered
    20170403 Bifrost MB triangle 200 Hz  -72 dBFS level accuracy - 16 bit - 20 hr warm up.png

    Bifrost MB 20 hrs warm-up source word length 20 bit undithered
    20170403 Bifrost MB triangle 200 Hz  -72 dBFS level accuracy - 20 bit - 20 hr warm up.png


    Bifrost MB 20 hrs warm-up source word length 24 bit undithered
    20170403 Bifrost MB triangle 200 Hz  -72 dBFS level accuracy - 24 bit - 20 hr warm up.png

    Modi MB 96 hrs warm-up source word length 16 bit undithered
    20170403 Modi MB triangle 200 Hz  -72 dBFS level accuracy - 16 bit.png

    Modi MB 96 hrs warm-up source word length 20 bit undithered
    20170403 Modi MB triangle 200 Hz  -72 dBFS level accuracy - 20 bit.png

    Modi MB 96 hrs warm-up source word length 24 bit undithered
    20170403 Modi MB triangle 200 Hz  -72 dBFS level accuracy - 24 bit.png

    Ross Martin PCM1794A 1 hr warm-up source word length 16 bit undithered - coax
    20170403 RM PCM1794A triangle 200 Hz  -72 dBFS level accuracy - 16 bit - Coax.png

    Ross Martin PCM1794A 1 hr warm-up source word length 16 bit undithered - toslink
    20170403 RM PCM1794A triangle 200 Hz  -72 dBFS level accuracy - 16 bit - Toslink.png

    Violectric V800 1 hr warm-up source word length 16 bit undithered - AES
    20170403 Violectric V800 triangle 200 Hz  -72 dBFS level accuracy - 16 bit - AES - resample off.png

    Violectric V800 1 hr warm-up source word length 16 bit undithered - toslink
    20170403 Violectric V800 triangle 200 Hz  -72 dBFS level accuracy - 16 bit - Toslink - rsmpl off.png


     
  11. Clemmaster

    Clemmaster Friend

    Pyrate Contributor
    Joined:
    Sep 28, 2015
    Likes Received:
    3,273
    Trophy Points:
    113
    Truncation creates those odd order harmonics, due to its square shape.
     
  12. Garns

    Garns Friend

    Pyrate
    Joined:
    Jul 9, 2016
    Likes Received:
    2,484
    Trophy Points:
    93
    Location:
    Sydney, AUS
    Nice work!

    The 16 bit Schiit MB ones look pretty weird. Seems to correlate with what @a44100Hz and I noticed subjectively, namely that if you feed them a 16 bit rather than 24 bit signal (regardless of the bit depth of the source material) then the sound changes for the worse.

    Could you run the test on the Modi/Bifrost with 16 bit source data zero-padded to 24 bit? I would expect the results to look like the 24 bit rather than the 16 bit.
     
  13. purr1n

    purr1n Desire for betterer is endless.

    Staff Member Pyrate BWC
    Joined:
    Sep 24, 2015
    Likes Received:
    89,944
    Trophy Points:
    113
    Location:
    Padre Island CC TX
    I guess Schiit should have dithered the 20bit output to make JA happy.


    --

    I took at the peek of the output wave files from ARTA and didn't like what I saw, so I decided to write a program to produce exactly the output I desired.
    • 96kHz
    • 750Hz triangle
    • Values from -32 to 32 in up and down EXACT pattern: 0xFFE0, FFE1, FFE2 ... FFFF, 0000, 0001 ... 001E, 001F, 0020 ...
    Instead of going for 32+1 possible values like before, we will go for 64 + 1 (zero). Basically looking at the performance of the 6 LSB bits of the DAC.

    Then I wrote a program to analyze the output. I want to see how the sampled levels were being distributed at each point. Below are some preliminary results for 25 cycles. Whiter dots indicate areas of higher concentration.

    A-GD S19
    AGD S19.png

    Laptop Output
    laptop.png

    Modi Multibit
    Mimby.png

    Modi 2
    Modi 2.png

    Results are interesting. Is there such a thing as amplitude jitter?

    I'll do some more analysis of the data later.
     
    Last edited: Apr 3, 2017
  14. ultrabike

    ultrabike Measurbator - Admin

    Staff Member Pyrate MZR
    Joined:
    Sep 25, 2015
    Likes Received:
    8,960
    Trophy Points:
    113
    Location:
    Irvine CA
    I'll wager it is noise if it's all random looking. If there is a pattern I would call it distortion.
     
  15. purr1n

    purr1n Desire for betterer is endless.

    Staff Member Pyrate BWC
    Joined:
    Sep 24, 2015
    Likes Received:
    89,944
    Trophy Points:
    113
    Location:
    Padre Island CC TX
    Well, we already know the S19 has a lot of distortion. Is this distortion a result of the analog circuit, digital converters, or both? Or maybe lower frequency stuff underneath?
     
  16. ultrabike

    ultrabike Measurbator - Admin

    Staff Member Pyrate MZR
    Joined:
    Sep 25, 2015
    Likes Received:
    8,960
    Trophy Points:
    113
    Location:
    Irvine CA
    I dunno much about the S19, but here is a convenient linky to their specs:

    http://www.audio-gd.com/Master/Singularity19/Singularity 19EN_Specs.htm

    They claim it's a "Dedicated Discrete R2R DAC", which to me means they did something custom. Looking at their DA-M1 cards (assuming those are the actual DACs), I see what looks like a small & cost effective FPGA and a shit load of resistors, and then some more shit loads of resistors in another different module. Resistors may generate a bit of noise, so I would be concern about those.

    When looking at stuff in the time domain, and perhaps to check jitter and noise roughly, one can look at an eye pattern. Some folks are used to seeing "1's and 0's" (BPSK & QPSK) in those, but in reality, they are used to check things out on amplitude and quadrature amplitude modulation which have several levels. Depending on how "closed" the eye pattern is, one can get a feel for how shitty things are, both on timing and noise. It may not give you a lot more than just checking the spectrum of the output signal vs. the input signal for audio applications if trying to just differentiate between noise and distortion though.

    However, the eye pattern might give you a relatively good feel for noise/distortion in amplitude (y-axis noise) vs. jitter (x-axis noise).
     
    Last edited: Apr 3, 2017
  17. tomchr

    tomchr MOT - Neurochrome

    Joined:
    Oct 28, 2016
    Likes Received:
    513
    Trophy Points:
    93
    Location:
    Calgary, Canada
    Home Page:
    That's pretty standard fare for DC servos, actually. When I designed my Modulus-86 Rev. 1.0, I had to push the corner frequency of the DC servo way down in the mHz range, which meant the settling time was quite long (minutes). For Rev. 2.0, I ended up designing a 3rd order filter for the servo to get the corner frequency up around 0.1 Hz without mucking up the THD at 20 Hz. That reduced the settling time to a few seconds.
    It's also worthwhile to pay attention to the stop band attenuation of the DC servo for similar reasons.

    The li'l glitches as the output crosses 0 V looks like the glitch from a sub-ranging DAC. The DAC switches from one range to the other and there's a little bit of charge feeding through to the output. One of the plots showed quite a bit of buzz around that transition. That would warrant closer inspection for me.

    Tom
     
  18. atomicbob

    atomicbob dScope Yoda

    Pyrate BWC MZR
    Joined:
    Sep 27, 2015
    Likes Received:
    18,841
    Trophy Points:
    113
    Location:
    On planet
    Doesn't appear to make the difference you were seeking.

    Modi MB 96 hrs warm-up source word length 16 bit undithered padded with zeros to 24 bits
    20170403 Modi MB triangle 200 Hz  -72 dBFS level accuracy - 16 bit pad 24 CEP.png

    Here is the SPDIF signal source to the Modi MB as seen through the dScope digital inputs:
    20170403 triangle 200 Hz  -72 dBFS level accuracy - 16 bit pad 24 CEP - dScope.png

    Here is the dScope channel status display of the signal source:
    20170403 triangle 200 Hz  -72 dBFS 16 bit pad 24 undithered - source CEP ch status.png
     
  19. Garns

    Garns Friend

    Pyrate
    Joined:
    Jul 9, 2016
    Likes Received:
    2,484
    Trophy Points:
    93
    Location:
    Sydney, AUS
    Indeed, that's possibly even more weird! Anyone have any idea what is going on here? Apart from the zero-crossing glitches, is that just the upsampling filter at work? I.e., although looking weird, is it a more accurate reconstruction of the bandlimited input signal?
     
  20. atomicbob

    atomicbob dScope Yoda

    Pyrate BWC MZR
    Joined:
    Sep 27, 2015
    Likes Received:
    18,841
    Trophy Points:
    113
    Location:
    On planet
    I am surprised that no one has commented on how Modi MB hits -INF and Bifrost MB is closing in as it warms up. The hybrid MB-DS PCM1794A is further away and the DS V800 splits levels around -INF (zero). Including exact sample data vs. mathematical approximation of the source signal.

    Another thought to consider. All this focus has been on small signal behavior near zero or -INF. Consider this same small signal behavior over the entire DAC number map range. Small signal riding on a large amplitude signal.
     

Share This Page