Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Problem with IIR function

fabio_cioria
Beginner
302 Views
Hi,
I am aresearcherat the FacultyofEngineering, University of Florence.
I'musing theIPPlibraryfordigital signal processingin the fieldof ultrasound.UntilnowI neverhadproblemswith these functions, butnowI havesomeproblemwiththefunctionsthat implementtheIIRfilter.
Theproblemisas follows:

Imade4IIRband passfilterswithFs=40MHzandBP=0.5-1.8MHzrespectivelythe 2nd,4th,6thand10thorder,with Butterworthapproximation,usingtheMatlabfdatool.

Using theippsIIR_32f implementedthisfilterin myprogramandIcomparedthe resultwiththeoutputof thefilter functioninMatlab. Forthefiltersof the 2ndand4thorder, the resultsare very similar. Thefiltersof the 6thand10th orderinMatlabworkwellwhileusing ippsIIR_32f the outputdivergesaftera fewsamples.

Can youhelp me?
0 Kudos
1 Reply
Chao_Y_Intel
Moderator
302 Views

Hello,

Here is some comment from the function owner:

MatLab may perform all internal calculations in doubles. And it is known problem with 32f data type, MatLab doesnt recommend to use IIR of order higher than 15 (otherwise it becomes unstable because of finite accuracy of double data type) taking into account that this recommendation is for doubles (mantissa=53 bit) it should be clear that for float data type (mantissa=23 bit) the critical order is 23/53*15= ~6.

So, you should use 64 bit function IIR_64f for orders >=6.

Thanks,
Chao

0 Kudos
Reply