docs: def fit(self):
          """ fit waveforms in any domain"""
          # solve for estimator of B
          n,p          = np.shape(self._X)
          self._df     = float(n - p)
          self._Cx     = np.linalg.pinv(np.dot(self._X.T,self._X))
          self._Bhat   = np.dot(np.dot(self._Cx, self._X.T), self._A)
          self._Y_rec  = self._compute_prediction(self._X)