Acoular 25.03 documentation

WNoiseGenerator

«  NoiseGenerator   ::   signals   ::   PNoiseGenerator  »

WNoiseGenerator

class acoular.signals.WNoiseGenerator

Bases: NoiseGenerator

White noise signal generator.

This class generates white noise signals with a specified root mean square (RMS) amplitude, number of samples, and sampling frequency. The white noise is generated using a random number generator initialized with a user-defined seed for reproducibility.

See also

numpy.random.RandomState.standard_normal

Used here to generate normally distributed noise.

acoular.signals.PNoiseGenerator

For pink noise generation.

acoular.sources.UncorrelatedNoiseSource

For per-channel noise generation.

Examples

Generate white noise with an RMS amplitude of 1.0 and 0.5:

>>> from acoular import WNoiseGenerator
>>> from numpy import mean
>>>
>>> # White noise with RMS of 1.0
>>> gen1 = WNoiseGenerator(rms=1.0, num_samples=1000, seed=42)
>>> signal1 = gen1.signal()
>>>
>>> # White noise with RMS of 0.5
>>> gen2 = WNoiseGenerator(rms=0.5, num_samples=1000, seed=24)
>>> signal2 = gen2.signal()
>>>
>>> mean(signal1) > mean(signal2)
np.True_

Ensure different outputs with different seeds:

>>> gen1 = WNoiseGenerator(num_samples=3, seed=42)
>>> gen2 = WNoiseGenerator(num_samples=3, seed=73)
>>> gen1.signal() == gen2.signal()
array([False, False, False])
signal()

Generate and deliver the white noise signal.

The signal is created using a Gaussian distribution with mean 0 and variance 1, scaled by the RMS amplitude of the object.

Returns:
numpy.ndarray

A 1D array of floats containing the generated white noise signal. The length of the array is equal to num_samples.

«  NoiseGenerator   ::   signals   ::   PNoiseGenerator  »