High-order dither listening test

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I would expect that to make it far more difficult to hear a difference, but anyway, here are the files you asked for:

WeTransfer

I used another song by the same amateur chorus. The noise in the original recording is greater than the added noise over a large part of the audio spectrum; it is a simple recording made with two AKG C900 microphones in an ORTF set-up in front of the entire chorus.
 
Is the addition of 11 uniform distributions a quick hack to simulate a gaussian distribution?

The figure shows the resulting histogram.
 

Attachments

  • rand11.jpg
    rand11.jpg
    71.7 KB · Views: 75
Administrator
Joined 2007
Paid Member
I would expect that to make it far more difficult to hear a difference, but anyway, here are the files you asked for:

WeTransfer

I used another song by the same amateur chorus. The noise in the original recording is greater than the added noise over a large part of the audio spectrum; it is a simple recording made with two AKG C900 microphones in an ORTF set-up in front of the entire chorus.

Differences are not immediately apparent on these. I had 2 listens and scored a 3/8 and a 4/8. The noise sounds essentially the same between the two... as the ABX shows for me.
 
I would expect that to make it far more difficult to hear a difference, but anyway, here are the files you asked for:

WeTransfer

I used another song by the same amateur chorus. The noise in the original recording is greater than the added noise over a large part of the audio spectrum; it is a simple recording made with two AKG C900 microphones in an ORTF set-up in front of the entire chorus.

The ambient noise and artifacts in the recordings are still very high. Is it an ambient noise or the added noise? The noise in your unmodified previous music sample was very high as well.

Would you be willing to use this sample?

http://pmacura.cz/drumhats.zip

My first impression when you started this thread was that you would be testing high order noise shaping dither, I apologize for misunderstanding.
 
What is rand(1/y)? The POSIX compliant rand() takes no argument, while the seeded and re-entrant rand_r(unsigned int) won’t take 1/128.

If this is a proprietary function in GoldVawe, I would be very careful in using it without testing the output for distribution.

According to the GoldWave manual, rand(n) is a random number between 0 and n. The examples given in the manual show that n can be any positive real number.

I've checked several times in several ways whether it's uniformly distributed and as far as I can tell, it is.
 
Is the addition of 11 uniform distributions a quick hack to simulate a gaussian distribution?

The figure shows the resulting histogram.

That's the central limit theorem at work, but no, according to the theory you need the addition of eleven uniformly distributed numbers to make the first eleven moments of the total error independent of the signal. You might consider using a Gaussian distribution as a reasonable approximation for the addition of eleven uniformly distributed numbers, though.
 
The ambient noise and artifacts in the recordings are still very high. Is it an ambient noise or the added noise? The noise in your unmodified previous music sample was very high as well.

Would you be willing to use this sample?

http://pmacura.cz/drumhats.zip

My first impression when you started this thread was that you would be testing high order noise shaping dither, I apologize for misunderstanding.

Hi PMA,

The processed versions of your file are here:

WeTransfer

I've taken the liberty to make a 12 bits and a 10 bits version, and matching files with real additive noise.

Thanks for participating, even though the thread is not about what you thought it would be about!

Regards,
Marcel
 
That's the central limit theorem at work, but no, according to the theory you need the addition of eleven uniformly distributed numbers to make the first eleven moments of the total error independent of the signal. You might consider using a Gaussian distribution as a reasonable approximation for the addition of eleven uniformly distributed numbers, though.

How many LSB of noise is ideal in the case of 11 uniformly distributed rand numbers?
In your goldwave example the SNR would suffer badly in comparison to
a rectangular noise of 1 LSB.
 
Each of them has to be 1 LSB peak-to-peak, so you loose 6.02 dB (or 10 dB*log10(11+1) - 10 dB*log10(2+1) to be precise) compared to normal triangular dither and 7.78 dB (10 dB*log10(11+1) - 10 dB*log10(1+1)) compared to 1 LSB peak-to-peak uniform dither.

The reason that I chose 11th order dither for my first experiment and not some other order was that you can exactly compensate for the difference in RMS noise level with triangular dither by adding 1 bit.
 
Hi PMA,

The processed versions of your file are here:

WeTransfer

I've taken the liberty to make a 12 bits and a 10 bits version, and matching files with real additive noise.

Thanks for participating, even though the thread is not about what you thought it would be about!

Regards,
Marcel

Hi Marcel,

thank you very much for processing my file. Here is my ABX result for the 12-bit noise version, taken as the first and only trial yet

Code:
foo_abx 2.0.2 report
foobar2000 v1.3.7
2017-11-14 09:03:05

File A: drumhats_12b.wav
SHA1: 6f17b7aa741b02d9af9d9912e8d4d73e776af68b
File B: drumhats_addednoiselike12b.wav
SHA1: a250bc4efeba03bc1b591fb4a28df5d80283129d

Output:
WASAPI (event) : Speakers (Cambridge Audio USB Audio 1.0), 24-bit
Crossfading: NO

09:03:05 : Test started.
09:05:11 : 01/01
09:05:20 : 02/02
09:05:56 : 03/03
09:06:11 : 04/04
09:06:19 : 05/05
09:06:36 : 06/06
09:06:50 : 07/07
09:07:03 : 08/08
09:07:13 : 09/09
09:07:20 : 10/10
09:07:33 : 11/11
09:07:39 : 12/12
09:07:39 : Test finished.

 ---------- 
Total: 12/12
Probability that you were guessing: 0.0%

 -- signature -- 
5d1bc0e1aa2b8b8b3501a823ed40d155a8691717

I was using this, also amateur, recording to demonstrate possible audible differences between 16bit and 24bit resolution. I am using the very low volume part in the third quarter of the drum music sample.
 
I simulated the dithering for 4 and 8 bits in Matlab to better understand
what is going on (see picture).
The quantization error looks much more random in case of the 11 rand(),
but at the cost of SNR degradation. Your math seems to be ok.

I looked at the spectrum too, but did not see much difference. Any
random dither seems to break the quantization tones. These tones
only occur if the sample frequency is a multiple of the signal frequency.
In normal music they should almost never appear.

For the audio test files you have to be careful that the added noise has the same
loudness.
 

Attachments

  • dither_4bit.jpg
    dither_4bit.jpg
    458.6 KB · Views: 75
  • dither_8bit.jpg
    dither_8bit.jpg
    446.9 KB · Views: 79
Last edited:
I managed to attach synthetic wav files with different dithering methods
in 10 bit quality (the 11-rand quantized file has 11 bit).
The files play a 480 Hz sine with -40 dB fullscale.
The level is rather low to bring up some correlation in quantization noise.
In the plots of the quantization error i can distinguish them.

If you are interested, try a listening test.
 

Attachments

  • test4-480Hz-10bit.zip
    175.8 KB · Views: 41
  • dither_10bit.jpg
    dither_10bit.jpg
    393.9 KB · Views: 68
Last edited:
I added a the same files with -20 dB instead of -40 dB.
In the plot of the quantization errror the correlation is much lower.
(std in the subplot title is the standard deviation of the added noise)
 

Attachments

  • test4-480Hz-10bit-20dB.zip
    295.8 KB · Views: 40
  • dither_10bit-20dB.jpg
    dither_10bit-20dB.jpg
    444.3 KB · Views: 70
Last edited:
Administrator
Joined 2007
Paid Member
I have just tried Pavels drum file and found it very difficult. Once I had trained myself to seemingly pick a difference I could get a fairly reliable result but this was using utmost concentration.

The 12b file eluded me, I couldn't pick any difference despite a few attempts.
 

Attachments

  • Capture1.JPG
    Capture1.JPG
    63.2 KB · Views: 67
Member
Joined 2017
Paid Member
Hi, udok. You are correct. Generally speaking, the quantization noise is white noise as you say and many textbooks also say so. But as far as I tested before, everything had some relations to the input signal. That's why I thought the white noise wasn't a general case but a special one.

I usually use 1Hz resolution, i.g. 999Hz or 1000Hz. The 1Hz resolution doesn't make a white noise like the former two pics. But 999.1Hz brings me a white noise like the latter two. More than 0.1Hz resolution is probably needed to make a white noise(999.11Hz also has a white noise). I think the 1Hz resolution isn't a general case but a special one. I should sometimes use the 0.1Hz resolution to avoid misunderstanding.

Your attached file is 480Hz@8bit/48kHz. The quantization noise of type =non is multiples of 480Hz, not white noise. Other three files have white noise. I guess the relationship to the fundamental was broken by added dither.
 

Attachments

  • qn1.jpg
    qn1.jpg
    172 KB · Views: 46
  • qn3.jpg
    qn3.jpg
    319.4 KB · Views: 42
  • qn2.jpg
    qn2.jpg
    171.3 KB · Views: 40
  • qn4.jpg
    qn4.jpg
    318.9 KB · Views: 44
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.