From d8f52c944fb712f7046b18aa3e6dd80b1aea84a5 Mon Sep 17 00:00:00 2001 From: Florian Henkes Date: Sun, 15 Dec 2024 02:43:24 +0100 Subject: [PATCH 1/2] Fix start values of FIIR and Biquad filter to second sample --- src/biquad_filter.jl | 4 ++++ src/first_order_iir.jl | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/biquad_filter.jl b/src/biquad_filter.jl index 711bd73b..ea77750d 100644 --- a/src/biquad_filter.jl +++ b/src/biquad_filter.jl @@ -81,6 +81,10 @@ end s1 = fma(neg_a1, y_i, z2) s2 = fma(neg_a2, y_i, z3) end + + # fix start value + Y[1] = Y[2] + Y end diff --git a/src/first_order_iir.jl b/src/first_order_iir.jl index 44a72073..49a1142b 100644 --- a/src/first_order_iir.jl +++ b/src/first_order_iir.jl @@ -99,6 +99,10 @@ X::AbstractVector{U}) where {T<:Real, U<:Real} s1 = fma(neg_a1, y_i, z2) end + + # fix start value + Y[1] = Y[2] + Y end From 104b9369c0790a052ebf9d275e4171222f9a0581 Mon Sep 17 00:00:00 2001 From: Florian Henkes Date: Sun, 15 Dec 2024 03:26:38 +0100 Subject: [PATCH 2/2] Require first two samples to be set to third sample for BiquadFilter --- src/biquad_filter.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/biquad_filter.jl b/src/biquad_filter.jl index ea77750d..a66bbb5c 100644 --- a/src/biquad_filter.jl +++ b/src/biquad_filter.jl @@ -83,7 +83,8 @@ end end # fix start value - Y[1] = Y[2] + Y[1] = Y[3] + Y[2] = Y[3] Y end