code: def compute_chpi_amplitudes(
      raw,
      t_step_min=0.01,
      t_window="auto",
      ext_order=1,
      tmin=0,
      tmax=None,
      verbose=None,
  ):
      """Compute time-varying cHPI amplitudes.
  
      Parameters
      ----------
      raw : instance of Raw
          Raw data with cHPI information.
      t_step_min : float
          Minimum time step to use.
      %(t_window_chpi_t)s
      %(ext_order_chpi)s
      %(tmin_raw)s
      %(tmax_raw)s
      %(verbose)s
  
      Returns
      -------
      %(chpi_amplitudes)s
  
      See Also
      --------
      mne.chpi.compute_chpi_locs, mne.chpi.compute_chpi_snr
  
      Notes
      -----
      This function will:
  
      1. Get HPI frequencies,  HPI status channel, HPI status bits,
         and digitization order using ``_setup_hpi_amplitude_fitting``.
      2. Window data using ``t_window`` (half before and half after ``t``) and
         ``t_step_min``.
      3. Use a linear model (DC + linear slope + sin + cos terms) to fit
         sinusoidal amplitudes to MEG channels.
         It uses SVD to determine the phase/amplitude of the sinusoids.
  
      In "auto" mode, ``t_window`` will be set to the longer of:
  
      1. Five cycles of the lowest HPI or line frequency.
            Ensures that the frequency estimate is stable.
      2. The reciprocal of the smallest difference between HPI and line freqs.
            Ensures that neighboring frequencies can be disambiguated.
  
      The output is meant to be used with :func:`~mne.chpi.compute_chpi_locs`.
  
      .. versionadded:: 0.20
      """
      return _compute_chpi_amp_or_snr(
          raw, t_step_min, t_window, ext_order, tmin, tmax, verbose
      )
  
imports: import copy
  import itertools
  from functools import partial
  import numpy
  from scipy.linalg import orth
  from scipy.optimize import fmin_cobyla
  from scipy.spatial.distance import cdist
  from ._fiff.constants import FIFF
  from ._fiff.meas_info import Info, _simplify_info
  from ._fiff.pick import _picks_to_idx, pick_channels, pick_channels_regexp, pick_info, pick_types
  from ._fiff.proj import Projection, setup_proj
  from .channels.channels import _get_meg_system
  from .cov import compute_whitener, make_ad_hoc_cov
  from .dipole import _make_guesses
  from .event import find_events
  from .fixes import jit
  from .forward import _concatenate_coils, _create_meg_coils, _magnetic_dipole_field_vec
  from .io import BaseRaw
  from .io.ctf.trans import _make_ctf_coord_trans_set
  from .io.kit.constants import KIT
  from .io.kit.kit import RawKIT
  from .preprocessing.maxwell import _get_mf_picks_fix_mags, _prep_mf_coils, _regularize_out, _sss_basis
  from .transforms import _angle_between_quats, _fit_matched_points, _quat_to_affine, als_ras_trans, apply_trans, invert_transform, quat_to_rot, rot_to_quat
  from .utils import ProgressBar, _check_fname, _check_option, _on_missing, _pl, _validate_type, _verbose_safe_false, logger, use_log_level, verbose, warn
label_desc: Use image node_id 28 for calling a global function with example usage: compute_chpi_amplitudes(raw, t_step_min, t_window, ext_order, tmin, tmax, verbose) and returns: _compute_chpi_amp_or_snr