Library / Signal processing and digital filters / DSP-40
Signal processing and digital filters
Stability test for a real biquad denominator
Stability margin of a real second-order denominator 1 + a1z⁻¹ + a2z⁻².
- Ref
- DSP-40
- Rev
- v1
- Field
- Signal processing and digital filters
- Result
- m
For a real second-order denominator 1 + a₁z⁻¹ + a₂z⁻², the Jury triangle gives the stability condition: |a₂| < 1, 1 + a₁ + a₂ > 0 and 1 − a₁ + a₂ > 0. The page returns the smallest of these three quantities. A positive value means both poles are strictly inside the unit circle; zero places a pole on it. A tiny margin is unsafe once coefficients are rounded.
Stability margin of a real second-order denominator 1 + a1z⁻¹ + a2z⁻². The section is strictly stable when |a2| < 1 and 1 ± a1 + a2 > 0, that is, when every term is positive, so a positive margin means stable and zero means a pole on the unit circle.
Calculator
- Stable (1) or not (0)1
- Largest pole magnitude0.7071
- Pole angle (0 if the poles are real)0.5576 rad
What drives the result
Each variable is moved across its typical range while the others stay at the values above. The longest bar is the key driver.
- The smallest margin is 0.3, so the section is stable; the poles are a complex pair of radius 0.7071.
- The condition 1 + a₁ + a₂ > 0 is the one that fails first as a pole approaches z = 1, and 1 − a₁ + a₂ > 0 the one for z = −1.
Chart data as tables
Ranked variables
| Variable | Typical range | Lowest result | Highest result | Swing () | Local step | Change in result |
|---|---|---|---|---|---|---|
| a2 Denominator coefficient a₂ | −1.5 to 1.5 | −1.7 | 0.4 | 2.1 | +0.06 | +20 % |
| a1 Denominator coefficient a₁ | −2.5 to 2.5 | −1 | 0.5 | 1.5 | +0.1 | +33.3 % |
Sweep of Denominator coefficient a₁
| Denominator coefficient a₁ | Stability margin (positive = stable) |
|---|---|
| −2.5 | −1 |
| −1.875 | −0.375 |
| −1.25 | 0.25 |
| −0.625 | 0.5 |
| 0 | 0.5 |
| 0.625 | 0.5 |
| 1.25 | 0.25 |
| 1.875 | −0.375 |
| 2.5 | −1 |
Sweep one variable
Variables and how each one contributes
Stability margin (positive = stable)
What the equation gives you. Everything else feeds it.
Denominator coefficient a₁
The first denominator coefficient. Moves the pole sum; a large |a₁| pushes one of the conditions 1 ± a₁ + a₂ towards zero. Raising it by 10 % (to −1.32) moves the result by −40 %, from 0.3 to 0.18.
Denominator coefficient a₂
The second denominator coefficient. Raises the product of the poles; |a₂| ≥ 1 means at least one pole is outside. Raising it by 10 % (to 0.55) moves the result by +16.7 %, from 0.3 to 0.35.
Worked example with the values above
- Condition 1: 1 − |a₂| = 1 − 0.5 = 0.5.
- Condition 2: 1 + a₁ + a₂ = 0.3; condition 3: 1 − a₁ + a₂ = 2.7.
- Margin = min(0.5, 0.3, 2.7) = 0.3, which is positive, so the filter is stable.
Assumptions and limits
- A real, linear, time-invariant second-order section with the leading denominator coefficient normalised to one.
- Exact arithmetic; fixed-point overflow and round-off noise are not included.
Common mistakes
- Treating a margin that is only just positive as safe once the coefficients are rounded.
- Using the test for complex coefficients, where it does not apply.
- Cancelling an unstable pole against a zero in a cascade and assuming the result is stable.
Statistics and uncertainty
Coefficient quantisation moves poles: in fixed point or single precision, poles close to the unit circle (r above about 0.999) can drift to instability, so check the margin with the rounded coefficients.
Where it is used
- Checking and designing recursive filters such as notches and resonators.
- Estimating ringing time and oscillation frequency from pole locations.
Maths you need
- Poles: roots of the denominator polynomial in z
- Unit circle: |z| = 1, the stability boundary
- Difference equation: the time-domain form of a recursive filter