Add shared waveform processing, generation and firmware image support
This commit is contained in:
27
python/examples/plot_processing.py
Normal file
27
python/examples/plot_processing.py
Normal file
@@ -0,0 +1,27 @@
|
||||
"""Sparse sine reconstruction using the public contract, independent of a GUI."""
|
||||
import argparse
|
||||
import math
|
||||
from pathlib import Path
|
||||
|
||||
from set_devices.plot_processing import Axis, Series, Snapshot, prepare, process, write_csv
|
||||
from set_devices.signal_reconstruction import METHODS
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--method", choices=METHODS, default="spline")
|
||||
parser.add_argument("--degree", type=int, default=3)
|
||||
parser.add_argument("--points", type=int, default=201)
|
||||
parser.add_argument("--output", type=Path, default=Path("curve.csv"))
|
||||
args = parser.parse_args()
|
||||
samples = [(i * 125, math.sin(i * math.pi / 4)) for i in range(9)]
|
||||
snapshot = Snapshot((Series("sine", "Синусоида: 9 отсчётов", samples, y_unit="В"),),
|
||||
Axis("Время", "мс"), "sparse-sine")
|
||||
curve = process(prepare(snapshot, "sine", args.method, args.points, args.degree))
|
||||
with args.output.open("w", encoding="utf-8-sig", newline="") as stream:
|
||||
write_csv(curve, stream)
|
||||
print(f"{args.output}: {curve.input_count} -> {len(curve.points)}; RMSE={curve.rmse:.6g}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user