From: nldudok1 Date: Sun, 9 Dec 2007 17:40:08 +0000 (+0000) Subject: bugfix for indexnumbers in IIR filter X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=100e6105278e91ab07ae37e88e83b1ab738594c9;p=debian%2Fgnuradio bugfix for indexnumbers in IIR filter git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@7089 221aa14e-8319-0410-a670-987f0aec2ac5 --- diff --git a/gnuradio-core/src/lib/filter/gri_iir.h b/gnuradio-core/src/lib/filter/gri_iir.h index 5bc67df5..61d3be44 100644 --- a/gnuradio-core/src/lib/filter/gri_iir.h +++ b/gnuradio-core/src/lib/filter/gri_iir.h @@ -143,12 +143,6 @@ gri_iir::filter (const i_type input) for (i = 1; i < m; i ++) acc += (d_fbtaps[i] * d_prev_output[latest_m + i]); - // store the values twice to avoid having to handle wrap-around in the loop - d_prev_output[latest_m] = acc; - d_prev_output[latest_m+m] = acc; - d_prev_input[latest_n] = input; - d_prev_input[latest_n+n] = input; - latest_n--; latest_m--; if (latest_n < 0) @@ -156,6 +150,13 @@ gri_iir::filter (const i_type input) if (latest_m < 0) latest_m += m; + // store the values twice to avoid having to handle wrap-around in the loop + d_prev_output[latest_m] = acc; + d_prev_output[latest_m+m] = acc; + d_prev_input[latest_n] = input; + d_prev_input[latest_n+n] = input; + + d_latest_m = latest_m; d_latest_n = latest_n; return (o_type) acc;