1D Pink noise, is easy enough to generate. See https://www.dsprelated.com/showarticle/908.php for example.

What about higher-dimensional pink noise, such as 2D or 3D pink noise? Is there an algorithm to generate that?

EDIT: One approach might be to simulate a natural process, since pink noise often arises in nature.

  • $\begingroup$ Also see blog.demofox.org/2017/10/25/… $\endgroup$ – PyRulez Jul 24 '18 at 22:57
  • $\begingroup$ You should be able to just apply a suitably shaped filter to white noise, or, equivalently, directly manipulate the signal in the frequency domain. That is, do a 2D Fourier transform, mutliply $\frac{X(\omega_x,\omega_y)}{\sqrt{\omega_x^2+\omega_y^2}}$, then do an inverse Fourier transform. Most likely you'll design your white noise to have $X(0,0)=0$ on average so you can just use $0$ instead of the divide by zero. There's also a normalization factor, but chances are you're normalizing the amplitude to fit in some range anyway. I haven't tried this, but this is the brute force solution. $\endgroup$ – Derek Elkins left SE Jul 25 '18 at 1:34
  • $\begingroup$ What do you mean by 2D pink noise: $1/f$ or $1/{f^2}$? $\endgroup$ – Peter Taylor Jul 25 '18 at 7:53
  • $\begingroup$ @DerekElkins the pixels may not have a uniform distribution then (individually), so it will be pink, but not noise. $\endgroup$ – PyRulez Jul 25 '18 at 13:46
  • $\begingroup$ @PeterTaylor $1/f^2$, so each octave has equal energy (I think $1/f^2$ satisfies that). $\endgroup$ – PyRulez Jul 25 '18 at 13:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.