- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I get wrong results with the ippsFIRSR_32fc functions and ippAlgAuto or ippAlgFFT mode. With mode ippAlgDirect it seems to work. I'm using IPP 9.0.1 (ippSP SSE4.2 (p8) 9.0.1 (r49101) 9.0.1.49101)
Here is a code snippet to reproduce it:
IppsFIRSpec_32fc *pSpec; Ipp32fc *src, *dst, *dly; Ipp32fc* taps; Ipp8u *buf; int specSize, bufSize; IppStatus status; //get sizes of the spec structure and the work buffer status = ippsFIRSRGetSize (TAPS_LEN, ipp32fc , &specSize, &bufSize ); src = ippsMalloc_32fc(LEN); dst = ippsMalloc_32fc(LEN); dly = ippsMalloc_32fc(TAPS_LEN-1); taps = ippsMalloc_32fc(TAPS_LEN); pSpec = (IppsFIRSpec_32fc*)ippsMalloc_8u(specSize); buf = ippsMalloc_8u(bufSize); Ipp32fc val = {1.0f, 1.0f}; ippsSet_32fc(val, src, LEN); val.im = 0.0f; ippsSet_32fc(val, taps, TAPS_LEN); printf("\nCplx FIR ippAlgDirect\n"); //initialize the spec structure status = ippsFIRSRInit_32fc( taps, TAPS_LEN, ippAlgDirect, pSpec ); //apply the FIR filter status = ippsFIRSR_32fc(src, dst, LEN, pSpec, NULL, dly, buf); for (int i = 0; i < LEN_PRINT; i++) { printf("%2d: %.2f %.2f\n", i, dst.re, dst.im ); } printf("\nCplx FIR ippAlgAuto\n"); //initialize the spec structure status = ippsFIRSRInit_32fc( taps, TAPS_LEN, ippAlgAuto, pSpec ); //apply the FIR filter status = ippsFIRSR_32fc(src, dst, LEN, pSpec, NULL, dly, buf); for (int i = 0; i < LEN_PRINT; i++) { printf("%2d: %.2f %.2f\n", i, dst.re, dst.im ); }
Output is:
Cplx FIR ippAlgDirect
0: 1.00 1.00
1: 2.00 2.00
2: 3.00 3.00
3: 4.00 4.00
4: 5.00 5.00
5: 6.00 6.00
6: 7.00 7.00
7: 8.00 8.00
8: 9.00 9.00
9: 10.00 10.00
10: 11.00 11.00
11: 12.00 12.00
12: 13.00 13.00
13: 14.00 14.00
14: 15.00 15.00
15: 16.00 16.00
Cplx FIR ippAlgAuto
0: 5.00 9.00
1: 6.00 10.00
2: 7.00 9.00
3: 6.00 10.00
4: 6.00 12.00
5: 6.00 14.00
6: 6.00 14.00
7: 6.00 14.00
8: 7.00 15.00
9: 8.00 16.00
10: 10.00 18.00
11: 12.00 20.00
12: 13.00 21.00
13: 14.00 22.00
14: 14.00 22.00
15: 13.00 23.00
Is this a bug?
Regards,
Christoph
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Christoph,
Thanks for your report. We are checking this code.
Regards,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've spotted the same bug with ippAlgFFT. ippsFIRSR_32fc produces awful results compared to MATLAB and ippAlgDirect... IPPS version: ippSP AVX2 (h9) 9.0.1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Christoph,
I can't reproduce your issue with the next params:
#define TAPS_LEN 11
#define LEN 256
#define LEN_PRINT 10
could you provide your params to reproduce this issue?
Regards, Igor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Igor,
sorry for the delay. My parameters are:
#define LEN 5000
#define LEN_PRINT 16
#define TAPS_LEN 20
Regards, Christoph
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Christoph,
thank you for bug report - we already found and fixed that bug. The fix will be available in IPP update 9.0.2 that will be available publically soon.
Regards, Igor.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Keith, we are preparing for the release, and expect it will be ready soon. I post an announcement in the forum when it is ready. thanks for your report here.
regards,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Keith, Glad to know it works now. Feel free to contact us for any questions with Intel IPP.
Regards,
Chao
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page