Hello Ez,
I am trying to properly understand the relation between gain stage, DSP headroom and serial port bit rates as the title says. The DSP is used as an active XO for stereo systems. It could be 2, 3 or 4-way systems as I have 4 stereo DAC's connected. main volume is controlled by a potentiometer.
My SS program does this:
- ASRC is used to bring SPDIF into the core. This is done with a -6dB gain before the ASRC using the F590 register as discussed here:
- Signal is now in the core at a -6dB level
- If I have inter-sample overs it may reach 0dbFS right? If so this is only really happening at high frequencies I guess, not below 80Hz
- My sources are TV toslink (fixed at 0dbFS), WIIM streamers toslink and PC toslink (both with adjustable volumes, but they will be left a 0dBFS).
- I then boost the signal with +23dB immediately
- Signal is now at +17dB maybe increasing towards +23dB at high frequencies in case of inter-sample overs.
- The boost is applied to be able to get low input signals to loud output levels as some of my source material is quite weak.
- One of the systems has very inefficient woofers and I have found this value to allow me to just barely clip the woofer amp at bass heavy tracks and volume at full.
- I then enter my filters where I am left with 42dB - 17dB(23dB) = +25dB(19dB) of headroom.
- Lets say I boost 20Hz by +20dB. I then still have 5dB of headroom at 20Hz.
- My tweeter is reduced by -10dB so I should have some 29dB of headroom here in the case of inter-sample overs at the SPDIF input.
- Then I enter my volume control which is controlled by a potentiometer.
- The signal before this volume control could be up to +37dB at 20Hz.
- The volume potentiometer is adjusted according to the source material in the range from muted to -0dBFS. Most of the time at very low levels (when used with PC speakers).
- Then I truncate the output signal by:
- Soft clip limiters set to -3dB on both tweeter and midrange outputs - Limit will most likely never be even close, but just for safety.
- Multiband compressor on my woofer also set to -3dB. To avoid a 20HZ 0dBFS to kill 200Hz bas.
- Then I hand over the signal to the serial ports set to 24 bit.
- My DAC's are set up so that a -3dBFS signal results in 4Vrms output (which is what I want when my volume potentiometer is at the max).
- Done to also avoid inter-sample saturation of the DAC IC itself. They are AK4493 DAC's. Not sure if this step is actually needed or if I could safely feed it 0dbFS or maybe -1dBFS.
- My amplifiers input buffers are adjusted so the 4Vrms input results in what ever power level I require for a given speaker driver.
I then have a couple of questions:
- First off, is this general gain stage a reasonable way of doing it?
- I had originally placed my volume control before the filters, but I thought it would make sense to give the math the biggest possible signal level to work with at all times as the device will often be used at very low volumes(PC speakers).
- What exactly does the serial ports bit rate setting do?
- One of Dave's videos on Youtube he mentions the cores takes a 24 bit signal in in the 1.23 format. Then internally treats it as a 32bit signal in the 8.24 format allowing to boost he signal by some 42dB. Then truncate it and outputs it as 24 bit in the 1.23 format again. Is this always the case or does the serial ports bit rate change this?
- Lets say I were to set the serial outputs to 32 bits. Would the core still need to truncate the cores 32 bits down to 24 bits before the output or would I need the full +42dBFS headroom in order to get the full resolution from a 32bit serial port?
- I have a feeling the above statement is completely wrong and the serial port resolution has nothing to do with the DSP cores bit rate. right?
- Does it make sense to limit my outputs to -3dBFS or is -1dB good enough?
