Jump to content
IGNORED

Multi Bit DACs vs. Delta Sigma DACs


Recommended Posts

We'll start with a multi-bit, or ladder DAC. We'll ignore all oversampling and filtering discussions for a bit, so bear with me :)

 

To understand this, we'll go over a few basics: In digital audio, a simplified view, which will do for now, is that audio is represented by a series of samples, taken equally in time. For our example, we will consider an 8 bit DAC, and the sampling rate ( the space between samples isn't very important ).

An 8 bit DAC means that is takes in an 8-bit number, which represents a value between 0 and 255 ( in our example ) - this DAC is just to explain the theory.

This works using something called binary:

Each bit is is a 1 or a 0, and where they are in the word corresponds to magnitude, as follows

128 64 32 16 8 4 2 1

 

so to represent, say 7, we write

0 0 0 0 0 1 1 1 - this equals "4 + 2 + 1" = 7

and to represent say 78 we write

0 1 0 0 1 1 1 0 - this equals "64 + 8 + 4 + 2" = 78

 

Now, for our DAC, we can map this into resistors, each one half in value to the previous one, with the idea that all the resistors being "turned on" sum up to the maximum output voltage of our DAC. We also need some kind of strobe signal to "latch" the data into all the resistors at the same time, and hold it there until the next one is ready.

So, we have a system that maps beautifully onto the data being sent in, so what can go wrong?

Well, the first ( and most troublesome problem ) we have is that those resistors have to be pretty tightly matched - they have to be exactly multiples of 2 with respect to each other, which we can just about do for 8 resistors - the one representing the 1st bit must be 128 times exactly bigger in voltage output than the smallest one. However, now consider a 16 bit DAC - the smallest one here has to be exactly 32768 times smaller, and in a 24 bit one 8388608 times smaller ( and the next one up be 4194304 smaller ). In addition, these resistors will probably vary with time and temperature, and they won't vary in the same way ( one resistor being thousands of times bigger than another one means they are pretty dissimilar physically ).

So what does this mean in terms of the output?

The biggest problem as I've said, is that the sums no longer quite add up, and they will vary as the signal varies - so an incoming sample that is say 2 bigger than the last one will actually end up being 2 and a bit bigger, or 1 and a bit bigger. There are other, more subtle problems involved, but this is the fundamental problem, which we can measure as distortion - distortion is a separate entity from noise, being something directly related to the signal.

 

note, however, that we can vary the input as much as we like, and the output will change more or less instantly between samples, depending on slew rate...

 

I'll get move onto delta-sigma later,

 

 

your friendly neighbourhood idiot

 

PS most DACs are water resistant not water proof :)

 

 

 

 

Link to comment

well, this again relates to inaccuracies between the resistors - most signals ( especially small ones ) vary around the middle of our possible ranges - in our hypothetical DAC, if you imagine that 0V is in the middle of our range ( this is known as "offset binary" ), -5V is 0, and +5V is 255, then you will see that our 0V point is 128, or:

1 0 0 0 0 0 0 0

 

so, if the signal you are trying to recreate has a tiny amount of noise, the DAC might be fed

1 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1

1 0 0 0 0 0 0 0

( i.e. 0V, - a small amount )

So the 7 resistors must sum to be exactly 1 less than the big one - i.e. this is the worst case scenario, and unfortunately, is the most likely one!

 

your friendly neighbourhood idiot

 

 

Link to comment

OK, I'm back, and I see in my absence there has been some discussion, which is good!

As Peter has correctly pointed out, my simple little DAC I have been describing is simple - this is for the purposes of letting everyone keep up, so there are other implementations, but the basic problems of multi-bit DACs remain true - no matter what you do, at some point the mismatches between resistors, or current sources become an issue, and especially around specific transitions. I'll skip over the 2's complement discussion for the moment, but we can return to it later, because I'd like to give a brief overview of Delta-Sigma implementations.

 

Again, we'll start with a conceptual DAC, and be aware that there are implementations that vary from this, but we may talk about them later, OK? We've still got quite a lot of stuff to get through..

 

OK, so the problems with multi-bit DACs are mainly linearity/distortion ones caused by mismatches in the values that sum to represent our sample. So how about we get rid of ALL mismatches, by only having one on it's ownsome - there is no possibility of one current source being different to itself, right? And, if you only have one, and it's not too important the precise value of it, you can save money on all that pesky laser trimming of resistors. So how can this possibly work?

Well, the answer to this is to think of the current source being able to switch off and on very quickly, and by "averaging out" the time it's on and off, and looking at it over time, you will get a really surprisingly accurate representation of the sample.

The way the DAC determines how much the current source should be on is done by a thing called a "modulator" - this does some quite serious maths, but the upshot of it is you feed in a sample, and out comes a pulse train that represents that sample over time. The main thing a modulator does is "noise shaping", which is where the error you get from the output being 1 bit long is fed back through a filter and accumulated, and again, through the magic of maths, all of that noise gets shifted up very high in frequency ( the noise is bizarrely required for the averaging of the output to work - it helps to linearise the output ).

How high a frequency?

Well the first types of DACs to use this sort of technology ( think bitstream ) had the bitstream running at just over 11MHz.

Now the more astute amongst you may have noticed that this technology effectively moves the problems of the DAC away from being linearity ( because the DAC is now intrinsically linear ), and into the filtering of the noise, and how well we can represent the widths of the pulses.

To give an example of how good the linearity is, Peters 0.0008% THD figure works out to be 101dB, or linear to about 17 bits, whereas there are delta-sigma designs quoted at 120dB or more, BUT notice how important the widths of the pulses are in our delta-sigma? Surely any jitter in the clock will make these pulses artificially long or short? The answer to that is, unfortunately, yes... Additionally, now we definitely require filtering on the DAC output, the output can't change as quickly as the multi-bit DAC. I'll follow this point up later, as it turns out this doesn't matter :) take my word for it at the moment, we'll come to it!

 

So, for a brief summation as to the pros and cons of each technology ( at it's most basic ):

Multi-Bit

Pros

less sensitive to jitter than delta-sigma

"easy to build" in digital processing terms

No HF noise additions

Cons

Inherent linearity problems in general

Real problem with zero-crossing

Very hard to match

Likely to vary in performance with temperature

expensive

 

Delta-Sigma

Pros

Inherently very linear

Can be very quiet

Can get excellent performance at low cost

Very likely to be more stable

Cons

Harder in processing terms

Guaranteed more HF noise

More susceptible to jitter

Can be susceptible to idle tones

 

 

 

your friendly neighbourhood idiot

 

 

 

 

 

Link to comment

Is everyone OK with the style, level of detail, etc of what I've covered so far? Too technical? Not technical enough? Or am I completely wrong?

 

I'm not going to end with X is definitely better than Y, by the way - I just ( as I keep stating ) want to provide some information as to how this stuff works, and the real pros and cons of the stuff you read about/get told by some dealer or marketing guy,

 

your friendly neighbourhood idiot

 

PS the next rambling will likely be about filtering

 

Link to comment

Right, as Peter would like me to elaborate more on WHY a delta-sigma needs to operate at such high rates:

If you imagine that your pulse width was the same speed as the sample, then your new super awesome DAC would have a S/N ratio of 6dB. Oops!

So, as I was trying to say earlier, the job of the modulator is to noise shape the data - due to some clever maths, it redistributes the noise in a much higher bandwidth, such that it's much higher in frequency than any possible audio content, but in-band, it's super low - the efficiency of this can be measured by a modern delta-sigma DAC ( like the Sabre, as mentioned by Peter ). Now the way that the noise is "shaped" comes into play here. DSD ( as used on SACD ), which is basically using delta-sigma as a medium. This runs at 2.8224MHz, 1 bit ( which is much slower than the 11MHz rate I mentioned earlier ) - this is problematic, as there is less spectrum to spread the noise over, so the noise rises very sharply above 20kHz.

 

And secondly, ( and I'll cover this when I get round to writing about filtering ), sine waves are excellent test waveforms because:

They have no impulses - so we can guarantee that in our measurements, it doesn't really matter where we start or stop

They are spectrally pure - ALL of the energy in a sinewave is contained in the fundamental

We can recreate what they should be mathematically, perfectly.

And lastly, thanks to the work of Fourier, Nyquist, and Shannon, we know that for a band-limited signal, we can reproduce it EXACTLY by combining sine waves ( of difference frequency, amplitude and phase ).

 

your friendly neighbourhood idiot

 

 

 

Link to comment

Righty-ho, I'm back, with a bit about filtering, why it's needed, how some people do it, and ( hopefully ) a super-duper google spreadsheet to illustrate some points!

 

So, we know that in digital audio, we sample the audio at a frequent, consistent rate ( say 44100 times a second ). We note the value of the sample, store it, and when we want to play it back, we feed the same data into our hypothetical dac ( imagine our simple 8 bit DAC from earlier ) at the same speed. Voila! We get back our original waveform! Or... do we?

 

Most people think that if you sample a 20kHz sinewave at 44100, you get a triangle shaped waveform out, because there are only 2 samples per cycle, right? I've linked to a google spreadsheet that ( theoretically ) anyone can open - go to the bottom and press "Edit" to begin the fun and games - it will plot data that represents a sine wave sampled at 44.1k ( red book )

 

http://spreadsheets.google.com/pub?key=tV3yza5CKyn7wn_5V7DpDLA&single=true&gid=0&output=html

 

IF something has happened, you will see a spreadsheet with a graph on it. Go to the bottom and press "Edit". There should be a frequency box that you can change. If you type in say 1000 into the box, you will see a nice sinusoid type of thing. Brilliant!

Now, try say 6000, 20000, 24100, and finally 43100.

 

Let me know if this works, and what you think,

 

your friendly neighbourhood idiot

 

 

Link to comment

Thanks clay, now this is where I can start to explain what is actually happening with sampling - I'm desperately trying to avoid the maths, so here we go:

The spreadsheet isn't quite what happens with a NOS filterless DAC, but it is close! Every DAC will have the ability to hold the output between samples ( so the graph will have flat bits between samples, and only change on sample transitions ).

 

What you are seeing here is imaging. The act of sampling something means that you are linking it forever and ever with the clock that is doing the sampling. The fascinating thing is that the set of samples you create can represent the thing you want to sample, but also it's mirror in frequency around the clock you sampled it at, and that mirror.

Whenever you sample, each point can represent a point on an infinite spectrum, mirrored around the sample clock.

So, in our example, we put in 1000Hz - what happens is that you also create tones at 43100Hz, 45100Hz, 87200Hz, etc. etc. which are basically all mixed together. Now because of the scale of the graph, these higher frequency components are invisible compared to the tone we have sampled.

When we put in 20000Hz, we also get a tone ( of the same size ) at 24100Hz. Because they are relatively close in frequency, we start to get horrible beating between them.

 

So, does this mean that all digital audio is broken?

 

Well, this is where filters come in. If you experiment in the spreadsheet, you will see that as the frequency you type goes over 22050, the frequency of the sinusoid appears to come down - this is aliasing. Any frequency over the sample rate over 2 will "fold" back over Fs/2, so if you just use a filter to ensure that nothing over Fs/2 gets into the ADC, you can avoid this...

So, how can the DAC avoid recreating all of these infinite high frequency tones? Well, if it knows that the original ADC had a filter around Fs/2, it therefore knows that there cannot be anything to reproduce above Fs/2. And this is where the anti-imaging or reconstruction filter comes in ( which can be done digitally, or in analogue ).

 

I'll let people think about what this means,

 

your friendly neighbourhood idiot

 

EDIT: it occurs to be people may get hung up on the spreadsheet - it's very simple, and if you were to put the resulting data through a properly filtered DAC, you would get out perfect sinewaves ( for frequencies up to 20k or so ). /EDIT

 

Link to comment

Peter,

 

thanks for trying it again. The most obvious analogy as to what is going on is filming a car wheel. If the car is going slowly, the film shows the wheel spinning in the right direction. As the car speeds up, at some point the camera takes a photo at the same point of the wheel revolution every frame ( so the wheel seems to stop ), and then, as the car accelerates still further, the wheel appears to go backwards.... so in sampling, you start sampling multiples of sine waves...

 

So, how does filtering help here?

 

Let's imagine a 10kHz sine wave. Now we know that the unfiltered output from our DAC will have the genuine 10k tone, plus "images" at 34.1k, 54.1k and so on. If we perform filtering, so that we guarantee the output has no images, we are left with the fundamental, perfect 10k tone and nothing else

 

So how do we do this filtering?

In the early days of digital audio, this was done using an analogue filter - this was tricky, because at 44.1k, you want to have as little attenuation as possible at 20k ( the top limit of hearing ), and as much attenuation as possible as quickly after that.

Then it was worked out you could do the majority of filtering digitally, by oversampling. That is, we take in 44.1k and output something higher in sample rate but filtered, to allow the analogue filtering to have much less work to do.

Here is another chart, this time showing a 10kHz sine wave, and the same data oversampled by 4x using a butterworth IIR filter

 

http://spreadsheets.google.com/pub?key=tqe1JKKO8uUrFitBlXUHn7g&single=true&gid=1&output=html

 

The code for generating this data is at the bottom of this post, and the butterworth code was taken from:

http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html

 

The IIR is not fantastic, but shows the concept, I think!

 

NB in the above example, the DAC is converting at 176.4k, so the analogue filter would typically start rolling off at 88.2k.

NB2 I would show 20k, but the IIR filter I've demonstrated is not fast enough. The concept, though remains absolutely correct, PROVIDING you can get a filter that is sharp enough

 

your friendly neighbourhood idiot

 

 

 

 

 

 

 

 

 

 

 

#include

#include

#define NZEROS 9

#define NPOLES 9

#define GAIN 2.327801853e+00

#define PI 3.1415926

 

float filterx2_1(float in, float *s1 , float *s2)

{

static float xv[NZEROS+1], yv[NPOLES+1];

xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8]; xv[8] = xv[9];

xv[9] = in / GAIN;

yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8]; yv[8] = yv[9];

yv[9] = (xv[0] + xv[9]) + 9 * (xv[1] + xv[8]) + 36 * (xv[2] + xv[7])

+ 84 * (xv[3] + xv[6]) + 126 * (xv[4] + xv[5])

+ ( -0.1845474211 * yv[0]) + ( -1.9712441162 * yv[1])

+ ( -9.3917143883 * yv[2]) + (-26.2001880020 * yv[3])

+ (-47.1747279540 * yv[4]) + (-56.8666310080 * yv[5])

+ (-45.9055074420 * yv[6]) + (-23.9369366310 * yv[7])

+ ( -7.3184954634 * yv[8]);

 

*s1 = yv[9];

*s2=in;

return yv[9];

}

 

float filterx2_2(float in,float *s1, float *s2)

{

static float xv[NZEROS+1], yv[NPOLES+1];

xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8]; xv[8] = xv[9];

xv[9] = in / GAIN;

yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8]; yv[8] = yv[9];

yv[9] = (xv[0] + xv[9]) + 9 * (xv[1] + xv[8]) + 36 * (xv[2] + xv[7])

+ 84 * (xv[3] + xv[6]) + 126 * (xv[4] + xv[5])

+ ( -0.1845474211 * yv[0]) + ( -1.9712441162 * yv[1])

+ ( -9.3917143883 * yv[2]) + (-26.2001880020 * yv[3])

+ (-47.1747279540 * yv[4]) + (-56.8666310080 * yv[5])

+ (-45.9055074420 * yv[6]) + (-23.9369366310 * yv[7])

+ ( -7.3184954634 * yv[8]);

 

*s1 = yv[9];

*s2=in;

 

return yv[9];

}

 

 

 

void main( void )

{

float angle=0.0,delta=0.0,sample;

float sample_rate=44100.0,freq=10000.0;

float s1,s2,s3,s4;

int loop;

FILE * res_file;

 

res_file = fopen( "C:\iir.csv" , "w" );

delta = (freq/sample_rate)*2*PI;

for( loop = 0; loop < 200; loop++ )

{

sample = sin( angle );

filterx2_1( sample , &s1 , &s2 );

filterx2_2( s1 , &s3 , &s4 );

if( loop > 100 )

fprintf( res_file , "%.6f,%.6fn%.6f,%.6fn" , sample , s3 , sample , s4 );

filterx2_2( s2 , &s3 , &s4 );

if( loop > 100 )

fprintf( res_file , "%.6f,%.6fn%.6f,%.6fn" , sample , s3 , sample , s4 );

 

angle+=delta;

}

fclose( res_file );

}

 

 

Link to comment

Right,

 

having seemingly scared some people on the forum with my scary graphs and whatnot, some people may be saying "But I've got a NOS, filterless DAC, and it sounds great!"

Well, in this case, we have to consider that everything I've said involves why we need a filter, and what happens without it.

Now consider this. The human auditory system does not have infinite bandwidth! So, NOS DACs can work because your amplifier, and speakers and ears will not have infinite bandwidth - can you hear the alias at 43.1kHz? No!

 

Unfortunately, you will have all this HF stuff that is bizarrely related to the signal, in places where the designers of your amp and speakers are definitely not expecting it. This will make a filterless DAC extremely sensitive to other things in your system ( including you! ), and the characteristics of the source material.

 

Additionally ( and bizarrely ) a properly implemented filtered DAC will have a less droopy output in frequency response terms...

 

so, there, in a nutshell, is why ( I think ) filterless DACs are not for everyone...

 

your friendly neighbourhood idiot

 

Link to comment

Hi Peter,

 

I just published the graph - I'll publish the rest of it later ( google docs it a bit of a bodge )

 

I hope that this has been informative to at least one person, and I reckon there's a good chance of at least one fact being right!

 

your friendly neighbourhood idiot

 

Link to comment

Hi Harry,

 

the best way to visualise it ( which I've only alluded to in my posts ), is if you imagine a perfect filterless DAC, you feed it a sample it, holds it perfectly for the width of the sample, the next sample comes along and it switches to it instantly before holding it again. The "instantly" bit represents infinite bandwidth, and the width of the samples gives you the link to the sample clock...

 

However, top question that I should have addressed!

 

your friendly neightbourhood idiot

 

Link to comment

@Peter,

 

the graph is just the output from the source I posted. I noticed that the magic of HTML has removed my #includes, which are stdio.h and math.h ( or is it maths.h? I can never get it right )

 

The filter is a bit poor, but illustrates the point, I hope

 

your friendly neighbourhood idiot

 

Link to comment

I think the problem is people are used to seeing "stair step" outputs at frequencies which are low, to illustrate sampling. In this case ( say 1kHz sine sampled at 44k ), it is easy to imagine that the stair steps are innocuous, which they probably are. However, the "step" does represent infinite bandwdith - think of your tweeter attempting to move from one "step" to the next instantly. It can't, because it is a bit of paper stuck to a magnet moving air, which acts as a filter. Unfortunately an amp with a high enough slew rate will reproduce these steps ( to some degree ), which do represent significant energy at HF.

As I most peoples model of sampling is this stair step, they really do get surprised seeing the representation of a 20k sinewave sampled at 44k.

What I'm trying to say is a stepped sine is a sine modulated with higher frequency stuff ( so your perfect DAC will present a stepped sine wave on it's analogue out ).

 

I don't think I'm being very clear, not your fault :(

 

your friendly neighbourhood idiot

 

Link to comment

Either I'm brilliant ( extremely unlikely ) and have explained everything everyone wants to know about sampling theory, DACs, and the finest wine to accompany a medium rare bit of lamb, or...

 

nobody cares ( actually quite likely )

people are overwhelmed

I'm completely wrong, and people are shuffling their feet, no-one quite knowing how to tell me...

people are quickly dusting off their vinyl, as digital is far more evil than they had imagined?

 

what do you think?

 

your friendly neighbourhood idiot

 

 

 

Link to comment

the magic of crossposting,

 

our posts have crossed, and I am finished for the day, but your initial response is helpful, I think!

 

Additionally, I think it says volumes that you are willing to post that you can enhance your knowledge through others - this is a good thing! The day I am expert in everything is the day I die. Although I'll be dead long before that :)

 

your friendly neighbourhood idiot

 

Link to comment

Righty ho

 

Peter has been asking about transients, and the issues of high sample rates has come up, which kind of link together. You may remember I said earlier in the thread, about how in a band-limited system you can represent everything with a combination of sinewaves?

Well, the ADC has to produce band limited output, as otherwise, how can the DAC know what to reconstruct? As an example of this, imagine you had some spurious tone in your recording studio, like say a TV whistling away at 30k - no one can hear it, and if we sample it at 44.1k using our ADC, it is happily filtered out ( as it is above our half-sampling rate ). Now imagine we remove the filter from the ADC for some reason, and therefore remove our band-limited source. The 30k tone now aliases back down to 14.1k, which our DAC ( filtered or not ) happily recreates. ( a filterless DAC will, interestingly generate the 30k tone as well, and one at 48.2k as well.

Now, fortunately, every ADC in the world is band limited, so we'll take it as a given that the audio given to the DAC is band-limited.

OK, so what happens if we have something with a lot of transients? Imagine we have something with infinite bandwidth that we are sampling? Like a perfect square wave?

It so happens we can define a square wave as an infinite series, where we have the fundamental ( say 1kHz ) - we now add an infinite number of "odd" harmonics, each one smaller by the ratio - this means a full scale 1kHz square wave can be represented by :

1kHz full scale sine wave + 3kHz / 3 + 5kHz /5 + 7kHz / 7 + 9kHz / 9, ... 1001kHz /1001 etc.

Now, as we've seen, DACs and ADCs don't have infinite bandwidth, or resolution, so either the size of the nth harmonic is lost in the noise, or we run out of bandwidth.

 

So, let us, for example consider a 3kHz square wave sampled at 44.1k. This means we can only represent the first few harmonics - (3k , 3*3k, 5*3k , 7*3k ) before we hit our nyquist wall. However, those higher harmonics we have lost are by definition outside of our bandwidth, and hence ( in theory, anyway ) inaudible. Now, our filterless DAC in this scenario reproduces baseband tones correctly, but rather than recreate the series filtered out by the ADC, it adds ones linked to the sample rate!

So, if we imagine our perfect square wave as successively smaller sines at ( truncated for brevity )

3000,9000,15000,21000,27000,33000,39000

our filtered DAC will generate successively smaller sines at

3000,9000,15000,21000

our filterless DAC will generate successively smaller sines at

3000,9000,15000,21000 and then successively BIGGER tones at 23100, 29100 , 35100 and 41100

 

 

So, the upshot of all this is that not filtering doesn't improve actual transient response. Higher sample rates WILL improve transient response, but arguably by reproducing tones we can't hear...

 

I've attached another spreadsheet that basically represents what might come out of a filtered DAC with a filtered square wave input - you may need a fast(ish) PC for this one...

 

http://spreadsheets.google.com/pub?key=tlFKNX7j9BHt02dBRm-KNcg&single=true&gid=1&output=html

 

NB note the ringing on the tops and bottoms is NOT filtering - it's Gibbs phenomenon, which means that my spreadheet isn't infinitely big....

 

your friendly neighbourhood idiot

 

Link to comment

Hi Mani,

 

the blunt answer : No.

 

Will there be differences in performance between DACs with source material with a lot of transients? Yes.

 

The ADC that does the bandlimiting will determine the distribution of the energy of that transient ( and don't forget, something hitting something may seemto be super quick, but is it in the microsecond range? doubtful ). The energy that is reproduced will vary by DAC, mostly due to the filtering in the DAC. In theory, a multibit DAC can have a higher slew rate than a delta sigma, assuming you do without a filter, but this slew rate would be utilised to build the wrong output - there is no higher frequency content in the original recording,

 

Don't forget that something like DSD can reproduce 100kHz sinewaves ( with lots of noise, right enough )...

 

Also, don't forget that most of the discussions here are talking about hypothetical systems - real ones will have different choices of compromises, but this is one area where the maths basically can't be fiddled...

 

your friendly neighbourhood idiot

 

 

Link to comment

Ummmm

 

for an input to a DAC that represents a pure tone, (at say 1k), a properly filtered DAC will have no steps - the digital filter moves them up in frequency, and the analog filter removes them completely.

A filterless DAC relies on the ear not detecting the higher frequency tones ( but the electronics might ).

 

The filtered DAC doesn't "choose" which sine wave to output ( it knows how how much bandwidth there can be encoded ) - the stepped sinewave from an unfiltered DAC is a load of sinewaves,

 

does this help, or am I making things worse?

 

EDIT: I think I may be able to demonstrate this with another idiot spreadsheet?

 

your friendly neighbourhood idiot

 

Link to comment

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

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

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

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...