pyFDN.complete_fdn#

pyFDN.complete_fdn(A, k=None, preprocessing='optimize', q=1.0, tol_one=1e-08, psd_clip=0.0, return_similarity=True)[source]#

Compute a completion (B,C,D) for given A.

Parameters:
  • A (ndarray) – (N,N) feedback matrix

  • k (int | None) – number of IO channels. If None -> full MIMO (k=N).

  • preprocessing (str) – “none” -> X = I “optimize” -> find diagonal similarity X=diag(x) that makes G(u) PSD with rank ~ k.

  • q (float | ndarray) – RHS for diagonal similarity solve (scalar or (N,) vector).

  • tol_one (float) – tolerance for ‘singular value equals 1’ decisions in general MIMO.

  • psd_clip (float) – eigenvalue clip (>=0) for PSD square roots in full MIMO completion.

  • return_similarity (bool) – if True, returns (B,C,D,x). else (B,C,D).

Returns:

B, C, D, x (if return_similarity), where x is diagonal of X used (x=ones if none).