コード例 #1
0
def test_signal_stub_times():
    """ Test times vector of Signal stub.
    """
    time = np.ones((1, 4))
    freq = np.ones((1, 3))
    sampling_rate = 1
    fft_norm = 'none'
    times = np.array([0., 1., 2., 3.])

    signal_stub = stub_utils.signal_stub(time, freq, sampling_rate, fft_norm)

    npt.assert_allclose(signal_stub.times, times, rtol=1e-10)
コード例 #2
0
def test_signal_stub_frequencies_odd():
    """ Test frequencies vector of Signal stub,
    odd number of samples.
    """
    time = np.ones((1, 5))
    freq = np.ones((1, 3))
    sampling_rate = 1
    fft_norm = 'none'
    frequencies = np.array([0., 0.2, 0.4])

    signal_stub = stub_utils.signal_stub(time, freq, sampling_rate, fft_norm)

    npt.assert_allclose(signal_stub.frequencies, frequencies, rtol=1e-10)
コード例 #3
0
def test_signal_stub_properties():
    """ Test comparing properties of Signal stub
    with actual Signal implementation.
    """
    time = np.ones((1, 1024))
    freq = np.ones((1, 1024))
    sampling_rate = 44100
    fft_norm = 'none'

    signal_stub = stub_utils.signal_stub(time, freq, sampling_rate, fft_norm)
    stub_dir = dir(signal_stub)
    signal_dir = dir(Signal(time, sampling_rate))

    assert stub_dir.sort() == signal_dir.sort()
コード例 #4
0
def impulse():
    """Delta impulse signal stub.

    Returns
    -------
    signal : Signal
        Stub of impulse signal
    """
    delay = 0
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (1,)

    time, freq = stub_utils.impulse_func(
        delay, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #5
0
def sine():
    """Sine signal stub.

    Returns
    -------
    signal : Signal
        Stub of sine signal
    """
    frequency = 441
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (1,)

    time, freq, frequency = stub_utils.sine_func(
        frequency, sampling_rate, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #6
0
def sine_two_by_two_channel():
    """2-by-2 channel sine signal stub.

    Returns
    -------
    signal : Signal
        Stub of sine signal
    """
    frequency = np.array([[1, 2], [3, 4]]) * 441
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (2, 2)

    time, freq, frequency = stub_utils.sine_func(
        frequency, sampling_rate, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #7
0
def noise_two_by_two_channel():
    """ 2-by-2 channel gaussian white noise signal stub.
    The frequency spectrum is set to dummy value None.

    Returns
    -------
    signal : Signal
        Stub of noise signal
    """
    sigma = 1
    n_samples = int(1e5)
    cshape = (2, 2)
    sampling_rate = 44100
    fft_norm = 'rms'
    freq = None

    time = stub_utils.noise_func(sigma, n_samples, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #8
0
ファイル: conftest.py プロジェクト: pyfar-seminar/pyfar
def impulse_stub():
    """Delta impulse signal stub.
    To be used in cases, when a dependence on the Signal class is prohibited,
    but a correct, fixed relation of the time signal and the spectrum is
    needed.

    Returns
    -------
    signal : Signal
        Stub of impulse signal
    """
    delay = 0
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (1, )

    time, freq = stub_utils.impulse_func(delay, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(time, freq, sampling_rate, fft_norm)

    return signal
コード例 #9
0
ファイル: conftest.py プロジェクト: pyfar-seminar/pyfar
def noise_stub():
    """Gaussian white noise signal stub.
    To be used in cases, when a dependence on the Signal class is prohibited,
    but a correct, fixed relation of the time signal and the spectrum is
    needed.

    Returns
    -------
    signal : Signal
        Stub of noise signal
    """
    sigma = 1
    n_samples = int(1e5)
    cshape = (1, )
    sampling_rate = 44100
    fft_norm = 'rms'

    time, freq = stub_utils.noise_func(sigma, n_samples, cshape)
    signal = stub_utils.signal_stub(time, freq, sampling_rate, fft_norm)

    return signal
コード例 #10
0
def noise_two_by_three_channel():
    """ 2-by-3 channel gaussian white noise signal stub.
    The frequency spectrum is created with np.fft.rfft.

    Returns
    -------
    signal : Signal
        Stub of noise signal
    """
    sigma = 1
    n_samples = int(1e5)
    cshape = (2, 3)
    sampling_rate = 44100
    fft_norm = 'none'

    time = stub_utils.noise_func(sigma, n_samples, cshape)
    freq = np.fft.rfft(time)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #11
0
def sine_odd_rms():
    """Sine signal stub,
    odd number of samples,
    RMS FFT-normalization

    Returns
    -------
    signal : Signal
        Stub of sine signal
    """
    frequency = 441
    sampling_rate = 44100
    n_samples = 9999
    fft_norm = 'rms'
    cshape = (1,)

    time, freq, frequency = stub_utils.sine_func(
        frequency, sampling_rate, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #12
0
ファイル: conftest.py プロジェクト: pyfar-seminar/pyfar
def sine_stub_odd():
    """Sine signal stub, odd number of samples
    To be used in cases, when a dependence on the Signal class is prohibited,
    but a correct, fixed relation of the time signal and the spectrum is
    needed.

    Returns
    -------
    signal : Signal
        Stub of sine signal
    """
    frequency = 441
    sampling_rate = 44100
    n_samples = 9999
    fft_norm = 'rms'
    cshape = (1, )

    time, freq, frequency = stub_utils.sine_func(frequency, sampling_rate,
                                                 n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(time, freq, sampling_rate, fft_norm)

    return signal
コード例 #13
0
def sine_short():
    """Short sine signal stub where the first frequency is > 20 Hz.

    This is used for testing plot._line._lower_frequency_limit.

    Returns
    -------
    signal : Signal
        Stub of sine signal
    """
    frequency = 441
    sampling_rate = 44100
    n_samples = 100
    fft_norm = 'none'
    cshape = (1,)

    time, freq, frequency = stub_utils.sine_func(
        frequency, sampling_rate, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #14
0
def noise_odd():
    """Gaussian white noise signal stub,
    odd number of samples.
    The frequency spectrum is set to dummy value None.

    Returns
    -------
    signal : Signal
        Stub of noise signal
    """
    sigma = 1
    n_samples = int(1e5 - 1)
    cshape = (1,)
    sampling_rate = 44100
    fft_norm = 'rms'
    freq = None

    time = stub_utils.noise_func(sigma, n_samples, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)

    return signal
コード例 #15
0
def impulse_group_delay():
    """Delayed delta impulse signal stub with static properties.

    Returns
    -------
    signal : Signal
        Stub of impulse signal
    group_delay : ndarray
        Group delay of impulse signal
    """
    delay = 1000
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (1,)

    time, freq = stub_utils.impulse_func(
        delay, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)
    group_delay = delay * np.ones_like(freq, dtype=float)

    return signal, group_delay
コード例 #16
0
def impulse_group_delay_two_by_two_channel():
    """Delayed 2-by-2 channel delta impulse signal stub with static properties.

    Returns
    -------
    signal : Signal
        Stub of impulse signal
    group_delay : ndarray
        Group delay of impulse signal
    """
    delay = np.array([[1000, 2000], [3000, 4000]])
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (2, 2)

    time, freq = stub_utils.impulse_func(
        delay, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time, freq, sampling_rate, fft_norm)
    group_delay = delay[..., np.newaxis] * np.ones_like(freq, dtype=float)

    return signal, group_delay
コード例 #17
0
def sine_plus_impulse():
    """Combined sine and delta impulse signal stub.

    Returns
    -------
    signal : Signal
        Stub of sine signal
    """
    frequency = 441
    delay = 100
    sampling_rate = 44100
    n_samples = 10000
    fft_norm = 'none'
    cshape = (1,)

    time_sine, freq_sine, frequency = stub_utils.sine_func(
        frequency, sampling_rate, n_samples, fft_norm, cshape)
    time_imp, freq_imp = stub_utils.impulse_func(
        delay, n_samples, fft_norm, cshape)
    signal = stub_utils.signal_stub(
        time_sine + time_imp, freq_sine + freq_imp, sampling_rate, fft_norm)

    return signal