From 573f52a5740ecfaa79488776d961c9736bbcc1cd Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Sat, 3 Mar 2018 12:37:30 +0100 Subject: [PATCH] added Lanczos window --- window.hh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/window.hh b/window.hh index 26120df..396bf46 100644 --- a/window.hh +++ b/window.hh @@ -53,6 +53,24 @@ public: inline operator const TYPE * () const { return w; } }; +template +class Lanczos +{ + TYPE w[TAPS]; + TYPE sinc(TYPE x) + { + return TYPE(0) == x ? TYPE(1) : std::sin(TYPE(M_PI) * x) / (TYPE(M_PI) * x); + } +public: + Lanczos() + { + for (int n = 0; n < TAPS; ++n) + w[n] = sinc(TYPE(2 * n) / TYPE(TAPS - 1) - TYPE(1)); + } + inline TYPE operator () (int n) { return n >= 0 && n < TAPS ? w[n] : 0; } + inline operator const TYPE * () const { return w; } +}; + template class Gauss {