def amplitude_by_welch(self, data_frame):
        """
            This methods uses the Welch method :cite:`Welch1967` to obtain the power spectral density, this is a robust 
            alternative to using fft_signal & amplitude

            :param data_frame: the data frame
            :type data_frame: pandas.DataFrame
            :return: the ampl
            :rtype ampl: float
            :return: the freq
            :rtype freq: float
        """
        frq, Pxx_den = signal.welch(data_frame.filtered_signal.values, self.sampling_frequency, nperseg=self.window)
        freq = frq[Pxx_den.argmax(axis=0)]
        ampl = sum(Pxx_den[(frq > self.lower_frequency) & (frq < self.upper_frequency)])

        logging.debug("tremor amplitude by welch calculated")

        return ampl, freq