• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DSP Measurements and Rising Noise Floor

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,672
Likes
3,614
Location
Detroit, MI
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.

Frequency Response -1 dB.png


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
CDSP Mk5 Multi Sub -10 dB.png

CDSP Mk5 30 Hz Sub -1 dB.png


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
CDSP Mk5 Multi Low -10 dB.png

CDSP Mk5 100 Hz Low -1 dB.png


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
CDSP Mk5 Multi High -10 dB.png

CDSP Mk5 1 kHz High -1 dB.png


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
SHARC Multi Sub -10 dB.png

SHARC Sub 30 Hz -1 dB.png


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
SHARC Multi Low -10 dB.png

SHARC Low 100 Hz -1 dB.png


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
SHARC Multi High -10 dB.png

SHARC High 1 kHz -1 dB.png


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
2x4HD Multi Sub -10 dB.png

2x4HD Sub 30 Hz -1 dB.png


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
2x4HD Multi Low -10 dB.png

2x4HD Low 100 Hz -1 dB.png


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
2x4HD Multi High -10 dB.png

2x4HD High 1 kHz -1 dB.png


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
nanoDIGI Sub Multi -10 dB.png

nanoDIGI Sub 30 Hz -1 dB.png


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]

nanoDIGI Low Multi -10 dB.png

nanoDIGI Low 100 Hz -1 dB.png


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]

nanoDIGI High Multi -10 dB.png

nanoDIGI High 1 kHz -1 dB.png


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.

1677434324124.png


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:
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.

View attachment 267261

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
View attachment 267264
View attachment 267268

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
View attachment 267265
View attachment 267270

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
View attachment 267282
View attachment 267304

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
View attachment 267272
View attachment 267279

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
View attachment 267275
View attachment 267280

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
View attachment 267276
View attachment 267281

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
View attachment 267285
View attachment 267289

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
View attachment 267290
View attachment 267291

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
View attachment 267292
View attachment 267293

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 ADAU1452. Overall the nanoDIGI does not have an elevated noise floor but does have some odd skirting around tones in the base case.

Sub - nanoDIGI
View attachment 267295
View attachment 267296

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]

View attachment 267297
View attachment 267298

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]

View attachment 267299
View attachment 267300

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]

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
Wow. Nice work. Thanks for sharing.
 
As promised here are the stepped sine measurements. They go from -60 dBFS to -1 dBFS input, measurement bandwidth is 22 kHz. These are very interesting because they show the level dependency of the elevated noise floor for the SHARC DSPs. Below I show both the absolute noise level (dBFS) and the noise level relative to the fundamental (dBr).

CamillaDSP + MOTU Ultralite Mk5 - 30 Hz
1677352598161.png

1677352618232.png


CamillaDSP + MOTU Ultralite Mk5 - 100 Hz
1677352641610.png

1677352667406.png


CamillaDSP + MOTU Ultralite Mk5 - 1 kHz
1677352712073.png

1677352733046.png


miniSHARC + DIGI-FP - 30 Hz
1677352834140.png

1677352854448.png


miniSHARC + DIGI-FP - 100 Hz
1677352896665.png

1677352911323.png


miniSHARC + DIGI-FP - 1 kHz
1677352934922.png

1677352950232.png


2x4HD - 30 Hz
1677353580084.png

1677353597753.png


2x4HD - 100 Hz
1677353616164.png

1677353644678.png


2x4HD - 1 kHz
1677353667573.png

1677353683635.png


nanoDIGI - 30 Hz
1677353787399.png

1677353809207.png


nanoDIGI - 100 Hz
1677353830776.png

1677353848065.png


nanoDIGI - 1 kHz
1677353870046.png

1677353884448.png


Michael
 
If that pure digital measurements in lows corresponds to my analog ones they show around 20db SINAD penalty (plus some for the analog sins and connections).
Thank you,amazing post!
 
Thanks for this.

So the summary is that Camilla is basically transparent?.

Can you describe what filtering was used in the test (I did read the intro but didnt see any description)

Thanks

Peter
 
Thanks for this.

So the summary is that Camilla is basically transparent?.

Can you describe what filtering was used in the test (I did read the intro but didnt see any description)

Thanks

Peter

Yes, Camilla has the best noise performance in the base case (pretty much limited by 24 bit input data) and adding filtering does not change the noise floor.

There is a plot showing the response of the three channels in the first post. I am not going to give the exact filters applied as the LXmini is a proprietary system but can roughly describe each channel.

Sub: 2nd order LPF + sub EQ
Low: 2nd order HPF set to match sub roll off + 2nd order LPF + driver correction
High: 2nd order HPF + driver correction

Michael
 
Is the inference that software based dsp has less penalty tgan chip/processor based?

I don’t think there is enough data to say that. It does seem that the SHARC based miniDSPs have some low frequency issues.

At least in the case of Camilla there is no performance penalty to applying filters, the fixed point nanoDIGI also shows no degradation when applying filters but the base performance is not as good as Camilla.

Again, I’m not convinced that any of this is audible but maybe it could be with more complex filters?

Michael
 
Interesting. I find it hard to speculate why this might be true.

Would like to see a Minidsp response.
 
Interesting. I wonder what underlying filters are being used for the Sigma based systems (SHARC /ADAU). In Sigma studio there is a choice between 'single precision' 32 bit, and 'double precision' 64 bit filters. Use of the former can cause biquad issues due to rounding, so could be the issue?
At the end of the day DSP is just maths, and the level of rounding matters.
 
The other point of note is that ADAU is fixed point, whereas SHARC can also be floating point - and may well usually be.
(My hands on experience is only with ADAU)
 
Very interesting work! So how did you get a digital signal out of the Ultralite? Just assign that output pair to the digital out instead of analog out? What did you use to receive and analyze the S/PDIF signal?
 
Very interesting work! So how did you get a digital signal out of the Ultralite?

Yes, I made three CamillaDSP configurations (sub, low, high) that used the TOSLINK output. In each configuration one channel had filters applied and the other was a straight pass through for use as a timing reference. It was easy to switch between the configurations in the CamillaDSP GUI.

What did you use to receive and analyze the S/PDIF signal?

I used this -> https://hifimediy.com/product/hifime-ur23-spdif-optical-to-usb-converter/. It is cheap but works great up to 96 kHz and is transparent for 24 bit audio.

EDIT: I don't think I explicitly mentioned this anywhere but I used REW for analysis.

Michael
 
Last edited:
Back
Top Bottom