package org.signalml.domain.signal.filter.export;
import org.signalml.domain.montage.filter.FFTSampleFilter;
import org.signalml.domain.signal.filter.fft.FFTFilterEngineForExport;
import org.signalml.domain.signal.samplesource.ChannelSelectorSampleSource;
import org.signalml.domain.signal.samplesource.MultichannelSampleSource;
import org.signalml.math.iirdesigner.BadFilterParametersException;
/**
* A sample processor that is able to filter a multichannel sample source with a single
* FFT filter.
*
* @author Piotr Szachewicz
*/
public class FFTMultichannelSingleFilterForExport extends AbstractMultichannelSingleFilterForExport {
public FFTMultichannelSingleFilterForExport(MultichannelSampleSource source, FFTSampleFilter definition, boolean[] filterExclusionArray) throws BadFilterParametersException {
super(source, definition, filterExclusionArray);
createEngines(filterExclusionArray);
}
@Override
protected void createEngine(int channelNumber, boolean[] filterExclusionArray) throws BadFilterParametersException {
ChannelSelectorSampleSource input = new ChannelSelectorSampleSource(source, channelNumber);
filterEngines[channelNumber] = new FFTFilterEngineForExport(input, (FFTSampleFilter) definition);
}
}