code: def get_fir(
      target_loudest_pieces: np.ndarray,
      reference_loudest_pieces: np.ndarray,
      name: str,
      config: Config,
  ) -> np.ndarray:
      debug(f"Calculating the {name} FIR for the matching EQ...")
  
      target_average_fft = __average_fft(
          target_loudest_pieces,
          config.internal_sample_rate,
          config.fft_size,
      )
      reference_average_fft = __average_fft(
          reference_loudest_pieces,
          config.internal_sample_rate,
          config.fft_size,
      )
  
      np.maximum(
          config.min_value, target_average_fft, out=target_average_fft
      )
      matching_fft = reference_average_fft / target_average_fft
  
      matching_fft_filtered = __smooth_exponentially(
          matching_fft, config
      )
  
      fir = np.fft.irfft(matching_fft_filtered)
      fir = np.fft.ifftshift(fir) * signal.windows.hann(len(fir))
  
      return fir
  
file_path: matchering/matchering/stage_helpers/match_frequencies.py
imports: import numpy
  from time import time
  from scipy import signal, interpolate
  from ..log import debug
  from ..None import Config
  from ..dsp import ms_to_lr, smooth_lowess
label_desc: Use image node_id 3 for calling a global function with example usage: get_fir(target_loudest_pieces, reference_loudest_pieces, name, config) and returns: fir