User:Smokow/sandbox

The Bistritz criterion refers to a simple method to determine whether a discrete linear time invariant (LTI) system is stable [1][2]. Stability of a discrete LTI system requires that its characteristic polynomials $$ D_n(z)=d_0+d_1 z+d_2 z^2+ \cdots + d_{n-1}z^{n-1} + d_n z^n $$  (obtained from its difference equation, its dynamic matrix, or appearing as the denominator of its transfer function) is a stable polynomial, where $$ D_n(z)   $$  is said to be stable if all its zeros are inside the unit circle, viz. $$ | z_k | < 1, k=1,...n $$, where $$ D_n(z)=d_n \prod_{k=1}^n (z-z_k) $$.

The Bistritz test is considered to be the discrete equivalent of Routh criterion used to test stability of continuous LTI systems [3]. It forms the most efficient method to test whether $$ D_n(z) $$ is stable. The method also solves the full zero location (ZL) problem. Namely, it can count algebraically (i.e. without numerical determination of the zeros) the number of inside the unit-circle (IUC) zeros ($$  | z_k| < 1 $$), on the unit-circle zeros (UC) zeros ($$  | z_k| = 1 $$) and outside the unit-circle (OUC) zeros ($$  | z_k| > 1 $$) for any real or complex polynomials.

In the following we focus on testing stability of only a real polynomial. However, we also provide ZL rules as long as the simple recursion needed to test stability still works. For more general needs see the references [1][2].

Algorithm
Consider $$ D_n(z)$$ as above and assume  $$ D_n(1) \neq 0 $$. (If $$ D_n(1)=0 $$ the polynomial is not stable.) Define its reciprocal polynomial $$D^\sharp_n(z)=z^n D_n(1/z)=d_n+d_{n-1}z+d_{n-2} z^2+\cdots+d_{n-1}z^{n-1} + d_0 z^n $$. The algorithm assigns to $$D_n(z)$$ a sequence of symmetric polynomials $$T_m(z)=T^\sharp_m(z) k=n,n-1, \ldots, 0 $$ the three-term polynomial recursion below. Write out the polynomials by their coefficients, $$T_m(z)=\sum_{k=1}^m t_{m,k} z^k $$, symmetry means that $$T_m(z)=t_{m,0}+t_{m,1} z + ... + t_{m,1} z^{m-1}+t_{m,0} z^m $$ and implies that it is enough to calculate for each polynomial only about half of the coefficients. The recursion begins with two initial polynomials driven from the sum and difference of the tested polynomial and its reciprocal, then it proceeds as a 3-term recursion, that is two known polynomials are used to creates a next one as follows.

Initiation:

$$ T_n(z)=D_n(z)+D^\sharp_{n}(z) \quad, \quad T_{n-1}(z)=\frac{ D_n(z)-D^\sharp_{n}(z) }{z-1}$$

Recursion: For $$  m=n-1,\ldots,1 $$ do:

$$ \delta_{m+1}=\frac{T_{m+1}(0)}{T_m(0)} $$

$$ T_{m-1}(z)=\frac{\delta_{m+1}(1+z) T_m(z) - T_{m+1}(z) }{z}$$

Stability condition
The successful completion of the sequence with the above recursion requires $$ T_m(0) \neq 0, \quad m=n-1, \ldots ,1 $$. The expansion of this set into $$ T_m(0) \neq 0, \quad m=n, \ldots , 0 $$ are called normal conditions.

Normal conditions are necessary for stability. This means that, the tested polynomial can be declared as not stable as soon as a $$ T_m(0) = t_{m,0}=t_{m,m}=0 $$ is observed. It also follows that the above recursion is broad enough for testing stability because the polynomial can be declared not stable before a division by zero arises.

Theorem. If the sequence is not normal then $$ D_n(z) $$ is not stable. If normal conditions hold then the complete sequence of symmetric polynomials is well defined. Let $$ \nu = Var \{ T_n (1), T_{n-1}(1), \ldots , T_1(1) , t_{0,0} \} $$ denote the count of the number of sign variations in the indicated sequence. Then $$ D_n(z) $$ is stable if and only if $$ \nu =0  $$. More generally, normal condition imply no UC zeros and $$ D_n(z) $$ has then $$ \nu $$ OUC zeros and  $$ n- \nu $$ IUC zeros.

Early decision that the polynomial is not stable can be concluded as soon as a violation of any of several necessary conditions of stability is observed. The polynomial can be declared not stable if it encounters a $$ T_m (0)=0 $$, or a $$ \delta_{m} < 0 $$  or a change of sign in the sequence of  $$ T_m (1) $$'s.

Comments
(1) The test is the so called "immittance" counterpart of the classical Schur-Cohn or Jury so called "scattering" type tests.

(2) The test bears a remarkable similarity to the Routh test. This is best observed when the Routh test is arranged appropriately into a corresponding three-term polynomial recursion.

Example
Consider the polynomial $$ D_3(z)=2+Kz -22 z^2 +24 z^3$$, where  $$ K $$ is a real parameter.

Q1:For what values of $$ K $$ the polynomial is stable?

Construct the sequence:

$$ T_3(z)=26+(K-22)z +(K-22)z^2 +26 z^3$$

$$ T_2(z)=22-Kz +22z^2 $$

$$ T_1(z)=\frac{24(22-K)}{11} (1+z) $$

$$ T_0(z)=44+k $$

Use their values at z=1 to form

Var{ 8+2K, 44-K, 48(22-K)/11, 44+k }

All the entries in the sequence are positive for -4 < K < 22  (and for no K are they all negative). Therefore D(z) is stable for -4 < K < 22.

Q2: Find ZL for K = 33. Var{ 71, 11, -48, 11 }=2   => 2 OUC, 1 IUC zeros.

Q3: Find ZL for K = -11. Var{ -14, 55, 144, 33 }=1  => 1 OUC, 2 IUC zeros.