SCHURCOHN Function
Determines if a filter polynomial is stable using the Schur-Cohn stability test.
Usage
result = SCHURCOHN(a[, epsilon])
Input Parameters
a—The array of coefficients of the filter polynomial.
epsilon—(optional) A value used to numerically determine if the reflection coefficients equal one. (Default: [machine epsilon]1/2 . It may be set to zero.)
Returned Value
result—A scalar that equals zero if the polynomial is unstable, or one if the polynomial is stable.
Keywords
None.
Discussion
SCHURCOHN determines if the roots of a filter polynomial:
A(z) = a0 + a1z–1 + a2z–2 + ... + aNzN
have magnitude less than one. This is accomplished by performing the Schur-Cohn stability test on the polynomial. The test first computes the reflection coefficients of the polynomial. If the magnitude of the reflection coefficients are all less than one then the polynomial is stable.
In this numerical implementation of the Schur-Cohn stability test, the magnitude of the reflection coefficients are tested to see if they are less than 1 – epsilon. As an option, you may change the value of epsilon. (Default: epsilon = (machine epsilon)1/2).
Example
In this example, two filter polynomials (one stable and the other unstable) are generated, and then SCHURCOHN is used to test their stability.
; The stable polynomial a1 = (1 + 0.5 z – 1) (1 + 0.3 z – 1).
a1 = P_MULT([1, 0.5], [1, 0.3])
PM, SCHURCOHN(a1), Title = 'Result of '+ $
'SCHURCOHN for Stable Filter Polynomial'
; PV-WAVE prints the following:
; Result of SCHURCOHN for Stable Filter Polynomial
;   1
; Unstable polynomial a2 = (1 + 0.5 z – 1) (1 + (1.0/0.3) z – 1).
a2 = P_MULT([1, 0.5], [1, 1.0/0.3])
PM, SCHURCOHN(a2), Title = $
'Result of SCHURCOHN for Unstable Filter Polynomial'
; PV-WAVE prints the following:
; Result of SCHURCOHN for Unstable Filter Polynomial
;   0
For Additional Information
Proakis and Manolakis, 1992, pp. 288 - 289.
Roberts and Mullis, 1987, p. 527.