In several threads related to DSP platforms I've seen requests for measurements with filters engaged. I thought it unlikely that implementing filters in a DSP would have measurable effect on noise / distortion other than the obvious change in the fundamental, however @Sokel recently mentioned that he returned his miniDSP Flex after observing noise / distortion issues with filters applied. This piqued my interest as a long time DSP user and I decided to explore it for myself.
The first issue is what filters to use and what tests to run. I decided to use filters for my LXmini + sub system, this gives a convenient way to compare relative differences between DSP platforms. Here are frequency response sweeps of the three channels at -1 dBFS.
I made purely digital measurements as this gives the most resolution and the following tests.
1) 1 Hz to 48 kHz frequency sweep at -1 dBFS (these were identical for all DSPs)
2) 30 Hz, 100 Hz, 500 Hz, 1 kHz, 5 kHz -1 dBFS FFTs, 20 Hz to 22 kHz measurement bandwidth
3) 1/3 octave 32 tone multitone -10 dBFS FFT, 0 Hz to 48 kHz measurement bandwidth
I tested the following DSP platforms: miniDSP 2X4HD, miniDSP nanoDIGI, miniDSP miniSHARC + DIGI-FP, CamillaDSP + MOTU Ultralite Mk5. For all DSPs other than the 2X4HD I used the TOSLINK output from a 2015 Macbook Pro running at 96 kHz / 24 bit for playback and a Hifime UR23 TOSLINK to USB converter for capture. For the 2X4HD I used bi-directional USB audio. I should warn that I made far too many measurements and I am struggling with the best way to present the data. In general I am leaning towards using dBFS scaling for the plots as it shows the noise floor at a consistent level even when the fundamental is changing.
First let's look at CamillaDSP + MOTU Ultralite Mk5 as this was the best of the bunch. Applying filters results in almost no degradation in performance. The slight decrease in relative noise performance seen on the single tone FFTs is due to lower level from the filter. Similarly THD performance is in general better with the filter due to the lower level.
Sub - CamillaDSP + MOTU Ultralite Mk5
Base: Input RMS -1.00 dBFS, THD: -151.4 dB based on 49 harmonics [20..22000 Hz], N: -147.8 dB [20..22000 Hz], THD+N: -146.2 dB [20..22000 Hz]
Sub: Input RMS -7.27 dBFS, THD: -162.5 dB based on 49 harmonics [20..22000 Hz], N: -142.2 dB [20..22000 Hz], THD+N: -142.2 dB [20..22000 Hz]
Low - CamillaDSP + MOTU Ultralite Mk5
Base: Input RMS -1.00 dBFS, THD: -151.4 dB based on 49 harmonics [20..22000 Hz], N: -147.7 dB [20..22000 Hz], THD+N: -146.2 dB [20..22000 Hz]
Low: Input RMS -5.21 dBFS, THD: -155.8 dB based on 49 harmonics [20..22000 Hz], N: -144.2 dB [20..22000 Hz], THD+N: -143.9 dB [20..22000 Hz]
High - CamillaDSP + MOTU Ultralite Mk5
Base: Input RMS -1.00 dBFS, THD: -151.9 dB based on 21 harmonics [20..22000 Hz], N: -147.9 dB [20..22000 Hz], THD+N: -146.4 dB [20..22000 Hz]
High: Input RMS -10.63 dBFS, THD: -152.6 dB based on 21 harmonics [20..22000 Hz], N: -138.3 dB [20..22000 Hz], THD+N: -138.1 dB [20..22000 Hz]
Next let's look at the miniSHARC + DIGI-FP (also called OpenDRC-DI). With low frequency filters this shows an elevated low frequency noise floor, however the high frequencies are actually lower than the flat baseline. Maybe this is some sort of noise shaping? Either way it results in higher integrated noise.
Sub - miniSHARC + DIGI-FP
Base: Input RMS -1.03 dBFS, THD: -148.2 dB based on 49 harmonics [20..22000 Hz], N: -127.5 dB [20..22000 Hz], THD+N: -127.4 dB [20..22000 Hz]
Sub: Input RMS -7.33 dBFS, THD: -129.4 dB based on 49 harmonics [20..22000 Hz], N: -108.3 dB [20..22000 Hz], THD+N: -108.2 dB [20..22000 Hz]
Low - miniSHARC + DIGI-FP
Base: Input RMS -1.03 dBFS, THD: -147.7 dB based on 49 harmonics [20..22000 Hz], N: -127.5 dB [20..22000 Hz], THD+N: -127.5 dB [20..22000 Hz]
Low: Input RMS -5.39 dBFS, THD: -144.9 dB based on 49 harmonics [20..22000 Hz], N: -103.0 dB [20..22000 Hz], THD+N: -103.0 dB [20..22000 Hz]
High - miniSHARC + DIGI-FP
Base: Input RMS -1.01 dBFS, THD: -149.3 dB based on 21 harmonics [20..22000 Hz], N: -127.6 dB [20..22000 Hz], THD+N: -127.6 dB [20..22000 Hz]
High: Input RMS -10.75 dBFS, THD: -147.4 dB based on 21 harmonics [20..22000 Hz], N: -125.0 dB [20..22000 Hz], THD+N: -125.0 dB [20..22000 Hz]
Next is another SHARC based platform the 2x4HD which shows similar issues to the miniSHARC.
Low - 2x4HD
Base: Input RMS -1.03 dBFS, THD: -145.9 dB based on 49 harmonics [20..22000 Hz], N: -129.6 dB [20..22000 Hz], THD+N: -129.5 dB [20..22000 Hz]
Sub: Input RMS -7.33 dBFS, THD: -123.6 dB based on 49 harmonics [20..22000 Hz], N: -108.0 dB [20..22000 Hz], THD+N: -107.9 dB [20..22000 Hz]
Low - 2x4HD
Base: Input RMS -1.03 dBFS, THD: -145.6 dB based on 49 harmonics [20..22000 Hz], N: -129.5 dB [20..22000 Hz], THD+N: -129.4 dB [20..22000 Hz]
Low: Input RMS -5.38 dBFS, THD: -143.7 dB based on 49 harmonics [20..22000 Hz], N: -102.9 dB [20..22000 Hz], THD+N: -102.9 dB [20..22000 Hz]
High - 2x4HD
Base: Input RMS -1.01 dBFS, THD: -145.8 dB based on 21 harmonics [20..22000 Hz], N: -129.6 dB [20..22000 Hz], THD+N: -129.5 dB [20..22000 Hz]
High: Input RMS -10.75 dBFS, THD: -144.1 dB based on 21 harmonics [20..22000 Hz], N: -121.8 dB [20..22000 Hz], THD+N: -121.8 dB [20..22000 Hz]
And finally the nanoDIGI. Unlike the miniSHARC and 2x4HD the nanoDIGI is not SHARC based but rather uses an ADAU1445. Overall the nanoDIGI does not have an elevated noise floor but does have some odd skirting around tones in the base case.
Sub - nanoDIGI
Base: Input RMS -1.01 dBFS, THD: -139.2 dB based on 49 harmonics [20..22000 Hz], N: -126.5 dB [20..22000 Hz], THD+N: -126.3 dB [20..22000 Hz]
Sub: Input RMS -7.38 dBFS, THD: -151.4 dB based on 49 harmonics [20..22000 Hz], N: -136.4 dB [20..22000 Hz], THD+N: -136.2 dB [20..22000 Hz]
Base: Input RMS -1.01 dBFS, THD: -143.8 dB based on 49 harmonics [20..22000 Hz], N: -126.8 dB [20..22000 Hz], THD+N: -126.7 dB [20..22000 Hz]
Low: Input RMS -5.18 dBFS, THD: -148.0 dB based on 49 harmonics [20..22000 Hz], N: -130.3 dB [20..22000 Hz], THD+N: -130.2 dB [20..22000 Hz]
Base: Input RMS -1.00 dBFS, THD: -151.3 dB based on 21 harmonics [20..22000 Hz], N: -130.1 dB [20..22000 Hz], THD+N: -130.0 dB [20..22000 Hz]
High: Input RMS -10.63 dBFS, THD: -151.2 dB based on 21 harmonics [20..22000 Hz], N: -128.1 dB [20..22000 Hz], THD+N: -128.1 dB [20..22000 Hz]
Here is a brief summary of the noise results for each DSP.
After the initial round of tests I started to make measurements at -60 dBFS to see if the elevated noise floor was present low levels and to my surprise it was not. I then performed stepped sine tests from -60 dBFS to -1 dBFS with a 20 Hz to 22 kHz measurement bandwidth, using an appropriate frequency for each output (sub - 30 Hz, low - 100 Hz, high - 1 kHz). This showed that the elevated noise floor is level dependent. I need to export these from REW and will add these to the post tomorrow.
Clearly engaging filters in the SHARC based miniDSPs will result in measurable degradation at the DAC output. However, I think it will be very difficult/impossible to actually hear this as the increase in noise is all in lower frequencies and level dependent. I also do not see anything that will still not clear 16 bit fidelity.
Michael
The first issue is what filters to use and what tests to run. I decided to use filters for my LXmini + sub system, this gives a convenient way to compare relative differences between DSP platforms. Here are frequency response sweeps of the three channels at -1 dBFS.
I made purely digital measurements as this gives the most resolution and the following tests.
1) 1 Hz to 48 kHz frequency sweep at -1 dBFS (these were identical for all DSPs)
2) 30 Hz, 100 Hz, 500 Hz, 1 kHz, 5 kHz -1 dBFS FFTs, 20 Hz to 22 kHz measurement bandwidth
3) 1/3 octave 32 tone multitone -10 dBFS FFT, 0 Hz to 48 kHz measurement bandwidth
I tested the following DSP platforms: miniDSP 2X4HD, miniDSP nanoDIGI, miniDSP miniSHARC + DIGI-FP, CamillaDSP + MOTU Ultralite Mk5. For all DSPs other than the 2X4HD I used the TOSLINK output from a 2015 Macbook Pro running at 96 kHz / 24 bit for playback and a Hifime UR23 TOSLINK to USB converter for capture. For the 2X4HD I used bi-directional USB audio. I should warn that I made far too many measurements and I am struggling with the best way to present the data. In general I am leaning towards using dBFS scaling for the plots as it shows the noise floor at a consistent level even when the fundamental is changing.
First let's look at CamillaDSP + MOTU Ultralite Mk5 as this was the best of the bunch. Applying filters results in almost no degradation in performance. The slight decrease in relative noise performance seen on the single tone FFTs is due to lower level from the filter. Similarly THD performance is in general better with the filter due to the lower level.
Sub - CamillaDSP + MOTU Ultralite Mk5
Base: Input RMS -1.00 dBFS, THD: -151.4 dB based on 49 harmonics [20..22000 Hz], N: -147.8 dB [20..22000 Hz], THD+N: -146.2 dB [20..22000 Hz]
Sub: Input RMS -7.27 dBFS, THD: -162.5 dB based on 49 harmonics [20..22000 Hz], N: -142.2 dB [20..22000 Hz], THD+N: -142.2 dB [20..22000 Hz]
Low - CamillaDSP + MOTU Ultralite Mk5
Base: Input RMS -1.00 dBFS, THD: -151.4 dB based on 49 harmonics [20..22000 Hz], N: -147.7 dB [20..22000 Hz], THD+N: -146.2 dB [20..22000 Hz]
Low: Input RMS -5.21 dBFS, THD: -155.8 dB based on 49 harmonics [20..22000 Hz], N: -144.2 dB [20..22000 Hz], THD+N: -143.9 dB [20..22000 Hz]
High - CamillaDSP + MOTU Ultralite Mk5
Base: Input RMS -1.00 dBFS, THD: -151.9 dB based on 21 harmonics [20..22000 Hz], N: -147.9 dB [20..22000 Hz], THD+N: -146.4 dB [20..22000 Hz]
High: Input RMS -10.63 dBFS, THD: -152.6 dB based on 21 harmonics [20..22000 Hz], N: -138.3 dB [20..22000 Hz], THD+N: -138.1 dB [20..22000 Hz]
Next let's look at the miniSHARC + DIGI-FP (also called OpenDRC-DI). With low frequency filters this shows an elevated low frequency noise floor, however the high frequencies are actually lower than the flat baseline. Maybe this is some sort of noise shaping? Either way it results in higher integrated noise.
Sub - miniSHARC + DIGI-FP
Base: Input RMS -1.03 dBFS, THD: -148.2 dB based on 49 harmonics [20..22000 Hz], N: -127.5 dB [20..22000 Hz], THD+N: -127.4 dB [20..22000 Hz]
Sub: Input RMS -7.33 dBFS, THD: -129.4 dB based on 49 harmonics [20..22000 Hz], N: -108.3 dB [20..22000 Hz], THD+N: -108.2 dB [20..22000 Hz]
Low - miniSHARC + DIGI-FP
Base: Input RMS -1.03 dBFS, THD: -147.7 dB based on 49 harmonics [20..22000 Hz], N: -127.5 dB [20..22000 Hz], THD+N: -127.5 dB [20..22000 Hz]
Low: Input RMS -5.39 dBFS, THD: -144.9 dB based on 49 harmonics [20..22000 Hz], N: -103.0 dB [20..22000 Hz], THD+N: -103.0 dB [20..22000 Hz]
High - miniSHARC + DIGI-FP
Base: Input RMS -1.01 dBFS, THD: -149.3 dB based on 21 harmonics [20..22000 Hz], N: -127.6 dB [20..22000 Hz], THD+N: -127.6 dB [20..22000 Hz]
High: Input RMS -10.75 dBFS, THD: -147.4 dB based on 21 harmonics [20..22000 Hz], N: -125.0 dB [20..22000 Hz], THD+N: -125.0 dB [20..22000 Hz]
Next is another SHARC based platform the 2x4HD which shows similar issues to the miniSHARC.
Low - 2x4HD
Base: Input RMS -1.03 dBFS, THD: -145.9 dB based on 49 harmonics [20..22000 Hz], N: -129.6 dB [20..22000 Hz], THD+N: -129.5 dB [20..22000 Hz]
Sub: Input RMS -7.33 dBFS, THD: -123.6 dB based on 49 harmonics [20..22000 Hz], N: -108.0 dB [20..22000 Hz], THD+N: -107.9 dB [20..22000 Hz]
Low - 2x4HD
Base: Input RMS -1.03 dBFS, THD: -145.6 dB based on 49 harmonics [20..22000 Hz], N: -129.5 dB [20..22000 Hz], THD+N: -129.4 dB [20..22000 Hz]
Low: Input RMS -5.38 dBFS, THD: -143.7 dB based on 49 harmonics [20..22000 Hz], N: -102.9 dB [20..22000 Hz], THD+N: -102.9 dB [20..22000 Hz]
High - 2x4HD
Base: Input RMS -1.01 dBFS, THD: -145.8 dB based on 21 harmonics [20..22000 Hz], N: -129.6 dB [20..22000 Hz], THD+N: -129.5 dB [20..22000 Hz]
High: Input RMS -10.75 dBFS, THD: -144.1 dB based on 21 harmonics [20..22000 Hz], N: -121.8 dB [20..22000 Hz], THD+N: -121.8 dB [20..22000 Hz]
And finally the nanoDIGI. Unlike the miniSHARC and 2x4HD the nanoDIGI is not SHARC based but rather uses an ADAU1445. Overall the nanoDIGI does not have an elevated noise floor but does have some odd skirting around tones in the base case.
Sub - nanoDIGI
Base: Input RMS -1.01 dBFS, THD: -139.2 dB based on 49 harmonics [20..22000 Hz], N: -126.5 dB [20..22000 Hz], THD+N: -126.3 dB [20..22000 Hz]
Sub: Input RMS -7.38 dBFS, THD: -151.4 dB based on 49 harmonics [20..22000 Hz], N: -136.4 dB [20..22000 Hz], THD+N: -136.2 dB [20..22000 Hz]
Base: Input RMS -1.01 dBFS, THD: -143.8 dB based on 49 harmonics [20..22000 Hz], N: -126.8 dB [20..22000 Hz], THD+N: -126.7 dB [20..22000 Hz]
Low: Input RMS -5.18 dBFS, THD: -148.0 dB based on 49 harmonics [20..22000 Hz], N: -130.3 dB [20..22000 Hz], THD+N: -130.2 dB [20..22000 Hz]
Base: Input RMS -1.00 dBFS, THD: -151.3 dB based on 21 harmonics [20..22000 Hz], N: -130.1 dB [20..22000 Hz], THD+N: -130.0 dB [20..22000 Hz]
High: Input RMS -10.63 dBFS, THD: -151.2 dB based on 21 harmonics [20..22000 Hz], N: -128.1 dB [20..22000 Hz], THD+N: -128.1 dB [20..22000 Hz]
Here is a brief summary of the noise results for each DSP.
After the initial round of tests I started to make measurements at -60 dBFS to see if the elevated noise floor was present low levels and to my surprise it was not. I then performed stepped sine tests from -60 dBFS to -1 dBFS with a 20 Hz to 22 kHz measurement bandwidth, using an appropriate frequency for each output (sub - 30 Hz, low - 100 Hz, high - 1 kHz). This showed that the elevated noise floor is level dependent. I need to export these from REW and will add these to the post tomorrow.
Clearly engaging filters in the SHARC based miniDSPs will result in measurable degradation at the DAC output. However, I think it will be very difficult/impossible to actually hear this as the increase in noise is all in lower frequencies and level dependent. I also do not see anything that will still not clear 16 bit fidelity.
Michael
Last edited: