#pragma once #include "utils/workers/plugin.hpp" #include "utils/workers/result.hpp" // Генерирует простую синусоиду и др. полезности см. workers/signal_type.hpp namespace hr::plugins { // Формула синусоиды // f(t) = A_m sin(2 PI t 1/T + a) // где // a - начальная фаза // t - время замера // 1/T - частота // T - время полного цикла одного периуда колебаний class signal_generator : public plugin { public: signal_generator(const setup& st); virtual ~signal_generator() = default; public: void process(fvec_t& base, real_time timestamp) override; void process(cvec_t& fft, fvec_t& base, real_time timestamp) override; result get_result() override; private: result m_result; private: std::vector sin(); std::vector square(); std::vector triangle(); std::vector saw(); std::vector noise_only(); std::vector speech_like(); std::vector three_sines(); private: }; }