Files
harmonica/.ccls-cache/@mnt@raid@projects@dsp@harmonica@harmonica/src@plugins@signal_generator@signal_generator.hpp
2026-02-22 10:42:29 +03:00

42 lines
1.1 KiB
C++

#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<float> sin();
std::vector<float> square();
std::vector<float> triangle();
std::vector<float> saw();
std::vector<float> noise_only();
std::vector<float> speech_like();
std::vector<float> three_sines();
private:
};
}