pyFDN.is_uniallpass#

pyFDN.is_uniallpass(A, B, C, D, tol=1e-09)[source]#

Test whether the FDN is uniallpass (lossless with a diagonal Lyapunov matrix).

See Michaletzky, G. Factorization of discrete-time all-pass functions; and “Allpass Feedback Delay Networks” by Sebastian J. Schlecht.

Parameters:
  • A (array-like) – Delay state-space matrices (feedback, input gain, output gain, direct).

  • B (array-like) – Delay state-space matrices (feedback, input gain, output gain, direct).

  • C (array-like) – Delay state-space matrices (feedback, input gain, output gain, direct).

  • D (array-like) – Delay state-space matrices (feedback, input gain, output gain, direct).

  • tol (float) – Tolerance for zero and diagonal checks.

Return type:

tuple[bool, ndarray]

Returns:

  • is_a (bool) – True if the system is uniallpass.

  • P (ndarray) – Solution of discrete Lyapunov A P A’ - P + B B’ = 0; diagonal if uniallpass.