IIR_BiQuadDirect

Directly filters a source vector through the biquad IIR filter.

Syntax

IppStatus ippsIIR_BiQuadDirect_16s(const Ipp16s* pSrc, Ipp16s* pDst, int len, const Ipp16s* pTaps, int numBq, Ipp32s* pDlyLine);

IppStatus ippsIIR_BiQuadDirect_16s_I(Ipp16s* pSrcDst, int len, const Ipp16s* pTaps, int numBq, Ipp32s* pDlyLine);

Parameters

pSrc

Pointer to the source vector.

pDst

Pointer to the destination vector.

pSrcDst

Pointer to the source and destination vector for the in-place operation.

len

Number of elements to be filtered.

pTaps

Pointer to the array containing the taps. The number of elements in the array is 6*numBq for BQ filters.

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 for BQ filters.

Description

The function ippsIIR_BiQuadDirect is declared in the ipps.h file. This function filters len elements in the source vector pSrc or pSrcDst through a biquad IIR filter and stores the result in pDst or pSrcDst, respectively. The number of cascades of biquads is defined by the numBq value. The 2*numBq-length array pDlyLine specifies the delay line values. 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

Values An,0 ≥ 0, Bn,0 ≥ 0 hold the scale factors (and not divisors) for all the other taps of each section.

Return Values

ippStsNoErr

Indicates no error.

ippStsMemAllocErr

Indicates an error when no memory is allocated.

ippStsNullPtrErr

Indicates an error when one of the specified pointers is NULL.

ippStsSizeErr

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

ippStsIIROrderErr

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

ippStsScaleRangeErr

Indicates an error when An,0 is less than 0.

Submit feedback on this help topic

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