code: def find_sideband(ft_data, which=+1, copy=True):
      
      if copy:
          ft_data = ft_data.copy()
  
      if which not in [+1, -1]:
          raise ValueError("`which` must be +1 or -1!")
  
      ox, oy = ft_data.shape
      cx = ox // 2
      cy = oy // 2
  
      minlo = max(int(np.ceil(ox / 42)), 5)
      if which == +1:
          # remove lower part
          ft_data[cx - minlo:] = 0
      else:
          ft_data[:cx + minlo] = 0
  
      # remove values around axes
      ft_data[cx - 3:cx + 3, :] = 0
      ft_data[:, cy - 3:cy + 3] = 0
  
      # find maximum
      am = np.argmax(np.abs(ft_data))
      iy = am % oy
      ix = int((am - iy) / oy)
  
      fx = np.fft.fftshift(np.fft.fftfreq(ft_data.shape[0]))[ix]
      fy = np.fft.fftshift(np.fft.fftfreq(ft_data.shape[1]))[iy]
  
      return (fx, fy)
docs: Find the side band position of a hologram
  
      The hologram is Fourier-transformed and the side band
      is determined by finding the maximum amplitude in
      Fourier space.
  
      Parameters
      ----------
      ft_data: 2d ndarray
          Fourier transform of the hologram image
      which: +1 or -1
          which sideband to search for:
  
          - +1: upper half
          - -1: lower half
      copy: bool
          copy `ft_data` before modification
  
      Returns
      -------
      fsx, fsy : tuple of floats
          coordinates of the side band in Fourier space frequencies