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)
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)
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()
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
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
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
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
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
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
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
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
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
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
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
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
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
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