|
1 | 1 | import numpy as np |
2 | 2 | import matplotlib.pyplot as plt |
3 | 3 | from pydevtips.fftconvolve import RFFTConvolve |
| 4 | +import hydra |
| 5 | +import os |
4 | 6 |
|
5 | 7 |
|
6 | | -# Create a signal |
7 | | -signal = np.random.randn(1000) |
| 8 | +@hydra.main(version_base=None, config_path="configs", config_name="defaults") |
| 9 | +def main(config): |
8 | 10 |
|
9 | | -# Create a moving average filter (low pass) |
10 | | -n = 10 |
11 | | -filter = np.ones(n) / n |
| 11 | + output_dir = os.getcwd() |
| 12 | + seed = config.seed |
| 13 | + np.random.seed(seed) |
12 | 14 |
|
13 | | -# initialize the convolver |
14 | | -convolver = RFFTConvolve(filter=filter, length=len(signal)) |
| 15 | + # Create a signal |
| 16 | + signal = np.random.randn(config.signal_len) |
15 | 17 |
|
16 | | -# convolve |
17 | | -convolved_signal = convolver(signal) |
| 18 | + # Create a moving average filter (low pass) |
| 19 | + n = config.filter_len |
| 20 | + filter = np.ones(n) / n |
18 | 21 |
|
19 | | -# plot with three subplots |
20 | | -fig, ax = plt.subplots(3, 1, figsize=(10, 10)) |
21 | | -ax[0].plot(signal) |
22 | | -ax[0].set_title("Signal") |
23 | | -ax[1].plot(filter) |
24 | | -ax[1].set_title("Filter") |
25 | | -ax[2].plot(convolved_signal) |
26 | | -ax[2].set_title("Convolved Signal") |
| 22 | + # initialize the convolver |
| 23 | + convolver = RFFTConvolve(filter=filter, length=len(signal)) |
27 | 24 |
|
28 | | -plt.show() |
| 25 | + # convolve |
| 26 | + convolved_signal = convolver(signal) |
| 27 | + |
| 28 | + # plot with three subplots |
| 29 | + _, ax = plt.subplots(3, 1, figsize=(10, 10)) |
| 30 | + ax[0].plot(signal) |
| 31 | + ax[0].set_title("Signal") |
| 32 | + ax[1].plot(filter) |
| 33 | + ax[1].set_title("Filter") |
| 34 | + ax[2].plot(convolved_signal) |
| 35 | + ax[2].set_title("Convolved Signal") |
| 36 | + |
| 37 | + plt.savefig(os.path.join(output_dir, "convolved_signal.png")) |
| 38 | + output_fp = os.path.join(output_dir, "convolved_signal.png") |
| 39 | + print(f"Saved convolved signal to {output_fp}") |
| 40 | + |
| 41 | + plt.show() |
| 42 | + |
| 43 | + |
| 44 | +if __name__ == "__main__": |
| 45 | + main() |
0 commit comments