def METHOD_NAME(self, X, y=None):
    """Transform X and return a transformed version.
    private _transform containing core logic, called from transform
    X : 3D np.ndarray of shape = [n_instances, n_channels, series_length]
        collection of time series to transform
    y : ignored argument for interface compatibility
    Returns
    -------
    Xt : 3D np.ndarray of shape = [n_instances, n_channels, series_length]
        collection of transformed time series
    """
    n_instances, n_channels, n_timepoints = X.shape
    _X = np.swapaxes(X, 0, 1)
    self._check_parameters()
    # On each dimension, perform PAA
    channels = []
    for i in range(n_channels):
        channels.append(self._extract_wavelet_coefficients(_X[i]))
    result = np.array(channels)
    result = np.swapaxes(result, 0, 1)
    return result