pyFDN.build_to_impz#

pyFDN.build_to_impz(build, ir_len)[source]#

Render an FDNBuild to a time-domain impulse response.

Time-domain sibling of the FLAMO render path (pyFDN.build_to_flamo() -> pyFDN.flamo_time_response()): runs one pyFDN.process_fdn() block simulation per input channel (a Dirac on that channel), with the build’s three filter hooks each applied as a pyFDN.td.SOSBank, into the process_fdn() argument of the same name: post_delay on the delay output (the per-delay-line absorption, e.g. from pyFDN.build_set_decay()), post_matrix on the feedback path, and post_output on the wet signal. Unlike the FFT-based FLAMO render this does not time-alias, so a long or near-lossless decay is rendered faithfully up to ir_len.

Extends dss_to_impz() (numeric state-space only) with the build’s filter hooks.

Parameters:
  • build (FDNBuild) – Complete FDN parameters.

  • ir_len (int) – Impulse-response length in samples.

Returns:

Impulse response of shape (ir_len, num_outputs, num_inputs). Use .squeeze() for a 1-D array from a single-in/single-out FDN.

Return type:

ndarray