# Stability of filters with negative phase delay, group delay, and positive phase

Lets assume I have an IIR filter with :

bz = [1.0195 0 0];
az = [1 0.0166 0.0020];
fvtool(bz,az)


The filter is stable as i can see.

If you check the phase delay its negative, so is the group delay. Phase response is positive.

What do you make of this. ? Is my filter suitable still for RTL implementation.

I have read a lot about negative group delays being fine, still causal system. But what about negative phase delays ? Is it all fine?

What about these: somewhat same results, but still stable and HW implementable ?

bz=[0.9941 0 0];
az=[1 -0.0889 0.0830];
fvtool(bz,az)


Thanks

• As long as the poles are in the inside of the unit circle, the system is stable regardless of group delay. This extends to any system this filter may be a part of (meaning the filter could be in a feedback node to make a higher level system unstable which is another story) Commented Jan 27, 2021 at 17:09
• @DanBoschen , Hi Dan, thanks for a quick reply,. So you are saying irrespetive of any phase, or delays , if its stable, its fine. And if its part of a cascade of other blocks (which independtly are stable) , then this block as part of that cascade should not render the system unstable. Good to know. Thanks but, what about the positive phase response (not delay) , what do you make of that ? Commented Jan 27, 2021 at 17:29
• Why do you think that would make the system unstable? Consider simple L and C circuits where you can have leading and trailing phase; but neither case would be unstable. Bottom line is a system with poles in the right half plane (outside the unit circle) is the test for instability Commented Jan 27, 2021 at 17:31
• i am not saying it would make it unstable, just that its so small... maximum 0.0169 radians.. and its a 2nd order iir filter.. i am sorry, it just i lack the experience to digest the number and say its fine. I have alreday C++ fixedpoint implementaiton, it works fine. Hopefully for RTL too. Commented Jan 27, 2021 at 17:35
• If it works in C++, it can work in RTL too
– Ben
Commented Jan 27, 2021 at 17:53