diff --git a/src/lasp/dsp/lasp_siggen_impl.cpp b/src/lasp/dsp/lasp_siggen_impl.cpp index 0900418..049f638 100644 --- a/src/lasp/dsp/lasp_siggen_impl.cpp +++ b/src/lasp/dsp/lasp_siggen_impl.cpp @@ -6,10 +6,10 @@ // Signal generators implementation ////////////////////////////////////////////////////////////////////// /* #define DEBUGTRACE_ENABLED */ -#include "debugtrace.hpp" #include "lasp_siggen_impl.h" #include "debugtrace.hpp" #include "lasp_mathtypes.h" +#include using rte = std::runtime_error; @@ -26,13 +26,13 @@ vd Noise::genSignalUnscaled(us nframes) { } void Noise::resetImpl() {} -Sine::Sine(const d freq) : omg(2 * arma::datum::pi * freq) { DEBUGTRACE_ENTER;} +Sine::Sine(const d freq) : omg(2 * arma::datum::pi * freq) { DEBUGTRACE_ENTER; } vd Sine::genSignalUnscaled(const us nframes) { /* DEBUGTRACE_ENTER; */ const d pi = arma::datum::pi; vd phase_vec = - arma::linspace(phase, phase + omg * (nframes - 1) / _fs, nframes); + arma::linspace(phase, phase + omg * (nframes - 1) / _fs, nframes); phase += omg * nframes / _fs; while (phase > 2 * arma::datum::pi) { phase -= 2 * pi; @@ -43,10 +43,10 @@ vd Sine::genSignalUnscaled(const us nframes) { vd Periodic::genSignalUnscaled(const us nframes) { vd res(nframes); - if(_signal.size() == 0) { + if (_signal.size() == 0) { throw rte("No signal defined while calling"); } - for(us i=0;i #include @@ -24,25 +20,30 @@ namespace py = pybind11; */ void init_siggen(py::module &m) { - /// Siggen + /// Siggen py::class_> siggen(m, "Siggen"); siggen.def("setLevel", &Siggen::setLevel, "Set the level of the signal generator"); siggen.def("setDCOffset", &Siggen::setDCOffset); siggen.def("setMute", &Siggen::setMute); siggen.def("setLevel", &Siggen::setLevel); - siggen.def("setLevel", &Siggen::setLevel, py::arg("newLevel"), py::arg("dB") = true); + siggen.def("setLevel", &Siggen::setLevel, py::arg("newLevel"), + py::arg("dB") = true); + siggen.def("reset", &Siggen::reset); siggen.def("setFilter", &Siggen::setFilter); - py::class_> noise(m, "Noise", siggen); + py::class_> noise(m, "Noise", siggen); noise.def(py::init<>()); py::class_> sine(m, "Sine", siggen); sine.def(py::init()); sine.def("setFreq", &Sine::setFreq); - py::class_> periodic(m, "Periodic", siggen); + py::class_> periodic(m, "Periodic", + siggen); + periodic.def("getSequence", + [](const Sweep &s) { return ColToNpy(s.getSequence()); }); py::class_> sweep(m, "Sweep", periodic); sweep.def(py::init()); @@ -50,6 +51,5 @@ void init_siggen(py::module &m) { sweep.def_readonly_static("BackwardSweep", &Sweep::BackwardSweep); sweep.def_readonly_static("LinearSweep", &Sweep::LinearSweep); sweep.def_readonly_static("LogSweep", &Sweep::LogSweep); - } /** @} */