Visible to Intel only — GUID: GUID-28C89FEA-ADDB-449A-9335-3E95984019D9
Visible to Intel only — GUID: GUID-28C89FEA-ADDB-449A-9335-3E95984019D9
IIRInit_BiQuad
Initializes an IIR filter state.
Syntax
Case 1: Operation on integer samples
IppStatus ippsIIRInit32f_BiQuad_16s(IppsIIRState32f_16s** ppState, const Ipp32f* pTaps, int numBq, const Ipp32f* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64f_BiQuad_16s(IppsIIRState64f_16s** ppState, const Ipp64f* pTaps, int numBq, const Ipp64f* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64f_BiQuad_32s(IppsIIRState64f_32s** ppState, const Ipp64f* pTaps, int numBq, const Ipp64f* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit32fc_BiQuad_16sc(IppsIIRState32fc_16sc** ppState, const Ipp32fc* pTaps, int numBq, const Ipp32fc* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64fc_BiQuad_16sc(IppsIIRState64fc_16sc** ppState, const Ipp64fc* pTaps, int numBq, const Ipp64fc* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64fc_BiQuad_32sc(IppsIIRState64fc_32sc** ppState, const Ipp64fc* pTaps, int numBq, const Ipp64fc* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64f_BiQuad_DF1_32s(IppsIIRState64f_32s** ppState, const Ipp64f* pTaps, int numBq, const Ipp32s* pDlyLine, Ipp8u* pBuf);
Case 2: Operation on floating point samples
IppStatus ippsIIRInit_BiQuad_32f(IppsIIRState_32f** ppState, const Ipp32f* pTaps, int numBq, const Ipp32f* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64f_BiQuad_32f(IppsIIRState64f_32f** ppState, const Ipp64f* pTaps, int numBq, const Ipp64f* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit_BiQuad_64f(IppsIIRState_64f** ppState, const Ipp64f* pTaps, int numBq, const Ipp64f* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit_BiQuad_32fc(IppsIIRState_32fc** ppState, const Ipp32fc* pTaps, int numBq, const Ipp32fc* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit64fc_BiQuad_32fc(IppsIIRState64fc_32fc** ppState, const Ipp64fc* pTaps, int numBq, const Ipp64fc* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit_BiQuad_64fc(IppsIIRState_64fc** ppState, const Ipp64fc* pTaps, int numBq, const Ipp64fc* pDlyLine, Ipp8u* pBuf);
IppStatus ippsIIRInit_BiQuad_DF1_32f(IppsIIRState_32f** ppState, const Ipp32f* pTaps, int numBq, const Ipp32f* pDlyLine, Ipp8u* pBuf);
Include Files
ipps.h
Domain Dependencies
Headers: ippcore.h, ippvm.h
Libraries: ippcore.lib, ippvm.lib
Parameters
pTaps |
Pointer to the array containing the taps. The number of elements in the array is 6*numBq. |
numBq |
Number of cascades of biquads. |
pDlyLine |
Pointer to the array containing the delay line values. The number of elements in the array is 2*numBq. |
ppState |
Pointer to the pointer to the biquad IIR state structure. |
pBuf |
Pointer to the external buffer. |
ppState |
Pointer to the pointer to the arbitrary IIR state structure to be created. |
Description
This function initializes a biquad (BQ) IIR filter state in the external buffer. The size of this buffer must be computed previously by calling the corresponding function ippsIIRGetStateSize_BiQuad. The initialization function copies the taps from the array pTaps into the state structure ppState. The array pDlyLine specifies the delay line values. The number of elements in the array pDlyLine is 4*numBq for the function flavor ippsIIRInit_BiQuad_DF1, and 2* numBq for all other flavors.
If the pointer to the array pDlyLine is not NULL, the array content is copied into the context structure, otherwise the delay values of the state structure are set to 0.
The function flavor ippsIIRInit_BiQuad_DF1 operates with the delay line values that are arranged in the array as follows:
x0,-2, x0,-1, y0,-2, y0,-1, x1,-2, x1,-1, y1,-2, y1,-1, ... xnumBq-1,-2, xnumBq-1,-1, y numBq-1,-2, y numBq-1,-1.
A biquad IIR filter is defined by a cascade of biquads. The number of cascades of biquads is specified by the numBq value. The 6*numBq -length array pTaps specifies the taps arranged in the array as follows:
B0,0, B0,1, B0,2, A0,0, A0,1, A0,2; B1,0, B1,1, B1,2, A1,0, A1,1, A1,2; . . . AnumBq-1,2
An,0 ≠ 0, Bn,0 ≠ 0
If the state is not created, the initialization function returns an error status.
The initialization functions with the 32s_32f suffixes called with floating-point taps automatically convert the taps into integer data type.
In all cases the data is converted into integer type with scaling for better precision.
Return Values
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when one of the specified pointers is NULL. |
ippStsDivByZeroErr |
Indicates an error when A0, An,0 or Bn,0 is equal to 0. |
ippStsIIROrderErr |
Indicates an error when numBq is less than or equal to 0. |