pyFDN.rand_admissible_homogeneous_allpass#
- pyFDN.rand_admissible_homogeneous_allpass(G, range_)[source]#
Generate a random admissible diagonal matrix P for homogeneous uniallpass FDN.
Used with homogeneous_allpass_fdn(G, P) to obtain a uniallpass FDN with homogeneous decay. Admissibility is defined by the construction in the paper.
- Parameters:
G ((N, N) array-like) – Diagonal attenuation matrix with 0 < diag(G) < 1.
range (tuple (low, high) or array-like of length 2) – Random range with 0 < low < high < 1. Diagonal entries of P are built from random ratios in [low, high] scaled by diag(G)^2.
- Returns:
P – Admissible diagonal matrix (first diagonal entry 1, rest from cumprod).
- Return type:
(N, N) ndarray
Examples
>>> G = np.diag([0.9, 0.8, 0.7]) >>> P = rand_admissible_homogeneous_allpass(G, (0.3, 0.8)) >>> A, b, c, d, U = homogeneous_allpass_fdn(G, P)