CD Quality Audio 44.1kHz Delta Sigma DAC Spartan 6


Recommended Posts

To go FPGA or external dedicated DAC is the question I'm asking myself right now.

 

I'd rather go FPGA. I haven't taken a close look at Magnus's Wave-file player yet


but the two songs demonstrating his sigma-delta DAC implementation sound really impressive.

 

@asic_designer, how does it sound now ? have you got CD quality ?

Link to comment
Share on other sites

Hi,

 

after experimenting with several on-board DAC variants, I think it is very unlikely that you'll get anywhere near CD quality

As a test signal, find a single-note piano sample and listen as it decays into the noise floor. If your experience is like mine, you'll hear dirty crunch-and-grind noises when the level gets too low.

Subjectively, I'd give it 10 effective bits and that's it.

 

There are a number of decent I2C DAC modules boards out there. An on-board DAC is nice for debugging but won't cut it for any serious project.

 

I did look around for a short piano sample and found one that I think is a good test.

It's available here: http://www.saanlima.com/download/pipistrello-v2.0/piano.wav

 

To play this short sound clip on pipistrello using the waveplayer example, just copy it to the root of an sd-card and us it with the waveplayer bit file.

When I ran it on my speakers (Dell amplified PC speakers) I could not hear any difference between playing it using the PC and using the Pipistrello board.

This sample is 16-bit stereo at 44.1 KHz and the waveplayer is doing 12-bit DACs using a 120 MHz clock.

 

It would be interesting to hear what other people think about the sound quality.

 

Magnus

Link to comment
Share on other sites

 

To go FPGA or external dedicated DAC is the question I'm asking myself right now.
 
I'd rather go FPGA. I haven't taken a close look at Magnus's Wave-file player yet
but the two songs demonstrating his sigma-delta DAC implementation sound really impressive.
 
@asic_designer, how does it sound now ? have you got CD quality ?

 

 

Hi 

 

   In all honesty I can't tell the difference.  My girlfriend had been listening to me trying different fixes for this DAC issue for almost 3 or 4 days, and once I applied the fix, and she heard the music, she asked me, "so you gave up on trying to fix your circuit problem, I see you went back to playing music through your iPad."  LMAO, she didn't even realize that I was playing the music through the FPGA.   I still haven't told her LOL.

 

   So you might be able to tell the difference using an oscilloscope, but I can't hear the difference, its sounds great to me, and my girlfriend!

Link to comment
Share on other sites

I did look around for a short piano sample and found one that I think is a good test.

It's available here: http://www.saanlima.com/download/pipistrello-v2.0/piano.wav

 

Hi,

 

should do as an example. The interesting part is the last second, it does drop to about 1 bit level.

Of course, we have to crank up the volume so that the signal is still audible.

 

In general, it is impossible to judge audio quality reliably by casual listening. For example, the gain setting needs to be very high so that the artifacts we are interested in are still above hearing threshold.

I could argue whether I need that for everyday use (how did we ever manage with compact cassettes and FM radio), but then I'm compromising "CD quality".

Link to comment
Share on other sites

A lot can be improved in my setup but here are some preliminary results:

 

setup:

CD audio data: 16-bit Fs = 44100 (128Fs external oscillator connected to the FPGA)

SDM clock = 200MHz

SDM RC low-pass filter = 3.2K * 4300pF (Fc=11.5KHz)

FPGA outputs = LVTTL 24mA

 

image #1

the yellow trace is from a soundcard output (@5512.5Hz), the green trace is the sigma-delta output

-> above ~5/6KHz a sinewave just looks worse and worse as frequency increases

 

image #2

fft analysis of the sigma-delta output (@5512.5Hz)

 

image #3

frequency analysis when feeding the DAC with a sinesweep and the output is connected to a soundcard ADC

 

listening test

attached:

- before.wav = the original audio data (mezzo-soprano)

- after.wav = sigma-delta DAC then back to digital with PC soundcard ADC (Digigram VXpocket)

 

Using standard headphones on a PC I couldn't hear any differences but in a multi-amps setup the difference was clear: pristine sound quality and better dynamic range with the original audio data

 

preliminary conclusion

the sigma-delta audio quality is pretty good for an amazingly simple implementation (Xilinx xapp154 is a must-read I think)

 

 

post-37214-0-94414700-1437735000_thumb.j

post-37214-0-65808300-1437735023_thumb.j

post-37214-0-74627300-1437735052_thumb.j

before.wav

after.wav

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.