pyFDN.process_fdn#
- pyFDN.process_fdn(input_signal, delays, A, B, C, D, *, absorption=None, extra_matrix=None)[source]#
Simulate the feedback delay network using block processing.
Recursion per block (same ordering as the MATLAB
processFDN): delay output -> absorption filters -> output gains C, and in the feedback path: absorbed delay output -> feedback matrix A -> extra matrix -> + B input.- Parameters:
input_signal (array) – Input of shape (num_samples,) or (num_samples, num_inputs).
delays (array) – Delay lengths in samples, shape (N,).
A (array) – Feedback matrix: static (N, N) or FIR polynomial (N, N, order) in z^{-1} convention.
B (array) – Static input, output, and direct gains.
C (array) – Static input, output, and direct gains.
D (array) – Static input, output, and direct gains.
absorption (object, optional) – Per-delay-line SOS filters; see
pyFDN.dsp.SOSFilterBankfor accepted shapes. Applied to the delay outputs inside the loop.extra_matrix (object, optional) – Object with a
filter(block) -> blockmethod applied after the feedback matrix (e.g.TimeVaryingMatrix).
- Returns:
output – Shape (num_samples, num_outputs), squeezed.
- Return type:
ndarray