2018-10-25 09:43:21 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "GenericFilter.h"
|
|
|
|
|
|
|
|
namespace fratio {
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
class MovingAverage : public GenericFilter<T> {
|
|
|
|
public:
|
|
|
|
MovingAverage() = default;
|
|
|
|
MovingAverage(size_t windowSize)
|
2018-10-26 01:31:14 +00:00
|
|
|
: GenericFilter<T>({ 1 }, std::vector<T>(windowSize, T(1) / windowSize))
|
2018-10-25 09:43:21 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2018-10-26 01:31:14 +00:00
|
|
|
void setWindowSize(size_t windowSize) { setCoeff({ 1 }, std::vector<T>(windowSize, 1 / windowSize)); }
|
2018-10-25 09:43:21 +00:00
|
|
|
size_t windowSize() const noexcept { return m_bCoeff.size(); }
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace fratio
|