R/E/P > Bruno Putzeys (Designer) - Dave Hecht (Master Tech)

Applying Anti-Alias Filter to DSD Stream

(1/2) > >>

seanBfunky:
I'm just wondering what happens before the decimation step in the conversion of a DSD file to PCM.  How does one go about applying a low-pass filter function to a DSD stream?  So far I can't imagine how it begins.

Thanks!

Sean Broderick

olafmatt:
The first step is to treat the bitstream as if it would be a PCM signal: you 'convert' the 0's and 1's to full-scale PCM values. So in case of floating point calculations each 0 becomes a -1.0, each 1 becomes a +1.0. That gives you a 64fs PCM signal that you feed through a more or less regular filter that cuts off before Nyquist frequency of the desired output sample rate. Then just throw away the samples you don't need anymore. Converting to a multiple of 48kHz rate is a bit more tricky.
There are other ways, but this is probably the easiest to understand.

Olaf Matthes

seanBfunky:
Thanks for the explanation!  How does one determine the PCM word length?  Is it whatever the final desired word length is?

Sean B

olafmatt:
The word length usually depends on the hardware to be used. Usually it's higher than the desired output word length to avoid rounding errors when you do multiple calculations. On a PC based system that would most likely be 32bit or 64bit floating point. On an FPGA, for example,  one might use something like 48bit fixed point or whatever is needed for the desired performance or what is left in resources after all the other stuff is implemented.

Olaf Matthes

seanBfunky:
When I was asking about the word length, I was just wondering if there is a simple relationship between the rate of the Sigma-Delta modulator, and the signal-to noise of the final PCM signal, for a given output sample rate.  I was imagining the noise level would determine the bit depth needed for simple storage of the PCM signal.

Sean B

Navigation

[0] Message Index

[#] Next page

Go to full version