IIRInitAlloc

Allocates memory and initializes the state structure for an arbitrary IIR filter.

Syntax

Case 1: Operation on integer samples

IppStatus ippsIIRInitAlloc32s_16s(IppsIIRState32s_16s** ppState, const Ipp32s* pTaps, int order, int tapsFactor, const Ipp32s* pDlyLine);

IppStatus ippsIIRInitAlloc32s_16s32f(IppsIIRState32s_16s** ppState, const Ipp32f* pTaps, int order, const Ipp32s* pDlyLine);

IppStatus ippsIIRInitAlloc32f_16s(IppsIIRState32f_16s** ppState, const Ipp32f* pTaps, int order, const Ipp32f* pDlyLine);

IppStatus ippsIIRInitAlloc64f_16s(IppsIIRState64f_16s** ppState, const Ipp64f* pTaps, int order, const Ipp64f* pDlyLine);

IppStatus ippsIIRInitAlloc64f_32s(IppsIIRState64f_32s** ppState, const Ipp64f* pTaps, int order, const Ipp64f* pDlyLine);

IppStatus ippsIIRInitAlloc32sc_16sc(IppsIIRState32sc_16sc** ppState, const Ipp32sc* pTaps, int order, int tapsFactor, const Ipp32sc* pDlyLine);

IppStatus ippsIIRInitAlloc32sc_16sc32fc(IppsIIRState32sc_16sc** ppState, const Ipp32fc* pTaps, int order, const Ipp32sc* pDlyLine);

IppStatus ippsIIRInitAlloc32fc_16sc(IppsIIRState32fc_16sc** ppState, const Ipp32fc* pTaps, int order, const Ipp32fc* pDlyLine);

IppStatus ippsIIRInitAlloc64fc_16sc(IppsIIRState64fc_16sc** ppState, const Ipp64fc* pTaps, int order, const Ipp64fc* pDlyLine);

IppStatus ippsIIRInitAlloc64fc_32sc(IppsIIRState64fc_32sc** ppState, const Ipp64fc* pTaps, int order, const Ipp64fc* pDlyLine);

Case 2: Operation on floating point samples

IppStatus ippsIIRInitAlloc_32f(IppsIIRState_32f** ppState, const Ipp32f* pTaps, int order, const Ipp32f* pDlyLine);

IppStatus ippsIIRInitAlloc64f_32f(IppsIIRState64f_32f** ppState, const Ipp64f* pTaps, int order, const Ipp64f* pDlyLine);

IppStatus ippsIIRInitAlloc_64f(IppsIIRState_64f** ppState, const Ipp64f* pTaps, int order, const Ipp64f* pDlyLine);

IppStatus ippsIIRInitAlloc_32fc(IppsIIRState_32fc** ppState, const Ipp32fc* pTaps, int order, const Ipp32fc* pDlyLine);

IppStatus ippsIIRInitAlloc64fc_32fc(IppsIIRState64fc_32fc** ppState, const Ipp64fc* pTaps, int order, const Ipp64fc* pDlyLine);

IppStatus ippsIIRInitAlloc_64fc(IppsIIRState_64fc** ppState, const Ipp64fc* pTaps, int order, const Ipp64fc* pDlyLine);

Parameters

pTaps

Pointer to the array containing the taps. The number of elements in the array is 2*( order+1).

tapsFactor

Scale factor for the taps of integer data type.

order

Order of the IIR filter.

pDlyLine

Pointer to the array containing the delay line values. The number of elements in the array is order.

ppState

Pointer to the pointer to the IIR state structure.

Description

The function ippsIIRInitAlloc is declared in the ipps.h file. This function allocates memory and initializes an arbitrary IIR filter state. The initialization functions copy the taps from the array pTaps into the state structure ppState. The tapsFactor is used to scale integer tap values. The array pDlyLine specifies the delay line values. 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 filter order is defined by the order value which is equal to 0 for zero-order filters. The 2*(order + 1)-length array pTaps specifies the taps arranged in the array as follows:

B0, B1, . . ., Border, A0, A1, . . ., Aorder

A0 ≠ 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. Example Using the ippsIIR Function to Filter a Sample shows how to convert floating-point taps into integer data type.

Return Values

ippStsNoErr

Indicates no error.

ippStsMemAllocErr

Indicates an error when no memory allocated.

ippStsNullPtrErr

Indicates an error when pTaps or ppState is NULL.

ippStsIIROrderErr

Indicates an error when order is less than or equal to 0.

ippStsDivByZeroErr

Indicates an error when A0 is equal to 0.

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.