Hi,

I am using STM32f405, and CMSIS dsp library, to filter a signal acquired by ADS1278. The filter used is a 12th order bandpass butterworth IIR filter whose coefficients generated by matlab, and my signal is 2430Hz The problem is;

When I use a filter with a pass band 2300Hz-2500Hz everything work fine. But if a use a more narrow band like 2420Hz-2440Hz filter output is not stable. It is making noise, not periodic but randomly, like 2 seconds ok then a noise, 5 seconds ok then a noise. Matlab says filter is stable for 32bit quantized coefficients, but actually there is problem.

Can anyone suggest a way to findout where is the problem?

I am using STM32f405, and CMSIS dsp library, to filter a signal acquired by ADS1278. The filter used is a 12th order bandpass butterworth IIR filter whose coefficients generated by matlab, and my signal is 2430Hz The problem is;

When I use a filter with a pass band 2300Hz-2500Hz everything work fine. But if a use a more narrow band like 2420Hz-2440Hz filter output is not stable. It is making noise, not periodic but randomly, like 2 seconds ok then a noise, 5 seconds ok then a noise. Matlab says filter is stable for 32bit quantized coefficients, but actually there is problem.

Can anyone suggest a way to findout where is the problem?

This seems very difficult to get a right result.

Are you in 32bits integer or single FP and your sample rate is not high versus the band.

Some times I program the filter in Double FP to get the expected result or on 64 bits integer (more difficult and longer to execute)

B.