- /*
- * This strange sum + shift is an optimization for iir_y[0] * 0.668.
- * iir * 0.668 ~= (iir * 21) / 32 =
- * = (iir * 16) / 32 + (iir * 4) / 32 + iir / 32 =
- * = iir / 2 + iir / 8 + iir / 32 =
- * = iir >> 1 + iir >> 3 + iir >> 5
- */
- iir_y[1] = iir_x[0] + iir_x[1] + (iir_y[0] >> 1) + (iir_y[0] >> 3) + (iir_y[0] >> 5);
+ #if CONFIG_AFSK_FILTER == AFSK_BUTTERWORTH
+ /*
+ * This strange sum + shift is an optimization for iir_y[0] * 0.668.
+ * iir * 0.668 ~= (iir * 21) / 32 =
+ * = (iir * 16) / 32 + (iir * 4) / 32 + iir / 32 =
+ * = iir / 2 + iir / 8 + iir / 32 =
+ * = iir >> 1 + iir >> 3 + iir >> 5
+ */
+ iir_y[1] = iir_x[0] + iir_x[1] + (iir_y[0] >> 1) + (iir_y[0] >> 3) + (iir_y[0] >> 5);
+ //iir_y[1] = iir_x[0] + iir_x[1] + iir_y[0] * 0.6681786379;
+ #elif CONFIG_AFSK_FILTER == AFSK_CHEBYSHEV
+ /*
+ * This should be (iir_y[0] * 0.438) but
+ * (iir_y[0] >> 1) is a faster approximation :-)
+ */
+ iir_y[1] = iir_x[0] + iir_x[1] + (iir_y[0] >> 1);
+ //iir_y[1] = iir_x[0] + iir_x[1] + iir_y[0] * 0.4379097269;
+ #endif