From fef594c82518a8fe4c96794852c1fc849c0ed3b3 Mon Sep 17 00:00:00 2001 From: Roland Stigge Date: Sun, 17 Feb 2019 12:55:13 +0100 Subject: Added tunerdemo --- autocorrelation.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 autocorrelation.cpp (limited to 'autocorrelation.cpp') diff --git a/autocorrelation.cpp b/autocorrelation.cpp new file mode 100644 index 0000000..5c778c1 --- /dev/null +++ b/autocorrelation.cpp @@ -0,0 +1,29 @@ +#include "autocorrelation.h" + +#include "fft.h" + +struct RIT::AutoCorrelation::Impl { +public: + Impl(int size): mFft(std::make_shared(size)), mIfft(mFft) {} + std::shared_ptr mFft; + RIT::IFFT mIfft; +}; + +RIT::AutoCorrelation::AutoCorrelation(int size): mImpl(std::make_unique(size)) +{ +} + +RIT::AutoCorrelation::~AutoCorrelation() +{ +} + +std::vector> RIT::AutoCorrelation::operator()(const std::vector> &v) const +{ + auto result = (*mImpl->mFft)(v); + + std::transform(std::begin(result), std::end(result), std::begin(result), + [=](const auto& x){return x * std::conj(x);}); + + return mImpl->mIfft(result); +} + -- cgit v1.2.3