I am implementing an IIR filter in an embedded device based on ARM. It is implemented as a cascaded biquad structure (series of second order filters put back to back). The filter can be considered stable as all the second order sections in the cascaded structure have their poles and zeros inside the unit circle(ROC) in the Z-domain.
Now, given that the filter is asymptotically stable and its output can't grow unboundedly, how to know the maximum output that the filter can grow to, asssuming that the input to the filter can be any noise or any random waveform?
On the device, the filter is implemented with floats, which reduces the chance of any overflow during computation. But after the computation the results have to be stored into fixed points as it is required by the application to do so. Hence,it is very important to know the output limits to avoid any overflow and saturation while storing into fixed points.
I would like to know,if there is any way to estitmate what could be the maximum limits of the output,so as to avoid clipping or unnecessarily use more bits for the fixed point?
And also it would be useful to know which type of input waveforms could produce the worst output possible?
floatthat can be used to be converted into anint/short/whatever? Is it possible to test? – a concerned citizen Mar 10 '22 at 11:28