vDSP_biquadm_CreateSetup
Builds a data structure that contains precalculated data for use by a single-precision, multichannel cascaded biquadratic filter function.
Declaration
vDSP_biquadm_Setup vDSP_biquadm_CreateSetup(const double *__coeffs, vDSP_Length __M, vDSP_Length __N);Parameters
- __Coefficients:
The input array that contains the double-precision filter coefficients. The number of elements in the coefficients array must be
5 * __M * __N. - __M:
The number of sections in the biquad filter.
- __N :
The number of input-output channels.
Return Value
A pointer to an allocated and initialized biquadratic filter object.
Discussion
This function constructs and returns a biquadratic filter object from the coefficients that you specify. This function initializes the internal state of the setup object with all delay elements set to zero.
You define the __Coefficients array as a series of sections with each containing a set of five coefficients for each channel. Specify the order of the coefficients as three feedforward coefficients followed by two feedback coefficients.
The following code shows an example of creating a biquad setup object that contains two sections:
let section0 = (b0: 0.984764420,
b1: -1.969528840,
b2: 0.984764420,
a1: -1.969331359,
a2: 0.969726321)
let section1 = (b0: 0.984764420,
b1: -1.969528840,
b2: 0.984764420,
a1: -1.955243388,
a2: 0.969726321)
let sectionCount = vDSP_Length(2)
let channelCount = vDSP_Length(1)
let setup = vDSP_biquadm_CreateSetup([
section0.b0, section0.b1, section0.b2, section0.a1, section0.a2,
section1.b0, section1.b1, section1.b2, section1.a1, section1.a2
],
sectionCount,
channelCount)This function allocates memory for its own use. You must call the vDSP_biquadm_DestroySetup function to free the allocated memory.