From 73f4eaba3a08a5e1b85512868c3916c7fd4e4571 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Thu, 8 May 2025 18:11:35 -0300 Subject: Updated to work with shift --- log-fourier.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'log-fourier.cpp') diff --git a/log-fourier.cpp b/log-fourier.cpp index 2e93e87..5b5955a 100644 --- a/log-fourier.cpp +++ b/log-fourier.cpp @@ -4,9 +4,9 @@ #include #include -LogarithmicFourierTransform::LogarithmicFourierTransform(unsigned N, Real k, Real Δτ, unsigned pad) : N(N), pad(pad), k(k), Δτ(Δτ) { - τₛ = -0.5 * N; - ωₛ = -0.5 * N; +LogarithmicFourierTransform::LogarithmicFourierTransform(unsigned N, Real k, Real Δτ, unsigned pad, Real shift) : N(N), pad(pad), k(k), Δτ(Δτ) { + τₛ = -shift * N; + ωₛ = -(1-shift) * N; sₛ = -0.5 * pad * N; a = reinterpret_cast(FFTW_ALLOC_COMPLEX(pad*N)); â = reinterpret_cast(FFTW_ALLOC_COMPLEX(pad*N)); @@ -70,7 +70,7 @@ std::vector LogarithmicFourierTransform::fourier(const std::vector LogarithmicFourierTransform::inverse(const std::vector LogarithmicFourierTransform::inverse(const std::vector& C, const std::vector& R, const std::vector& Ct, const std::vector& Rt, unsigned p, unsigned s, Real λ, Real τ₀, Real β, unsigned log2n, Real Δτ, Real k) { @@ -184,7 +184,7 @@ Real estimateZ(LogarithmicFourierTransform& fft, const std::vector& C, con } Real energy(const LogarithmicFourierTransform& fft, std::vector& C, const std::vector& R, unsigned p, unsigned s, Real λ, Real β) { - Real E = 0; + Real E = fft.t(0) * (df(λ, p, s, 1) + R[0] * df(λ, p, s, C[0])) / 2; for (unsigned n = 0; n < C.size()/2-1; n++) { Real h₂ₙ = fft.t(2*n+1) - fft.t(2*n); Real h₂ₙ₊₁ = fft.t(2*n+2) - fft.t(2*n+1); -- cgit v1.2.3-70-g09d2