Jump to content
IGNORED

Multi Bit DACs vs. Delta Sigma DACs


Recommended Posts

Right, there are a couple of things with bitrate, depending on what you're talking about.

In typical terminology ( i.e. 16/44.1 , 24/96 etc ) this means: the bit depth ( i.e. how many bits are used to record the amplitude of the signal ), and the frequency at which we take those samples, so:

16/44.1 = we use a 16 bit number 44100 times a second to represent the audio. 16 bits can represent any number between -32768 and +32767

24/96 = we use a 24 bit number 96000 times a second to represent the audio. 24 bits can represent any number between -8388608 and +8388607.

Note that due to the logarithmic nature of the ear, although 24 bits has 256 times as many "steps" as 16, it won't sound 256 times better...

 

Now, in "lossy" codecs ( mp3, AAC, etc. ) the bit rate represents how much "stuff" we have to try and fit the audio into. 16/44.1 ( stereo ) represents a bit rate of 1.411 million bits per second. A 128kbps MP3 has to try and fit that into 128000 bits ( or slightly more than 10 times less ), by throwing away stuff it judges we can't hear - give it more bits, and it will be more generous.

Note that MP3 is pretty old, and psychoacoustically more modern codecs are much better, so that for instance a 128k MP3 is probably equivalent to a 64kMP4.

 

 

As for the future, I really don't know - the way I see it, at the moment 99% of music released could be quite happily represented using LESS capability than CD ( 16/44.1 ) due to the current obsession with loudness.... If we can't even do 16/44.1 properly, and insist on squeezing all the dynamics out of it, why bother with a medium with more dynamic range?

 

EDIT: but there may be a movement for existing music to be remastered using higher sample/bits depths, and re-released for download - this makes a new revenue stream for the record label, and (in theory, anyway) gets better versions of good music into the market.

The reason I say "in theory" is a quick look at my one DVD-audio ( best of R.E.M. ) reveals it to be the original upsampled to 192...

 

your friendly neighbourhood idiot

 

 

 

Link to comment

IS that is great thanks, so 24 bit 'should' be better? Finally do you have any thought on the 'best' digital source ,do streamers ( ie squeezeboxes etc ) have any inherent advantage over a mac or pc?

Thanks again, Keith.

ps do you have a red telephone ,kept under a glass cover that I can ring in emergencies!

 

Link to comment

Well, if a device has "real" bits as opposed to "marketing" bits, then as a rule of thumb, more will be better - there are a few reasons for this, which I won't go into here ( e.g. if you are using an external filter ( which could be a PC) , the maths will always like as many bits as possible )

 

As for squeezeboxes versus Macs versus PCs, the devil is in the detail - done right, they can all be excellent, done poorly they can all be awful. My advice is always : listen to it, preferably at home in your own system. Think about whatever techno stuff you are being given - this is one of the reasons I'm posting on this forum - I'm not going to tell anybody what to buy, just what certain phrases can mean.

 

just shine the idiot-symbol into the sky. I will answer.

 

your friendly neighbourhood idiot

 

 

 

Link to comment

Note that due to the logarithmic nature of the ear, although 24 bits has 256 times as many "steps" as 16, it won't sound 256 times better...

 

Why ?

 

For easy visualization, let's say those addaitional (256 times more) bits are the vertical resolution. Now :

 

Any idea how to utilize those 256 times more resolution at a native sample rate that is 4 times more than redbook, that called the horizontal resolution ?

 

No hocus pocus about logarithmic anything, It just can't ...

 

There is a relation between the two, like double the sample rate needs one additional bit. Do that again (now 4 times) needs another bit. Done.

 

or ?

 

Your hopefully sometimes helper,

Robin.

 

Lush^3-e      Lush^2      Blaxius^2.5      Ethernet^3     HDMI^2     XLR^2

XXHighEnd (developer)

Phasure NOS1 24/768 Async USB DAC (manufacturer)

Phasure Mach III Audio PC with Linear PSU (manufacturer)

Orelino & Orelo MKII Speakers (designer/supplier)

Link to comment

You're confusing X & Y ( or time and space... Doctor Who? )

 

Right, so to deal with Y ( amplitude ).

Take your signal, and halve it in amplitude. Does it sound HALF as loud? ( it is -6dB, or 1 bit ) - this is what I mean by logarithmic hearing

 

X ( or time ) gets interesting....

I don't mean to be a tease, but the (current) thinking about sample rates calls for more in-depth analysis than I can provide today.... Additionally, fourier suggests that X & Y are linked in resolution terms ( so maybe a bit of Doctor Who... )

 

Peter, the more we talk, the more impressed I am by your being open to things that were perhaps not the way you saw them, so thank you!

 

your friendly neighbourhood idiot

 

Link to comment
  • 8 months later...

Can I revive a very interesting thread with some questions that i__s may well be able to give me a better understanding of? I'm not too well up on digital audio so don't assume you're talking to somebody with expertise - I'm mainly repeating some information that I came across on DIYAudio recently & would like to get another opinion.

 

zero volt can be represented by two different values in 16 bit two's complement

1000000000000000

and

0111111111111111

 

In a DAC without compensation this will represent two different analogue values and you can compare it to class B crossover distortion and I expect it would be just as audible."

It was also mentioned that in a 24 bit or 32bit this can be greatly reduced. For instance a 32bit DAC fed with 16bit data the 16 LSB bits should be padded with either 0 or 1 depending on if it represents a positive or negative value. Thus this crossover distortion can be pushed down 48dB (24bit) or 96dB (32bit) in level compared to a 16bit only DAC.

BUT where the 16 LSB bit values are padded with 0 for both positive and negative values this can sound worse than a 16bit only DAC. And this seems to be widely prevalent in existing DACs.

 

The argument against goes along the lines of:

"all remaining DAC's with > 16 Bit resolution except the PCM1704 are delta-sigma (with multibit cores), so any such debate is completely futile anyway, as such DAC's have native resolutions (before noise-shaping and other digital tricks) of much less than 16 bits".

 

I can't say I follow the counter argument.

 

Any help?

 

Link to comment

Well, I have my usual ignorant solution to this : I am (in XXHighEnd that is) not padding as such anyway. So, all data is assumed to be useful hence is meant for 32 bit DACs. That this least significant data is supposed to do nothing on 24 bits DACs, or better ... that it won't be used in the first place, leads to ... exactly the 0's were 0's are needed, and 1's where 1's are needed. Or in other words : I indeed "pad" 0 for positive data, and with 1 for negative data. It goes automatically.

 

I am not sure how this relates to the story you quoted, because (I think) the problem with this 2 complements issue is different (or more profound if you want);

This is about the DAC chip needing to go from all zeroes to all ones or the other way around, and it draws additional current at crossing the 0 voltage line (because it is there where this happens). So, changing one bit takes current, and changing them all at the same time takes more current, but it is not linear (because crossing the 0 volt line only happens once in a while (relatively)).

 

If one wants to counteract this it means that the swap from 0 to 1 for all of those insignificant bits shouldn't happen. This may imply that the quoted story is just about that, but I don't exactly read it in there. So, +1 and -1 are something like this :

 

10000000000000000000000100000000 (the 24th bit is 1 here)

01111111111111111111111011111111 (the 24th bit is 0 here)

 

and in both cases this is padded with zeroes. But, the negative number physically gets padded with ones, and this is what I meant to say in the beginning. This means that the negative number should be padded with ones, so this comes from it :

 

10000000000000000000000100000000 (positive number padded with zeroes)

01111111111111111111111000000000 (negative number padded with ones)

 

 

So what you see is that those rightmost 8 bits don't swap anymore at crossing zero volt ... and what you also see is that my story indeed is the same as the quoted one.

So, at least I now understand. Hehe

 

But, if all is right those least significant bits don't do anything. They will be thrown out. So here I'm lost.

So ... This must be about 24 bit DACs fed with 16 bit native data, explicitly padded with zeroes (which I again don't do), so you are playing 16 bit data onto a 24 bit DAC, the LSbs never used.

 

 

100000000000000100000000 (positive number padded with zeroes, 24 bits)

011111111111111000000000 (negative number padded with ones, 24 bits)

 

 

Notice that the first 16 bits in use "randomize". So, they don't look as you see above (this would look like this for +1 and -1). Now *because* they randomize, the right 8 bits become profound. In the last example above they do nothing. But now look at this :

 

 

101100011010010100000000 (positive number padded with zeroes, 24 bits)

011011000110101011111111 (negative number padded with zeroes, 24 bits)

 

 

The left part is nicely messy, while the right part will create a pattern (at drawing current) because it will always switch between these both values at crossing zero).

 

So yes, I think the story is good.

 

About the last part, Sigma-Delta vs. multibit;

That would be true too, because the bits are processed sequentially with the former; there is no such thing as a current draw because all bits swap at one time. The bits will swap anyway, but I don't think this will influence the current draw. This, then, whould merely be about state changes, and a value (like for the next read bit) not changing state draws less current. Maybe.

The PCM1704 has explicit provision for this crossing zero distortion, but this is not about unused LSBs and merely a general solution.

 

This was my take. A bit of a too long story, but I guess it made me learn something again.

 

Peter

 

Lush^3-e      Lush^2      Blaxius^2.5      Ethernet^3     HDMI^2     XLR^2

XXHighEnd (developer)

Phasure NOS1 24/768 Async USB DAC (manufacturer)

Phasure Mach III Audio PC with Linear PSU (manufacturer)

Orelino & Orelo MKII Speakers (designer/supplier)

Link to comment

Thanks Peter

But I guess the first part of the story is crucial to my understanding & to the rest of the post because it goes on to say how this distortion can be reduced significantly in DACs that accept 24 or 23 bit word lengths.

 

zero volt can be represented by two different values in 16 bit two's complement

1000000000000000

and

0111111111111111

 

In a DAC without compensation this will represent two different analogue values and you can compare it to class B crossover distortion and I expect it would be just as audible.

 

First can somebody explain this part & say how prevalent this is in practise?

 

Link to comment

Hi,

 

I'm afraid the above example is about as wrong as it can get...

 

Let us imagine we have a DAC, and it has a range -2V to +2V, so 0V is right in the middle. In 16 bit terms ( MSB on the left, LSB to the right ):

-2V = 1000000000000000 ( -32768 )

0V = 0000000000000000 ( 0 )

+2V = 0111111111111111 ( +32767 )

 

So the crossover distortion is not this case.

 

The nonlinear distortion you get with a ladder DAC/multibit DAC is as follows:

Let's imagine we have a ramp, starting at 0V and going up, and we'll use a 4 bit DAC to make it easier:

0000 - no current sources

0001 - one current source, representing 1/16th of full scale ( 1/16 )

0010 - one current source, representing 1/8th of full scale ( 2/16 )

0011 - two current sources, representing 1/8th and 1/16th of full scale ( 3/16 )

0100 - one current source, representing 1/4th of full scale ( 4/16 )

0101 - two current sources, representing 1/4th and 1/16 of full scale ( 5/16 )

 

Now, as you can imagine, if our current sources ( resistors ) are not exactly[/b] multiples of two, our sums don't add up. In a 16 bit DAC, our LSB current source must be exactly 32768 times smaller than the MSB. For a 24 bit DAC, your LSB must be exactly 8388608 times smaller...

 

The problem is exacerbated by the zero crossing. In this case, the codes come against us, as in a 16 bit DAC, the least negative value (-1) is 1111111111111111, so the error is the accumulation of all the errors

 

I'll try and cover some more points later,

 

your friendly neighbourhood idiot

 

 

 

Link to comment

The way the 1704 works internally ( as I understand it, anyway ) they largely remove the zero-crossing problem by having 2 DACs per channel. The first DAC handles all positive signals ( i.e. the MSB is clear )

The second DAC handles all negative values. It does this by inverting the state of all the bits and adding 1...

so, our least negative value ( -1 ) is all 1's. We invert these, to become all 0's and add 1 to get all zeroes apart from the LSB.

The main problem with the zero crossing now is making sure both DACs are matched, which they appear to do pretty well....

 

your friendly neighbourhood idiot

 

Link to comment

Yes, I think it was wrongly stated originally & should have read:

0000000000000000 is zero volt

1111111111111111 is also zero volt

 

Does this now make any sense?

 

I still don't know what he means by this represents two different analogue values? It represents zero volts in both cases, no?

 

Link to comment

That would be less convenient I think. Not much "honest" as well. Because you know, the sound waves, as the voltage of a DAC just are negative and positive. This, while only positive exists just the same (in electronics).

 

So, working with a positive (or unsigned) value of course could work, but at some stage something would have to say "and anything above 32767 must be treated as negative". Hardware wise this is not a convenient thing ...

 

2c,

Peter

 

Lush^3-e      Lush^2      Blaxius^2.5      Ethernet^3     HDMI^2     XLR^2

XXHighEnd (developer)

Phasure NOS1 24/768 Async USB DAC (manufacturer)

Phasure Mach III Audio PC with Linear PSU (manufacturer)

Orelino & Orelo MKII Speakers (designer/supplier)

Link to comment

Hi,

0000000000000001 = 1/32768

0000000000000000 = 0

1111111111111111 = -1/32768

1111111111111110 = -2/37268

definitely different.

 

There is always the issue of a slight DC offset ( where the min value is -32768, and the positive is +32767 ), but a better way to deal with this is make the extreme negative clamped by a sample

 

Peter is correct in that offset binary is a pain to use - extending wordwidths for instance is trivial in 2's complement, but in offset you need to set the midpoint to be different for different wordlengths

 

your friendly neighbourhood idiot

 

Link to comment

There is always the issue of a slight DC offset ( where the min value is -32768, and the positive is +32767 ), but a better way to deal with this is make the extreme negative clamped by a sample

 

I missed this subtlety in your earlier post

-2V = 1000000000000000 ( -32768 )

0V = 0000000000000000 ( 0 )

+2V = 0111111111111111 ( +32767 )

 

Aha, so I think this is what he is getting at:

That +2V is actually slightly less than +2V?

That there has to be a kludge in twos compliment & the binary complement of the neg extreme value does not give the pos extreme value as in above example(-32768 Vs +32767). Does this not give rise to a type of distortion, as he stated, when the clamping/compensation mechanism isn't implemented?

 

So my question: is this mechanism implemented in all DACs or few DACs?

 

So I think his point was that by zero padding 16bit samples to 32bits you increase this error. However if you conditionally pad the 16bit samples you decrease this error. Again does this make sense?

 

Link to comment

So far as I know, sound is always a positive value- meaning that if you have any sound at all, it is at an amplitude greater than zero. There is no such animal as "negative sound"- you cannot get quieter than no sound generation at all, can you? (Forgetting about electrical noise and quantum noise.)

 

I'm missing some part of understanding here.

 

I can see some value to using signed values of course, but the output is most likely going to be clamped to a reference voltage anyway, to deal with capacitance and other issues, won't it?

 

You can tell that I don't do hardware designs, can't you? :)

 

-Paul

 

 

 

 

Anyone who considers protocol unimportant has never dealt with a cat DAC.

Robert A. Heinlein

Link to comment

I'm only reading into this stuff myself so forgive me (& correct me) if I'm wrong.

 

There is a need to represent the negative part of the analogue waveforms!

 

As far as I know DACs themselves do the padding of the data up to their native wordlength in hardware. So this does raise the question - is this all mute as most >16bit DACs are now sigma-delta (1 bit serial processors?)

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...