Discrete FPGA DAC project

@ska - when you quote a post I think it is ment that you should write below the white field... or you comment end up in the quoted text... as in post #80... just a friendly hint 🙂

Here:
quote.jpg


//
 
To whom it may concern.
Single tone, close proximity to carrier spectrums:
1) Wide range, general view
k5wide.png

2) Tighter range +-3Hz, few differnt windows:
 

Attachments

  • dc120.png
    dc120.png
    152 KB · Views: 146
  • g6.png
    g6.png
    152.3 KB · Views: 137
  • hft144d.png
    hft144d.png
    154.2 KB · Views: 130
  • k5.png
    k5.png
    153.2 KB · Views: 124
  • rv5.png
    rv5.png
    155.6 KB · Views: 123
  • dc120.png
    dc120.png
    152 KB · Views: 130
  • Like
Reactions: tubekiddo
Thanks for the measurements. Hard to say how they compare as this view is seldom provided in the industry (or anywhere really) - some tend to do them in their oscillators. But not on the output where it in the end matters...

I would have liked to see other high quality product show the same...

//
 
Hard to say how they compare as this view is seldom provided in the industry

One reason such measurements are not usually done is that to do it properly the clocks (DAC & ADC) need to be coherent. E.g. AP (or Cosmos ADC) does not typically allow such arrangement.

or anywhere really
https://www.diyaudio.com/community/threads/phase-noise-in-ds-dacs.387862/

Here is another one comparing my ES9038Q2M (orange) and AK4493(green) dacs (4M FFT).
 

Attachments

  • AK4493 vs ES9038Q2M phase noise.JPG
    AK4493 vs ES9038Q2M phase noise.JPG
    143.2 KB · Views: 170
  • Like
Reactions: TNT
In commercially available products like the AP, achieving synchronous sampling(no window function) is challenging. With the increasing prevalence of DACs with I2S input these days, it is possible to measure phase noise with a DIY ADC (rectangular window). Window functions forcibly set peripheral data to zero to ensure periodicity, resulting in spectral smearing as a side effect, where adjacent frequencies mix. Han has the least smearing.
While using a rectangular window prevents smearing, it requires sending a test signal from the ADC side, making it difficult for non-DIY products.

The following data is the result of synchronous sampling with the AD7768. Pic#1 to Pic#4 are data of the D90 (AK4499EQ) through I2S input. Since it's synchronous sampling, the frequency is set at 999Hz, making it an odd number for periodicity.
Pic#5 to Pic#8 is a DIY 2-bit DSM discrete DAC with synchronous sampling. Originally a 1-bit DSM, the DA part remains the same, so it's now a 2-bit DSM for improved repeatability and characteristics. Linearity issues can be digitally adjusted as they align with the cancellation of second-order distortion.

The current DAC's phase noise seems to be at an acceptable level. While vinyl is around 100 times worse, it doesn't pose an issue in terms of sound quality. All my sources are from vinyl ripping 🙂. Clock jitter in actual DACs often leads to degraded SNR, especially with devices like Rpi or SPDIF, rather than phase noise. As far as I know, D90's USB input is an exception, showing phase noise proportional to the output frequency. It's at an acceptable level, though. Therefore, for phase noise, comparing tests like 1kHz and 10kHz might be suitable, IMO.
 

Attachments

  • 2bit_F.jpg
    2bit_F.jpg
    296.7 KB · Views: 89
  • 2bit_B.jpg
    2bit_B.jpg
    298.8 KB · Views: 89
  • 2bit_H.jpg
    2bit_H.jpg
    299.3 KB · Views: 83
  • 2bit_R.jpg
    2bit_R.jpg
    301.4 KB · Views: 82
  • D90_F.jpg
    D90_F.jpg
    303.8 KB · Views: 80
  • D90_B.jpg
    D90_B.jpg
    303.2 KB · Views: 82
  • D90_H.jpg
    D90_H.jpg
    317.8 KB · Views: 83
  • d90_R.jpg
    d90_R.jpg
    301.1 KB · Views: 92
The high close-in phase noise of Topping D90 comes from the mediocre Vref regulator (ADP7112) which has high 1/f noise. IMO since inaudibility of this phase noise is unproven Vref supply or clocking is a wrong place to cut corners. But as it is not measured with AP (= at ASR) and does not impact SINAD Chi-fi manufacturers do not care about high close-in phase noise.
 
This is a comparison between the I2S and USB inputs of the D90. Originally, the phase noise of USB is worse than I2S, but it further deteriorates as the frequency increases. Since Vref is expected to remain the same even with changing inputs, the issue is likely related to the precision of the clock.
 

Attachments

  • D90_i2s1k.jpg
    D90_i2s1k.jpg
    316.3 KB · Views: 101
  • D90_i2s12k.jpg
    D90_i2s12k.jpg
    309.1 KB · Views: 97
This is a comparison between the I2S and USB inputs of the D90. Originally, the phase noise of USB is worse than I2S, but it further deteriorates as the frequency increases. Since Vref is expected to remain the same even with changing inputs, the issue is likely related to the precision of the clock.
Looks like either D90 is not working properly or there is something seriously wrong with the design.
 
Quote from @peufeu:

Note on the skirts: the amplitude of jitter and phase noise skirts is proportional to the derivative of the signal, therefore its frequency. Noise on VREF simply multiplies with the signal, so the amplitude of the skirts is constant no matter what the frequency is. So you can distinguish between the two.

https://www.diyaudio.com/community/threads/phase-noise-in-ds-dacs.387862/post-7064181d

There is some other interesting commentary by a number of people in the same thread.


Also, just a reminder and as peufeu makes clear, noise skirts are not solely a function of phase noise.

To further add to possible confusion, phase noise and amplitude noise are both found in oscillators as the literature on oscillators makes clear. However the amplitude noise we speak of in dacs is related to Vref, not oscillator amplitude noise.

Regarding Topping D90, I own one. Years ago I reported that it has audible problems starting at midrange frequencies and extending up through higher frequencies. However I got some arguments from other people who didn't hear the issue with D90. Maybe there are thresholds of audibility for lots of different things. For people who are in the less sensitive 50% of a particular audibility threshold bell curve, the reality for them may tend to be that some problems do not exist or are not important. For anyone interested, there is some science relating to perception of reality in humans but its probably not necessary to go into it more right now.
 
Last edited:
To say a little more about the clocks in D90, they are Accusilicon 45/49MHz. They are buffered by a CPLD. For some dac operating modes the CPLD also divides the clock frequency by two. The clocking design in D90 could be better implemented in multiple ways, but it would have added add to increased cost of the product.

Also, since D90 does not have an ASRC, when driven from external I2S, presumably the Accusilicon clocks are not used. Using external clocking through D90 external I2S implementation might result in increased jitter. However, with FFT averaging the noise floor may look very smooth due to the boxcar filtering effect of signal averaging. Looking smooth on an FFT is no guarantee of sounding smooth. Even a very low FFT average noise floor does not necessarily mean there is not occasional audible impulsive noise, it only means the average noise is low.
 
Last edited:
Using external clocking through D90 external I2S implementation might result in increased jitter.
In post#89 USB has huge noise skirts compared to I2S so this is not about jitter in external I2S implementation.
Looking smooth on an FFT is no guarantee of sounding smooth. Even a very low FFT average noise floor does not necessarily mean there is not occasional audible impulsive noise, it only means the average noise is low.
You really should try to make some FFT measurements e.g. with REW. Then you would probably notice that there is a peak display available.
 

Attachments

  • REW_peak.JPG
    REW_peak.JPG
    246.9 KB · Views: 95
Peak FFT displays still depend on the number of FFT points, since FT is an integral transform there is always some averaging effect. That's true even if no other averaging is used. Windowing can also obscure evidence of short-time events depending their location in the acquisition sequence.

OTOH, short-time FFTs are sometimes used when there is more interest in time domain behavior.
https://en.wikipedia.org/wiki/Short-time_Fourier_transform
 
FFT length can be increased to 32M if needed. And it is possible to make a recording and analyze each individual sample and calculate peaks. I have never seen abnormally high peaks that would have been missed in FFT spectrum. I doubt you have neither as you don't measure.