Example signals

 1import sys, os
 2
 3my_path = os.path.dirname(os.path.abspath(__file__))
 4sys.path.insert(0, my_path + '/../')
 5
 6import numpy as np
 7import matplotlib.pyplot as plt
 8import pyExSi as es
 9
10# impact pulse
11width = 300
12N = 2 * width
13n_start = 90
14amplitude = 3
15pulse_sine = es.impulse(
16    N=N, n_start=n_start, width=width, amplitude=amplitude, window='sine'
17)
18pulse_rectangular = es.impulse(
19    N=N, n_start=n_start, width=width, amplitude=amplitude, window='boxcar'
20)
21pulse_triangular = es.impulse(
22    N=N, n_start=n_start, width=width, amplitude=amplitude, window='triang'
23)
24pulse_exponential = es.impulse(
25    N=N,
26    n_start=n_start,
27    width=width,
28    amplitude=amplitude,
29    window=('exponential', 0, 10),
30)
31pulse_sawtooth = es.impulse(
32    N=N, n_start=n_start, width=width, amplitude=amplitude, window='sawtooth'
33)
34plt.plot(pulse_sine, '-', label='sine')
35plt.plot(pulse_rectangular, '-', label='rectangular')
36plt.plot(pulse_triangular, '-', label='triangular')
37plt.plot(pulse_exponential, '-', label='exponential')
38plt.plot(pulse_sawtooth, '-', label='sawtooth')
39plt.xlabel('Sample [n]')
40plt.ylabel('Impact pulse [Unit]')
41plt.legend(loc='upper right')
42plt.show()
43
44
45# Random Generator
46seed = 1234
47rg = np.random.default_rng(seed)  # or rng = np.random.default_rng(seed)
48
49# uniform random, normal random and pseudo random
50N = 1000
51uniform_random = es.uniform_random(N=N, rg=rg)
52normal_random = es.normal_random(N=N, rg=rg)
53pseudo_random = es.pseudo_random(N=N, rg=rg)
54plt.plot(uniform_random, label='uniform random')
55plt.plot(normal_random, label='normal random')
56plt.plot(pseudo_random, label='pseudo random')
57plt.xlabel('Sample [n]')
58plt.ylabel('Random signal [Unit]')
59plt.legend()
60plt.show()
61
62# burst random
63N = 1000
64amplitude = 5
65burst_random = es.burst_random(
66    N, A=amplitude, ratio=0.1, distribution='normal', n_bursts=3, rg=rg
67)
68plt.plot(burst_random)
69plt.xlabel('Sample [n]')
70plt.ylabel('Burst [Unit]')
71plt.show()
72
73
74# sweep
75t = np.linspace(0, 10, 1000)
76sweep = es.sine_sweep(time=t, freq_start=0, freq_stop=5)
77plt.plot(t, sweep)
78plt.xlabel('Time [s]')
79plt.ylabel('Sine sweep [Unit]')
80plt.show()