diff options
Diffstat (limited to 'gnuradio-core/src/lib')
-rw-r--r-- | gnuradio-core/src/lib/filter/gri_iir.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gnuradio-core/src/lib/filter/gri_iir.h b/gnuradio-core/src/lib/filter/gri_iir.h index 5bc67df53..61d3be44d 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<i_type, o_type, tap_type>::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<i_type, o_type, tap_type>::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; |