Vladimir Vassilevsky
Guest
|
Posted:
Thu Dec 08, 2005 1:16 am Post subject:
Re: .WAV to delta sigma bitstream |
|
|
Bob Monsen wrote:
| Quote: | I just stumbled into 'sox' for linux, which will resample, and
will also output and input from '.dat' files, which are an ascill
representation. It does something called polyphase filtering for
upsampling, which might be nice (although it is taking forever on my
art-of-fugue #1 40M input file...).
|
Polyphase filter is the standard way to do the resampling. They probably
optimized it for 100+ dB rejection for quality, which made it huge and
hungry for computing power. In your case (SNR ~ 20dB) somewhat ~30dB of
the anti aliasing is sufficient. That allows for small and fast filter.
| Quote: | The problem is 100kHz DSM frequency is too low. If you will tilt your
audio signal to increase the high frequencies before DSM, and compensate
for the tilt with the analog filter at the output, that will gain you
the additional ~6dB.
You are saying that if I do
some kind of mild highpass filtering on the input before building the DSM
bitstream, it'll help with noise by moving the energy upwards into the
filtered frequencies?
|
It is well known that the audio spectrum has much less energy at high
frequencies then at low frequencies. That allows you to boost the high
frequencies before the DSM and to cut it down with the analog filter
after the DSM. The quantization noise will be cut with that filter also,
so the resultant SNR will be better. The RIAA bias curve is an example
of such filter.
Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com |
|
Randy Yates
Guest
|
Posted:
Thu Dec 08, 2005 1:16 am Post subject:
Re: .WAV to delta sigma bitstream |
|
|
I'm glad I could help out, Bob. More to follow.
1. Why are you so ready to accept a 28 dB SNR? Is this for sound that
a human will hear? If so, this will sound horrid. Eight bits is still
pretty nasty. Ten bits doesn't sound too bad.
2. If you have a spare serial port which is associated with an 8- or
16-bit register, you can get away with 8 or 16 times higher
oversampling ratios easily by utilizing this, outputting an 8- or
16-bit word every 10 us and setting the serial clock rate to 100,000 *
N, where N is 8 or 16, respectively. You also automatically get rid of
the problem of having to shift and store the samples, assuming they're
packed into the native word-length of your processor. Have you thought
of doing it that way?
--Randy |
|