newb where are filter functions?

newb where are filter functions?

ndbecker的头像

I just got an eval copy of ipp to try.  The documentation is awful.  I just want to try first a simple single rate floating point FIR filter.

I look at http://software.intel.com/sites/products/documentation/doclib/ipp_sa/71/ipp_manual/index.htm, everthing

I see there says it deprectated.  Where are the non-deprecated functions for 

1) initialize the filter structure

2) process a vector of input data

Thanks

4 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
Sergey Kostrov的头像

Take a look at Digital Signal Processing domain header file ( ipps.h ) if you don't like online documentation. There are also documents in pdf format for almost all domains of IPP library.

Igor Astakhov (Intel)的头像

use ippsFIRGetBufferSize, then ippsFIRInit and then - ippsFIR function; GetSize+Init pair should be used instead of deprecated InitAlloc.

regards, Igor

Sergey Kostrov的头像

#define NUMITERS 150

IppStatus TestFIR(void)
{
int n;
IppStatus status;
IppsIIRState_32f *ictx;
IppsFIRState_32f *fctx;

Ipp32f *x = ippsMalloc_32f(NUMITERS),
*y = ippsMalloc_32f(NUMITERS),
*z = ippsMalloc_32f(NUMITERS);

const float taps[] =
{
0.0051f, 0.0180f, 0.0591f, 0.1245f, 0.1869f, 0.2127f, 0.1869f,
0.1245f, 0.0591f, 0.0180f, 0.0051f, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

for (n =0;n x[n]=(float)sin(IPP_2PI *n *0.2);

ippsIIRInitAlloc_32f( &ictx, taps, 10, NULL );
ippsFIRInitAlloc_32f( &fctx, taps, 11, NULL );
status = ippsIIR_32f( x, y, NUMITERS, ictx);
printf_32f("IIR 32f output + 120 =", y+120, 5, status);
ippsIIRFree_32f(ictx);
status = ippsFIR_32f( x, z, NUMITERS, fctx );
printf_32f("FIR 32f output + 120 =", z+120, 5, status);

ippsFIRFree_32f(fctx);
ippsFree(z);
ippsFree(y);
ippsFree(x);

return status;
}

IPP Output:
IIR 32f output + 120 = 0.000000 0.049896 0.030838 -0.030838 -0.049896
FIR 32f output + 120 = 0.000000 0.049896 0.030838 -0.030838 -0.049896

登陆并发表评论。