From 7ae1cf11a6beebf3352540043a544d4d53f85cd9 Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Wed, 29 Jun 2022 15:26:54 +0200 Subject: [PATCH] Correction of issue #5 FIR F64 documentation is incorrect. --- Source/FilteringFunctions/arm_fir_init_f64.c | 21 +++++--------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/Source/FilteringFunctions/arm_fir_init_f64.c b/Source/FilteringFunctions/arm_fir_init_f64.c index 8c578b50..28bd17c8 100644 --- a/Source/FilteringFunctions/arm_fir_init_f64.c +++ b/Source/FilteringFunctions/arm_fir_init_f64.c @@ -52,22 +52,11 @@ {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]} @par - pState points to the array of state variables and some working memory for the Helium version. - pState is of length numTaps+blockSize-1 samples (except for Helium - see below), where blockSize is the number of input samples processed by each call to arm_fir_f32(). - @par Initialization of Helium version - For Helium version the array of coefficients must be a multiple of 4 (4a) even if less - then 4a coefficients are defined in the FIR. The additional coefficients - (4a - numTaps) must be set to 0. - numTaps is still set to its right value in the init function. It means that - the implementation may require to read more coefficients due to the vectorization and - to avoid having to manage too many different cases in the code. - - @par Helium state buffer - The state buffer must contain some additional temporary data - used during the computation but which is not the state of the FIR. - The first blockSize samples are temporary data. - The remaining samples are the state of the FIR filter. - So the state buffer has size numTaps + 2 * blockSize - 1 + pState points to the array of state variables. + pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_f32(). + + @par + There is no Helium version of the fir F64. */