code: def power_bandwidth(signal, fs):
      """Computes power spectrum density bandwidth of the signal.
  
      It corresponds to the width of the frequency band in which 95% of its power is located.
  
      Description in article:
      Power Spectrum and Bandwidth Ulf Henriksson, 2003 Translated by Mikael Olofsson, 2005
  
      Feature computational cost: 1
  
      Parameters
      ----------
      signal : nd-array
          Input from which the power bandwidth computed
      fs : float
          Sampling frequency
  
      Returns
      -------
      float
          Occupied power in bandwidth
  
      """
      # Computing the power spectrum density
      if np.std(signal) == 0:
          freq, power = scipy.signal.welch(
              signal, fs, nperseg=len(signal)
          )
      else:
          freq, power = scipy.signal.welch(
              signal / np.std(signal), fs, nperseg=len(signal)
          )
  
      if np.sum(power) == 0:
          return 0.0
  
      # Computing the lower and upper limits of power bandwidth
      cum_power = np.cumsum(power)
      f_lower = freq[np.where(cum_power >= cum_power[-1] * 0.95)[0][0]]
  
      cum_power_inv = np.cumsum(power[::-1])
      f_upper = freq[
          np.abs(
              np.where(cum_power_inv >= cum_power[-1] * 0.95)[0][0]
              - len(power)
              + 1
          )
      ]
  
      # Returning the bandwidth in terms of frequency
  
      return np.abs(f_upper - f_lower)
  
imports: import scipy.signal
  from tsfel.feature_extraction.features_utils import *
label_desc: Use image node_id 53 for calling a global function with example usage: power_bandwidth(signal, fs) and returns: np, int