Developer Reference

  • 2020
  • 07/15/2020
  • 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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804