如何生成粉红噪声图像?



我正在尝试复制"景观频率合成";P. Bourke用Python编写。我认为这将是一个简单的

import numpy as np
from scipy.fft import fft2, ifft2
whitenoise = np.random.uniform(0,1,(256,256,3))
fouriertransformed = np.fft.fftshift(fft2(whitenoise))
pinktransformed = np.reciprocal(fouriertransformed)
pinknoise = ifft2(np.fft.ifftshift(pinktransformed)).real

但它似乎要复杂得多。如何实现这一点,以及如何检查生成的图像中的功率是否真的下降了1/f**2 ?

这里的问题是,通过计算pinktransformed = np.reciprocal(fouriertransformed),你计算的是振幅的倒数,但你真正想要的是这些振幅乘以1/f**2,所以你必须用

代替这一行
pinktransformed = fouriertransformed / f**2

,其中f是包含频率的数组,该频率对应于傅里叶变换的每个bin。

相关内容

  • 没有找到相关文章

最新更新