Developer Reference

  • 2021
  • 03/26/2021
  • Public Content
Contents

IIRSparseInit

Initializes a sparse IIR filter structure.

Syntax

IppStatus ippsIIRSparseInit_32f(IppsIIRSparseState_32f**
ppState
, const Ipp32f*
pNZTaps
, const Ipp32s*
pNZTapPos
, int
nzTapsLen1
, int
nzTapsLen2
, const Ipp32f*
pDlyLine
, Ipp8u*
pBuf
);
Include Files
ipps.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
Libraries:
ippcore.lib
,
ippvm.lib
Parameters
pNZTaps
Pointer to the array containing the non-zero tap values.
pNZTapPos
Pointer to the array containing positions of the non-zero tap values. The number of elements in the array is
nzTapsLen
.
nzTapsLen1
,
nzTapsLen2
Pointer to the destination vector.
pDlyLine
Pointer to the array containing the delay line values.
ppState
Double pointer to the sparse IIR state structure.
pBuf
Pointer to the external buffer for the sparse IIR state structure.
Description
This function initializes a sparse IIR filter state structure
ppState
in the external buffer
pBuf
. The size of this buffer must be computed previously by calling the function
ippsIIRSparseGetStateSize
.
The
(
nzTapsLen1
+
nzTapsLen2
)
-length array
pNZTaps
specifies the non-zero taps arranged in the array as follows:
B
0
, B
1
, . . ., B
nzTapsLen1-1
, A
0
, A
1
, . . ., A
nzTapsLen2-1.
The
(
nzTapsLen1
+
nzTapsLen2
)
-length array
pNZTapPos
specifies the non-zero tap positions arranged in the array as follows:
BP
0
, BP
1
, . . ., BP
nzTapsLen1-1
, AP
0
, AP
1
, . . ., AP
nzTapsLen2-1,
AP
0
≠ 0
The initialization function copies the values of filter coefficients from the array
pNZTaps
containing non-zero taps and their positions from the array
pNZTapPos
into the state structure
ppState
. The array
pDlyLine
contains the delay line values.The number of elements in this array is
pNZTapPos
[
nzTapsLen1
-1] +
pNZTapPos
[
nzTapsLen1
+
nzTapsLen2
- 1]
. If the pointer to the array
pDlyLine
is not
NULL
, the array contents is copied into the state structure
ppState
, otherwise the delay line values in the state structure are initialized to 0.
The values of
nzTapsLen1
,
nzTapsLen2
,
pNZTapPos
[
nzTapsLen
-1]
, and
pNZTapPos
[
nzTapsLen1
+
nzTapsLen2
- 1]
must be equal to those specified in the function
ippsIIRSparseGetStateSize
.
Return Values
ippStsNoErr
Indicates no error.
ippStsNullPtrErr
Indicates an error when one of the specified pointers is
NULL
.
ippStsIIROrderErr
Indicates an error if
nzTapsLen1
is less than or equal to 0, or
nzTapsLen2
is less than 0.
ippStsSparseErr
Indicates an error if positions of the non-zero taps are not in ascending order, or are negative or repetitive; or
pNZTapPos
[
nzTapsLen1
] is equal to 0.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.