*    y[n] = b0 * x[n] + d1
*    d1 = b1 * x[n] + a1 * y[n] + d2
*    d2 = b2 * x[n] + a2 * y[n]
*
* where d1 and d2 represent the two state values. * * \par * A Biquad filter using a transposed Direct Form II structure is shown below. * \image html BiquadDF2Transposed.gif "Single transposed Direct Form II Biquad" * Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. * Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. * Pay careful attention to the sign of the feedback coefficients. * Some design tools flip the sign of the feedback coefficients: *
*    y[n] = b0 * x[n] + d1;
*    d1 = b1 * x[n] - a1 * y[n] + d2;
*    d2 = b2 * x[n] - a2 * y[n];
*
* In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. * * \par * Higher order filters are realized as a cascade of second order sections. * numStages refers to the number of second order stages used. * For example, an 8th order filter would be realized with numStages=4 second order stages. * A 9th order filter would be realized with numStages=5 second order stages with the * coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). * * \par * pState points to the state variable array. * Each Biquad stage has 2 state variables d1 and d2. * The state variables are arranged in the pState array as: *
*     {d11, d12, d21, d22, ...}
*
* where d1x refers to the state variables for the first Biquad and * d2x refers to the state variables for the second Biquad. * The state array has a total length of 2*numStages values. * The state variables are updated after each block of data is processed; the coefficients are untouched. * * \par * The CMSIS library contains Biquad filters in both Direct Form I and transposed Direct Form II. * The advantage of the Direct Form I structure is that it is numerically more robust for fixed-point data types. * That is why the Direct Form I structure supports Q15 and Q31 data types. * The transposed Direct Form II structure, on the other hand, requires a wide dynamic range for the state variables d1 and d2. * Because of this, the CMSIS library only has a floating-point version of the Direct Form II Biquad. * The advantage of the Direct Form II Biquad is that it requires half the number of state variables, 2 rather than 4, per Biquad stage. * * \par Instance Structure * The coefficients and state variables for a filter are stored together in an instance data structure. * A separate instance structure must be defined for each filter. * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. * * \par Init Functions * There is also an associated initialization function. * The initialization function performs following operations: * - Sets the values of the internal structure fields. * - Zeros out the values in the state buffer. * To do this manually without calling the init function, assign the follow subfields of the instance structure: * numStages, pCoeffs, pState. Also set all of the values in pState to zero. * * \par * Use of the initialization function is optional. * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. * To place an instance structure into a const data section, the instance structure must be manually initialized. * Set the values in the state buffer to zeros before static initialization. * For example, to statically initialize the instance structure use *