Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
3 Views

Problem with IIR function

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
Highlighted
Employee
3 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