def _do_ffts(detector, stream, Nc):
min_fftlen = int(stream[<NUM_LIT:0>][<NUM_LIT:0>].data.shape[<NUM_LIT:0>] +<EOL>detector.data[<NUM_LIT:0>].shape[<NUM_LIT:0>] - Nc)<EOL>fftlen = scipy.fftpack.next_fast_len(min_fftlen)<EOL>mplen = stream[<NUM_LIT:0>][<NUM_LIT:0>].data.shape[<NUM_LIT:0>]<EOL>ulen = detector.data[<NUM_LIT:0>].shape[<NUM_LIT:0>]<EOL>num_st_fd = [np.fft.rfft(tr.data, n=fftlen)<EOL>for tr in stream[<NUM_LIT:0>]]<EOL>denom_st_fd = [np.fft.rfft(np.square(tr.data), n=fftlen)<EOL>for tr in stream[<NUM_LIT:0>]]<EOL>w = np.fft.rfft(np.ones(detector.data[<NUM_LIT:0>].shape[<NUM_LIT:0>]),<EOL>n=fftlen)<EOL>detector_fd = []<EOL>for dat_mat in detector.data:<EOL><INDENT>detector_fd.append(np.array([np.fft.rfft(col[::-<NUM_LIT:1>], n=fftlen)<EOL>for col in dat_mat.T]))<EOL><DEDENT>return detector_fd, denom_st_fd, num_st_fd, w, ulen, mplen<EOL>
Perform ffts on data, detector and denominator boxcar

:type detector: eqcorrscan.core.subspace.Detector
:param detector: Detector object for doing detecting
:type stream: list of obspy.core.stream.Stream
:param stream: List of streams processed according to detector
:type Nc: int
:param Nc: Number of channels in data. 1 for non-multiplexed

:return: list of time-reversed detector(s) in freq domain
:rtype: list
:return: list of squared data stream(s) in freq domain
:rtype: list
:return: list of data stream(s) in freq domain
:return: detector-length boxcar in freq domain
:rtype: numpy.ndarray
:return: length of detector
:rtype: int
:return: length of data
:rtype: int