Skip to content
Snippets Groups Projects
Commit fa7ead15 authored by Jean-Baptiste Bayle's avatar Jean-Baptiste Bayle
Browse files

Merge branch '44-rescale-one-sided-spectrum-in-ifft_generator' into 'master'

Resolve "Rescale one-sided spectrum in `ifft_generator`"

Closes #44

See merge request !50
parents f607a6a2 c2764c60
No related branches found
No related tags found
1 merge request!50Resolve "Rescale one-sided spectrum in `ifft_generator`"
Pipeline #185836 passed with warnings
...@@ -25,7 +25,7 @@ def white_generator(psd): ...@@ -25,7 +25,7 @@ def white_generator(psd):
simulation size [samples]. simulation size [samples].
""" """
def generator(fs, size): def generator(fs, size):
stddev = np.sqrt(psd * fs / 4) stddev = np.sqrt(psd * fs / 2)
return np.random.normal(scale=stddev, size=size) return np.random.normal(scale=stddev, size=size)
return generator return generator
......
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# pylint: disable=missing-module-docstring
import numpy as np
from scipy.signal import welch
from lisagwresponse.psd import white_generator, ifft_generator
def test_white_generator():
"""Test that white generator generates a white noise."""
size = 100000
for fs in [1.0, 0.2, 10.0]:
for psd in [1.0, 0.1, 12.3, 42.0]:
generator = white_generator(psd)
data = generator(fs, size)
data_psd = welch(data, fs, nperseg=size // 100)[1][5:-5]
assert np.isclose(np.mean(data), 0.0, atol=0.1)
assert np.all(np.isclose(data_psd, psd, rtol=0.5))
def test_ifft_generator_white():
"""Test that IFFT generator can generate a white noise."""
size = 100000
for fs in [1.0, 0.2, 10.0]:
for psd in [1.0, 0.1, 12.3, 42.0]:
generator = ifft_generator(lambda _: psd) # pylint: disable=cell-var-from-loop
data = generator(fs, size)
data_psd = welch(data, fs, nperseg=size // 100)[1][5:-5]
assert np.isclose(np.mean(data), 0.0, atol=0.1)
assert np.all(np.isclose(data_psd, psd, rtol=0.5))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment