code: def __smooth_exponentially(
      matching_fft: np.ndarray, config: Config
  ) -> np.ndarray:
      grid_linear = (
          config.internal_sample_rate
          * 0.5
          * np.linspace(0, 1, config.fft_size // 2 + 1)
      )
  
      grid_logarithmic = (
          config.internal_sample_rate
          * 0.5
          * np.logspace(
              np.log10(4 / config.fft_size),
              0,
              (config.fft_size // 2) * config.lin_log_oversampling + 1,
          )
      )
  
      interpolator = interpolate.interp1d(
          grid_linear, matching_fft, "cubic"
      )
      matching_fft_log = interpolator(grid_logarithmic)
  
      matching_fft_log_filtered = smooth_lowess(
          matching_fft_log,
          config.lowess_frac,
          config.lowess_it,
          config.lowess_delta,
      )
  
      interpolator = interpolate.interp1d(
          grid_logarithmic,
          matching_fft_log_filtered,
          "cubic",
          fill_value="extrapolate",
      )
      matching_fft_filtered = interpolator(grid_linear)
  
      matching_fft_filtered[0] = 0
      matching_fft_filtered[1] = matching_fft[1]
  
      return matching_fft_filtered
  
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 2 for calling a global function with example usage: __smooth_exponentially(matching_fft, config) and returns: matching_fft_filtered