So today I've been trying to improve my 2nd order SD design, and the results are at least on the right track
First I tried to implement the sigma-delta in a C model, and I can honestly say that the results of the processed sounds through the model are indiscernible from the original with just 128x oversampling, so at least the model is pretty good.
(Pro audio DACs usually use 5-stage SD, and can achieve perfect conversion with just 64x oversampling.) Here are links to some samples processed with the C model:https://dl.dropbox.com/u/524989/BarryLe ... _MODEL.wavhttps://dl.dropbox.com/u/524989/BruceCo ... _MODEL.wavhttps://dl.dropbox.com/u/524989/Karsten ... _MODEL.wavhttps://dl.dropbox.com/u/524989/MartinG ... _MODEL.wavhttps://dl.dropbox.com/u/524989/Patrick ... _MODEL.wavhttps://dl.dropbox.com/u/524989/Porcela ... _MODEL.wavhttps://dl.dropbox.com/u/524989/TimFoll ... _MODEL.wavhttps://dl.dropbox.com/u/524989/TimFoll ... _MODEL.wavhttps://dl.dropbox.com/u/524989/TimFoll ... _MODEL.wav
I also played some MODs on the FPGA itself, here are the links:https://dl.dropbox.com/u/524989/Enigma_FPGA.mp3https://dl.dropbox.com/u/524989/GauntletIII_FPGA.mp3https://dl.dropbox.com/u/524989/GuitarSlinger_FPGA.mp3https://dl.dropbox.com/u/524989/Stardust_FPGA.mp3https://dl.dropbox.com/u/524989/UnrealII_FPGA.mp3
The FPGA output has a slight high-pitched tone present, I believe it's probably my power supply and/or recording setup. I'll look into that later. I also tested the game Gods, and I didn't hear any spurious noises after jumps, picking up stuff etc.
- I used MMrobinsonb5's silence fix (thanks!)
- the input of the SD is passed through a 16-stage linear interpolator
- all bits of the input are used, so no dithering is applied
- I improved the quality of the noise generator by using two independent LFSR PRNGs, which are combined and slightly high-pass filtered and they give a pretty good HP triangular-shaped PDF noise
- the random noise is applied directly before the quantizer, which will help randomize the 1/0 output of the SD, but should not be detectable, as the error feedback will in this case cancel it out
- some noise-shaping is applied to the error feedback signal
Like I said, the SD will probably need some further fixes, or it even might not work out at all. In any case, I attached the Audio.v file for anyone interested.