code: def _get_row_amplitudes(self):
          
  
          sample_rate = self.signal.sample_rate
  
          # A signal window *must* span one sample rate, irrespective of interval length.
          signal_window = tile(self.signal(), ceil(1.0/self.signal.interval_length))
  
          if self.windowing_function == None:
              smoothed_window = signal_window[0:sample_rate]
          else:
              smoothed_window = signal_window[0:sample_rate] * self.windowing_function(sample_rate)
  
          row_amplitudes = abs(fft.rfft(smoothed_window))[0:sample_rate/2]
          row_amplitudes = row_amplitudes.reshape(1,sample_rate/2.0)
  
          filter_responses = multiply(self.cochlear_channels, row_amplitudes)
          sheet_responses = zeros(self._num_of_channels)
  
          for channel in range(0,self._num_of_channels):
              time_responses = abs(fft.ifft(filter_responses[channel]))
              sheet_responses[channel] = sum(time_responses) / (sample_rate/2.0)
  
          return sheet_responses.reshape(self._num_of_channels, 1)
docs: Perform a real Discrete Fourier Transform (DFT; implemented
          using a Fast Fourier Transform algorithm, FFT) of the current
          sample from the signal multiplied by the smoothing window.
  
          See numpy.rfft for information about the Fourier transform.