AutoCorrNorm
Calculates normal, biased, and unbiased auto-correlation of a vector.
Syntax
IppStatus ippsAutoCorrNorm_32f (const Ipp32f*
pSrc
, int
srcLen
, Ipp32f*
pDst
, int
dstLen
, IppEnum
algType
, Ipp8u*
pBuffer
);
IppStatus ippsAutoCorrNorm_64f (const Ipp64f*
pSrc
, int
srcLen
, Ipp64f*
pDst
, int
dstLen
, IppEnum
algType
, Ipp8u*
pBuffer
);
IppStatus ippsAutoCorrNorm_32fc (const Ipp32fc*
pSrc
, int
srcLen
, Ipp32fc*
pDst
, int
dstLen
, IppEnum
algType
, Ipp8u*
pBuffer
);
IppStatus ippsAutoCorrNorm_64fc (const Ipp64fc*
pSrc
, int
srcLen
, Ipp64fc*
pDst
, int
dstLen
, IppEnum
algType
, Ipp8u*
pBuffer
);
Include Files
ipps.h
Parameters
- pSrc
- Pointer to the source vector.
- srcLen
- Number of elements in the source vector.
- pDst
- Pointer to the destination vector. This vector stores the calculated auto-correlation of the source vector.
- dstLen
- Number of elements in the destination vector (length of auto-correlation).
- algType
- Bit-field mask for the algorithm type definition. Possible values are the results of composition of theIppAlgTypeandIppsNormOpvalues.
- pBuffer
- Pointer to the buffer for internal calculations.
Description
Before using these functions, you need to compute the size of the work buffer using the
ippsAutoCorrNormGetBufferSize
function.These functions calculate the normalized auto-correlation of the
pSrc
vector of srcLen
length and store the results in the pDst
vector of dstLen
length. The result vector pDst
is calculated by the following equations:
where

The auto-correlation is computed for positive lags only. Auto-correlation for a negative lag is a complex conjugate of the auto-correlation for the equivalent positive lag.
Return Values
- ippStsNoErr
- Indicates no error.
- ippStsNullPtrErr
- Indicates an error when any of the specified pointers isNULL.
- ippStsSizeErr
- Indicates an error whensrcLenordstLenis less than, or equal to zero.
- ippStsAlgTypeErr
- Indicates an error when:
- the result of the bitwise AND operation between thealgTypeandippAlgMaskdiffers from theippAlgAuto,ippAlgDirect, orippAlgFFTvalues;
- the result of the bitwise AND operation between thealgTypeandippsNormMaskdiffers from theippsNormNone,ippsNormA, orippsNormBvalues.
Example
The code example below demonstrates how to use the
ippsAutoCorrNormGetBufferSize
and ippsAutoCorrNorm
functions.IppStatus AutoCorrNormExample (void) { IppStatus status; const int srcLen = 5, dstLen = 10; Ipp32f pSrc[srcLen] = {0.2f, 3.1f, 2.0f, 1.2f, -1.1f}, pDst[dstLen]; IppEnum funCfg = (IppEnum)(ippAlgAuto|ippsNormB); int bufSize = 0; Ipp8u *pBuffer; status = ippsAutoCorrNormGetBufferSize(srcLen, dstLen, ipp32f, funCfg, &bufSize); if ( status != ippStsNoErr ) return status; pBuffer = ippsMalloc_8u( bufSize ); status = ippsAutoCorrNorm_32f(pSrc, srcLen, pDst, dstLen, funCfg, pBuffer); printf_32f("pDst", pDst, dstLen); ippsFree( pBuffer ); return status; }
The result is as follows:
pDst -> 3.3 2.0 0.6 -1.6 -0.2 0.0 0.0 0.0 0.0 0.0