任意长的幂律噪声流使用NumPy和SciPy。
pyplnoise的Python项目详细描述
侏儒
Pythonpowerlawnoise生成任意长的幂律噪声流 使用NumPy和SciPy。在
噪声是用成形滤波器产生的,其方法是严格遵循的 Stephane Plaszczynski, Fluct. Noise Lett. 7: R–R13, 2007。 你也可以在arXiv:astro-ph/0510081上找到这篇文章。在
pyplnoise由一个模块组成,该模块提供实现以下功能的类 噪声源:
- 一般1/fα上、低频幂律噪声
限制(类
AlphaNoise
) - 具有较低频率限制的快速红色(布朗)噪声发生器(类
RedNoise
) - 粉红噪声(又名1/f noise;class
PinkNoise
)的方便别名 - 当然还有白噪声(class
WhiteNoise
)。在
简单的例子
接口非常简单:只需实例化上面的一个类并运行
get_sample()
检索单个样本,或{npts
个样本的数组。代码中提供了详细的接口文档。在
importpyplnoiseimportnumpyasnpfs=10.# sampling frequency in Hz# instantiate a noise source with lower frequency limit 1e-3 Hz,# upper frequency limit 5 Hz and 1/f^1.5 power spectrumnoisegen=pyplnoise.AlphaNoise(fs,1e-3,fs/2.,alpha=1.5,seed=42)one_sample=noisegen.get_sample()many_samples=noisegen.get_series(100000)
详细示例
Jupyter笔记本电脑在/examples目录中提供:
- Overview of the noise sources and their properties
- Application example: modeling the random signal errors of a gyroscope (Allan variance of synthetic noise)
安装
依赖性
- NumPy≥1.17(见NEP 19)
- SciPy≥1.3
从PyPI
安装 ^{pr2}$直接从GitHub安装
下载发布tarball并运行
pythonsetup.pyinstall
因为所有内容都包含在模块pyplnoise
中,所以您也可以只复制
将模块和许可证文件放入项目中。在
你可能会发现pyplnoise有用,如果
- …你希望生成1/fα噪声,且相关性非常长 次数(频率≪10-7Hz);特别是当您的机器 内存资源。在
- …你喜欢叠加许多彩色噪声源,可能在不同的 具有不同的频率和带宽。在
你可能发现pyplnoise有用,如果
- …你正在为你的软件合成器或其他音频设备寻找粉红色的噪音源。 对于这样的应用程序有很多有趣的解决方案,特别是 “A New Shade of Pink”, Voss-McCartney Algorithm, which is also available in Python 和some highly specialized filters。在
- …您希望生成有限的1/fα噪声流,且相对较短 相关时间(频率≥10-7Hz)。在这种情况下,Fourier transform methods是可处理的,在某些情况下 方法提供比pyplnoise使用的成形过滤器更高质量的结果。在
- 项目
标签: