Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public
Document Table of Contents

WinBlackman

Multiplies a vector by a Blackman windowing function.

Syntax

IppStatus ippsWinBlackman_16s(const Ipp16s* pSrc, Ipp16s* pDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_16sc(const Ipp16sc* pSrc, Ipp16sc* pDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_32f(const Ipp32f* pSrc, Ipp32f* pDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_32fc(const Ipp32fc* pSrc, Ipp32fc* pDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_64f(const Ipp64f* pSrc, Ipp64f* pDst, int len, Ipp64f alpha);

IppStatus ippsWinBlackman_64fc(const Ipp64fc* pSrc, Ipp64fc* pDst, int len, Ipp64f alpha);

IppStatus ippsWinBlackmanStd_16s(const Ipp16s* pSrc, Ipp16s* pDst, int len);

IppStatus ippsWinBlackmanStd_16sc(const Ipp16sc* pSrc, Ipp16sc* pDst, int len);

IppStatus ippsWinBlackmanStd_32f(const Ipp32f* pSrc, Ipp32f* pDst, int len);

IppStatus ippsWinBlackmanStd_32fc(const Ipp32fc* pSrc, Ipp32fc* pDst, int len);

IppStatus ippsWinBlackmanStd_64f(const Ipp64f* pSrc, Ipp64f* pDst, int len);

IppStatus ippsWinBlackmanStd_64fc(const Ipp64fc* pSrc, Ipp64fc* pDst, int len);

IppStatus ippsWinBlackmanOpt_16s(const Ipp16s* pSrc, Ipp16s* pDst, int len);

IppStatus ippsWinBlackmanOpt_16sc(const Ipp16sc* pSrc, Ipp16sc* pDst, int len);

IppStatus ippsWinBlackmanOpt_32f(const Ipp32f* pSrc, Ipp32f* pDst, int len);

IppStatus ippsWinBlackmanOpt_32fc(const Ipp32fc* pSrc, Ipp32fc* pDst, int len);

IppStatus ippsWinBlackmanOpt_64f(const Ipp64f* pSrc, Ipp64f* pDst, int len);

IppStatus ippsWinBlackmanOpt_64fc(const Ipp64fc* pSrc, Ipp64fc* pDst, int len);

IppStatus ippsWinBlackman_16s_I(Ipp16s* pSrcDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_16sc_I(Ipp16sc* pSrcDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_32f_I(Ipp32f* pSrcDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_32fc_I(Ipp32fc* pSrcDst, int len, Ipp32f alpha);

IppStatus ippsWinBlackman_64f_I(Ipp64f* pSrcDst, int len, Ipp64f alpha);

IppStatus ippsWinBlackman_64fc_I(Ipp64fc* pSrcDst, int len, Ipp64f alpha);

IppStatus ippsWinBlackmanOpt_16s_I(Ipp16s* pSrcDst, int len);

IppStatus ippsWinBlackmanOpt_16sc_I(Ipp16sc* pSrcDst, int len);

IppStatus ippsWinBlackmanOpt_32f_I(Ipp32f* pSrcDst, int len);

IppStatus ippsWinBlackmanOpt_32fc_I(Ipp32fc* pSrcDst, int len);

IppStatus ippsWinBlackmanOpt_64f_I(Ipp64f* pSrcDst, int len);

IppStatus ippsWinBlackmanOpt_64fc_I(Ipp64fc* pSrcDst, int len);

IppStatus ippsWinBlackmanStd_16s_I(Ipp16s* pSrcDst, int len);

IppStatus ippsWinBlackmanStd_16sc_I(Ipp16sc* pSrcDst, int len);

IppStatus ippsWinBlackmanStd_32f_I(Ipp32f* pSrcDst, int len);

IppStatus ippsWinBlackmanStd_32fc_I(Ipp32fc* pSrcDst, int len);

IppStatus ippsWinBlackmanStd_64f_I(Ipp64f* pSrcDst, int len);

IppStatus ippsWinBlackmanStd_64fc_I(Ipp64fc* pSrcDst, int len);

Include Files

ipps.h

Domain Dependencies

Headers: ippcore.h, ippvm.h

Libraries: ippcore.lib, ippvm.lib

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.

alpha

Adjustable parameter associated with the Blackman windowing equation.

len

Number of elements in the vector

Description

These functions multiply the vector pSrc by the Blackman window, and store the result in pDst.

The in-place flavors of ippsWinBlackman multiply the vector pSrcDst by the Blackman window, and store the result in pSrcDst.

The complex types multiply both the real and imaginary parts of the vector by the same window. The functions for the Blackman family of windows are defined below.

ippsWinBlackman. The function ippsWinBlackman allows the application to specify alpha. The Blackman window is defined as follows:



ippsWinBlackmanStd. The standard Blackman window is provided by the function ippsWinBlackmanStd, which simply multiplies a vector by a Blackman window with the standard value of alpha shown below:

alpha = -0.16

ippsWinBlackmanOpt. The function ippsWinBlackmanOpt provides a modified window that has a 30 dB/octave roll-off by multiplying a vector by a Blackman window with the optimal value of alpha shown below:



The minimum len is equal to 4. For large len, the optimal alpha converges asymptotically to the asymptotic alpha; the application can use the asymptotic value of alpha shown below:

alpha = -0.25

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when the pSrc, pDst, or pSrcDst pointer is NULL.

ippStsSizeErr

Indicates an error when len is less than 4 for the function ippsWinBlackmanOpt and less than 3 for all other functions of the family.

Example

The example below shows how to use the function ippsWinBlackmanStd_32f_I

void blackman(void) {
      Ipp32f x[8];
      ippsSet_32f(1, x, 8);
      ippsWinBlackmanStd_32f_I(x, 8);
      printf_32f("blackman (half) =", x, 4, ippStsNoErr); 
}

Output:

    blackman(half) = 0.000000 0.090453 0.459183 0.920364 
Matlab* Analog: 
    >> b = blackman(8)'; b(1:4)