Home |
Search |
Today's Posts |
#1
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Can someone describe how a piece of software would take a 1 bit
stream, and convert it to whatever bit depth PCM? I'm familiar with PCM sample rate conversion when the bit depths are identical. Then it's just upsample to least common multiple, filter, and downsample (assuming your going down by other than simple whole ratios). What I don't understand is how 1 bit information is piled up to make PCM words. Thanks, Sean B |
#2
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
|
#3
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Thanks Scott!
Can you zoom in on the part of the program where the 1 bit samples are added up? Say we are going from 2.8224 1-bit down to 16 bit/44.1 kHz PCM. Obviously then, 64 DSD samples need to be turned into one 16 bit PCM word. How is this done? Can you give a step-by-step description? Thanks! Sean B |
#4
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
|
#6
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Markus Mietling wrote:
(Scott Dorsey) wrote: wrote: Can you zoom in on the part of the program where the 1 bit samples are added up? Say we are going from 2.8224 1-bit down to 16 bit/44.1 kHz PCM. Obviously then, 64 DSD samples need to be turned into one 16 bit PCM word. How is this done? Can you give a step-by-step description? Thanks! It's just addition! All those 1-bit samples tell you is whether the signal is rising or falling. So if you add up the number of DSD samples that make up one PCM sample, you know how much the signal has risen or fallen between the last PCM sample and the current one. You mean, when we start at a PCM sample value of zero, and all those 1-bit DSD samples tell you that the signal is rising, then the next PCM sample will have a value of 64? And the next one 128 when everything is still rising? Right, if the DSD data is all one 1 after another. If they are alternating 1s and 0s, the next PCM sample will be the same as the last. --scott -- "C'est un Nagra. C'est suisse, et tres, tres precis." |
#7
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
" writes:
Can someone describe how a piece of software would take a 1 bit stream, and convert it to whatever bit depth PCM? I'm familiar with PCM sample rate conversion when the bit depths are identical. Then it's just upsample to least common multiple, filter, and downsample (assuming your going down by other than simple whole ratios). What I don't understand is how 1 bit information is piled up to make PCM words. Thanks, Hi Sean, DSD is just a special type of delta sigma data conversion that uses a specific modulator and oversampling ratio. I provide a very quick elementary, but I hope useful, coverage of the situation in this presentation: http://www.digitalsignallabs.com/presentation.pdf Even though this is for delta sigma D/A conversion, the same basic ideas apply to delta sigma A/D conversion. If you understand the basics I present in that paper, then a method that converts a 1-bit delta sigma bit stream to a multi-bit stream would be as follows: 1. Low-pass filter the one-bit stream. Let one state represent +1 and the other -1 at the 1-bit rate, or 64*44.1 kHz. 2. Decimate the output by 64. There are several sub-steps and considerations in implementing this (such as the design of the filter, the careful selection of accumulator word length and avoidance of overflow in the filter, and the use of polyphase filtering to reduce the computational complexity of the filter), but that's basically it. Write if you need to ask more questions. -- % Randy Yates % "Ticket to the moon, flight leaves here today %% Fuquay-Varina, NC % from Satellite 2" %%% 919-577-9882 % 'Ticket To The Moon' %%%% % *Time*, Electric Light Orchestra http://www.digitalsignallabs.com |
#8
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
|
#9
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Markus Mietling wrote:
(Scott Dorsey) wrote: Markus Mietling wrote: You mean, when we start at a PCM sample value of zero, and all those 1-bit DSD samples tell you that the signal is rising, then the next PCM sample will have a value of 64? And the next one 128 when everything is still rising? Right, if the DSD data is all one 1 after another. If they are alternating 1s and 0s, the next PCM sample will be the same as the last. So, obviously the fastest way to get from 0 to full scale is to have only 1s in your DSD data, and even under these "ideal" conditions you won't have differences between adjacent PCM sample values that are larger than 64, if we assume 2.8224 MHz DSD and 16 bit/44.1 kHz PCM. Right. This is why slew-limiting becomes a big issue with DSD. You can represent very high frequencies easily at low levels, but not at high levels. However, the way I figure it, there are 63,553 DSD samples to each PCM sample, given the rates that you describe. And it only takes 65,536 samples to go from -0dBFS to +0dbFS in a 16-bit system. In other words, the maximum frequency at 0dBFS would be 44100 / 2048, or roughly 21.5 Hz. Hz, not KHz. Where's my mistake? I think you dropped some decimal points, but the concept is sound. --scott -- "C'est un Nagra. C'est suisse, et tres, tres precis." |
#11
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
(Scott Dorsey) writes:
wrote: Can you zoom in on the part of the program where the 1 bit samples are added up? Say we are going from 2.8224 1-bit down to 16 bit/44.1 kHz PCM. Obviously then, 64 DSD samples need to be turned into one 16 bit PCM word. No, that's not how delta sigma conversion works. How is this done? Can you give a step-by-step description? Thanks! It's just addition! All those 1-bit samples tell you is whether the signal is rising or falling. So if you add up the number of DSD samples that make up one PCM sample, you know how much the signal has risen or fallen between the last PCM sample and the current one. What you describe is a nonlinear system. If implemented as you say, you would be introducing distortion into the signal. -- % Randy Yates % "Watching all the days go by... %% Fuquay-Varina, NC % Who are you and who am I?" %%% 919-577-9882 % 'Mission (A World Record)', %%%% % *A New World Record*, ELO http://www.digitalsignallabs.com |
#12
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Randy Yates writes:
(Scott Dorsey) writes: wrote: Can you zoom in on the part of the program where the 1 bit samples are added up? Say we are going from 2.8224 1-bit down to 16 bit/44.1 kHz PCM. Obviously then, 64 DSD samples need to be turned into one 16 bit PCM word. How is this done? Can you give a step-by-step description? Thanks! It's just addition! All those 1-bit samples tell you is whether the signal is rising or falling. That would be true if the output filter was a perfect integrator. Correction (now that I read your prior post and saw where you're coming from): what you describe is a gated perfect integrator. The output filter is not gated, and it's not a perfect integrator. (It's not even an ungated imperfect integrator.) -- % Randy Yates % "So now it's getting late, %% Fuquay-Varina, NC % and those who hesitate %%% 919-577-9882 % got no one..." %%%% % 'Waterfall', *Face The Music*, ELO http://www.digitalsignallabs.com |
#13
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
|
#14
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Scott Dorsey wrote:
Markus Mietling wrote: (Scott Dorsey) wrote: Markus Mietling wrote: You mean, when we start at a PCM sample value of zero, and all those 1-bit DSD samples tell you that the signal is rising, then the next PCM sample will have a value of 64? And the next one 128 when everything is still rising? Right, if the DSD data is all one 1 after another. If they are alternating 1s and 0s, the next PCM sample will be the same as the last. So, obviously the fastest way to get from 0 to full scale is to have only 1s in your DSD data, and even under these "ideal" conditions you won't have differences between adjacent PCM sample values that are larger than 64, if we assume 2.8224 MHz DSD and 16 bit/44.1 kHz PCM. Right. This is why slew-limiting becomes a big issue with DSD. You can represent very high frequencies easily at low levels, but not at high levels. However, the way I figure it, there are 63,553 DSD samples to each PCM sample, given the rates that you describe. And it only takes 65,536 samples to go from -0dBFS to +0dbFS in a 16-bit system. In other words, the maximum frequency at 0dBFS would be 44100 / 2048, or roughly 21.5 Hz. Hz, not KHz. Where's my mistake? I think you dropped some decimal points, but the concept is sound. --scott Really *DUMB* quesiton here... but can't you simply frame them? In essence, do PCM, one bit at a time? Just something I always wondered when people waxed poetic about DSD in non-audio applications - it serves the hardware engineer's desire to eliminate wires, and still makes for Nyquist-ey encodings.... next up: HTTP over SPI.... -- Les Cargill |
#15
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Les Cargill writes:
[...] Really *DUMB* quesiton here... but can't you simply frame them? In essence, do PCM, one bit at a time? Hi Les, You didn't ask me, but if Scott and you don't mind, I'll go ahead and answer. Not only no, but hell no! You'd be weighting each bit differently. It would be similar to multiplying an N-bit pcm wordstream by a ramping stream of gain values. -- % Randy Yates % "Rollin' and riding and slippin' and %% Fuquay-Varina, NC % sliding, it's magic." %%% 919-577-9882 % %%%% % 'Living' Thing', *A New World Record*, ELO http://www.digitalsignallabs.com |
#16
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Randy Yates wrote:
Les Cargill writes: [...] Really *DUMB* quesiton here... but can't you simply frame them? In essence, do PCM, one bit at a time? Hi Les, You didn't ask me, I asked everybody. but if Scott and you don't mind, I'll go ahead and answer. Not only no, but hell no! You'd be weighting each bit differently. It would be similar to multiplying an N-bit pcm wordstream by a ramping stream of gain values. You'd have to do more than just frame them. I really still don't "get" DSD, but... that's okay. It works. -- Les Cargill |
#17
Posted to rec.audio.pro
|
|||
|
|||
DSD to PCM Question
Les Cargill writes:
Randy Yates wrote: Les Cargill writes: [...] Really *DUMB* quesiton here... but can't you simply frame them? In essence, do PCM, one bit at a time? Hi Les, You didn't ask me, I asked everybody. Hi Les, Whew. I thought I was stepping on toes... but if Scott and you don't mind, I'll go ahead and answer. Not only no, but hell no! You'd be weighting each bit differently. It would be similar to multiplying an N-bit pcm wordstream by a ramping stream of gain values. You'd have to do more than just frame them. I really still don't "get" DSD, but... that's okay. It works. It's not too hard to see at least the big picture if you look at it the right way, and that way revolves around viewing things in the frequency domain. By far the most important thing to get is this: for a given bit resolution, the total quantization noise power is constant. For example if you have a one bit signal at some specified supply voltage that has a total quantization noise power of 1 milliwatt at 44.1 kHz, then running the same conversion system at 2.8224 MHz (or whatever) will still have 1 milliwatt of quantization noise power. Now if we view this noise power in the frequency domain, and we make an assumption on the input signal's randomness, that 1 milliwatt is spread evenly throughout the entire spectrum from 0 to Fs / 2 Hz. Noise power per unit bandwidth is what we call noise _power spectral density_. So if we take our 44.1 kHz 1 bit signal that has 1 milliwatt of total noise power, we'll have a noise _power spectral density_ of 1 milliwatt / 22.05 kHz = 4.44E-8 watts/Hz. Now if we clock that same converter at, say, 2.8224 MHz, then we STILL have a total noise power of 1 milliwatt, but now it's spread evenly over the entire bandwidth of 0 to 1.4112 MHz, or 3.54e-10 watts/Hz. So if we simply lowpass filter this 2.8224 MHz signal at 22.01 kHz, we cut out a large portion of the quantization noise, and that's _part_ of the reason we get better than 1 bit resolution with just a 1 bit converter. This is what I call "oversampling" in the short presentation I cited a couple of posts ago, and it's illustrated in Figure 3. The final twist to delta sigma modulation is that we don't just leave the quantization noise flat over the band. It turns out that we can actually redistribute the noise in frequency by placing feedback around the quantizer. This is called "noise-shaping." For example, we can move the noise that is in the lower power of the spectrum up into the higher part of the spectrum. Then when we filter with the lowpass filter mentioned above, we are left with even less in-band quantization noise power and therefore have improved the effective resolution of our "1-bit" converter dramatically compared to oversampling alone. And that's the gist of it. -- % Randy Yates % "So now it's getting late, %% Fuquay-Varina, NC % and those who hesitate %%% 919-577-9882 % got no one..." %%%% % 'Waterfall', *Face The Music*, ELO http://www.digitalsignallabs.com |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
question about live shows (the band simple minds) and unrelated audio question | Tech | |||
question about the band Simple Minds (and live show question) | Pro Audio |