code: def bandlimited_interpolate(series, delta_f):
      
      series = FrequencySeries(series, dtype=complex_same_precision_as(series), delta_f=series.delta_f)
  
      N = (len(series) - 1) * 2
      delta_t = 1.0 / series.delta_f / N
  
      new_N = int(1.0 / (delta_t * delta_f))
      new_n = new_N // 2 + 1
  
      series_in_time = TimeSeries(zeros(N), dtype=real_same_precision_as(series), delta_t=delta_t)
      ifft(series, series_in_time)
  
      padded_series_in_time = TimeSeries(zeros(new_N), dtype=series_in_time.dtype, delta_t=delta_t)
      padded_series_in_time[0:N//2] = series_in_time[0:N//2]
      padded_series_in_time[new_N-N//2:new_N] = series_in_time[N//2:N]
  
      interpolated_series = FrequencySeries(zeros(new_n), dtype=series.dtype, delta_f=delta_f)
      fft(padded_series_in_time, interpolated_series)
  
      return interpolated_series
docs: Return a new PSD that has been interpolated to the desired delta_f.
  
      Parameters
      ----------
      series : FrequencySeries
          Frequency series to be interpolated.
      delta_f : float
          The desired delta_f of the output
  
      Returns
      -------
      interpolated series : FrequencySeries
          A new FrequencySeries that has been interpolated.