package pl.edu.fuw.fid.signalanalysis.ica;
import org.apache.commons.math.linear.RealMatrix;
import org.signalml.app.document.signal.RawSignalDocument;
import org.signalml.domain.montage.Montage;
import org.signalml.domain.signal.raw.RawSignalDescriptor;
/**
* Subclass for Svarog's signal documents consisting of ICA components.
*
* @author ptr@mimuw.edu.pl
*/
public class IcaSignalDocument extends RawSignalDocument {
private final RealMatrix icaMatrix;
private final RealMatrix montageMatrix;
private final Montage sourceMontage;
public IcaSignalDocument(RawSignalDescriptor descriptor, RealMatrix icaMatrix, RealMatrix montageMatrix, Montage sourceMontage) {
super(descriptor);
this.icaMatrix = icaMatrix;
this.montageMatrix = montageMatrix;
this.sourceMontage = sourceMontage;
}
public RealMatrix getIcaMatrix(boolean withSourceMontage) {
RealMatrix matrix = icaMatrix;
if (withSourceMontage && montageMatrix != null) {
matrix = matrix.multiply(montageMatrix);
}
return matrix;
}
public Montage getSourceMontage() {
return sourceMontage;
}
}