Visible to Intel only — GUID: GUID-C35366E9-B365-4F3E-A707-8ED601512B3B
Visible to Intel only — GUID: GUID-C35366E9-B365-4F3E-A707-8ED601512B3B
FIRSR
Performs single-rate FIR filtering of a source vector.
Syntax
IppStatus ippsFIRSR_32f(const Ipp32f* pSrc, Ipp32f* pDst, int numIters, IppsFIRSpec_32f* pSpec, const Ipp32f* pDlySrc, Ipp32f* pDlyDst, Ipp8u* pBuf);
IppStatus ippsFIRSR_64f(const Ipp64f* pSrc, Ipp64f* pDst, int numIters, IppsFIRSpec_64f* pSpec, const Ipp64f* pDlySrc, Ipp64f* pDlyDst, Ipp8u* pBuf);
IppStatus ippsFIRSR_32fc(const Ipp32fc* pSrc, Ipp32fc* pDst, int numIters, IppsFIRSpec_32fc* pSpec, const Ipp32fc* pDlySrc, Ipp32fc* pDlyDst, Ipp8u* pBuf);
IppStatus ippsFIRSR32f_32fc(const Ipp32fc* pSrc, Ipp32fc* pDst, int numIters, IppsFIRSpec32f_32fc* pSpec, const Ipp32fc* pDlySrc, Ipp32fc* pDlyDst, Ipp8u* pBuf);
IppStatus ippsFIRSR_64fc(const Ipp64fc* pSrc, Ipp64fc* pDst, int numIters, IppsFIRSpec_64fc* pSpec, const Ipp64fc* pDlySrc, Ipp64fc* pDlyDst, Ipp8u* pBuf);
IppStatus ippsFIRSR_16s(const Ipp16s* pSrc, Ipp16s* pDst, int numIters, IppsFIRSpec_32f* pSpec, const Ipp16s* pDlySrc, Ipp16s* pDlyDst, Ipp8u* pBuf);
IppStatus ippsFIRSR_16sc(const Ipp16sc* pSrc, Ipp16sc* pDst, int numIters, IppsFIRSpec_32fc* pSpec, const Ipp16sc* pDlySrc, Ipp16sc* pDlyDst, Ipp8u* pBuf);
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. |
numIters |
Number of elements in the destination vector. |
pSpec |
Pointer to the internal constant specification structure. |
pDlySrc |
Pointer to the array containing values for the source delay lines. |
pDlyDst |
Pointer to the array containing values for the destination delay line. |
pBuf |
Pointer to the work buffer. |
Description
Before using this function, you need to initialize the internal constant specification structure using the ippsFIRSRInit function.
This function filters the source vector using the single-rate FIR filter. Filtering is performed by the following formula:
where
- x(0)...x(numIters) is the source vector
- h(0)...h(tapsLen-1) are the FIR filter coefficients
To compute the y(0)...y(tapsLen-1) destination vector, the function uses the pDlySrc array of the delay line. The length of the pDlySrc array is tapsLen-1 elements.
The first tapsLen-1 elements of the function are:
y(0)=h(tapsLen-1)*d(0)+h(tapsLen-2)*d(1)+...+h(1)*d(tapsLen-2)+h(0)*x(0)
y(1)=h(tapsLen-1)*d(1)+h(tapsLen-2)*d(2)+...+h(1)*x(0)+h(0)*x(1)
y(tapsLen-1)=h(tapsLen-1)*x(0)+...+h(1)*x(tapsLen-2)+h(0)*x(tapsLen-1)
where
d(0), d(1), d(2), and d(tapsLen-2) are the elements of the pDlySrc array
The last tapsLen-1 elements of the source vector are copied to the non-zero pDlyDst buffer for the next call of the FIR filter.
The arrays pDlySrc and pDlyDst support NULL values:
- if pDlySrc is NULL, the function uses the delay line with zero values
- if pDlyDst is NULL, the function does not copy any data to the destination delay line
Return Values
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when any of the specified pointers is NULL. |