I'm trying to produce a 2D matrix of uniformly distributed random noise in the range of [0, 1). This is easily accomplished with pseudo-random numbers. I'd like this noise to consist of only high frequencies, so I take the average of a 3x3 area around each sample and subtract it from the center value. This changes the range to (-8/9, 8/9) and makes the distribution anything but uniform. Here's a plot of the distribution over 10 million such samples:
I don't know how to characterize this distribution, much less how to reverse it. I'm hoping there's a simple formula that can be applied to simultaneously restore both the range and distribution of the values.
For context, here's a picture with the purely random noise on the left and the high-frequency version on the right. I was able to achieve the desired distribution by applying a histogram binning during the conversion to integer pixel values, but I need something that works in the real number domain.

