public INumberTable Filter(INumberTable inTable, double lowFreq, double highFreq) { // Centralize the table. inTable = inTable.Clone(); IList <IList <double> > m = inTable.Matrix; for (int row = 0; row < inTable.Rows; row++) { for (int col = 0; col < inTable.Columns; col++) { m[row][col] -= columnMean[col]; } } INumberTable outTable = WalshTransform.Filter(inTable, lowFreq, highFreq, baseTable.Columns, baseTable); m = outTable.Matrix; for (int row = 0; row < outTable.Rows; row++) { for (int col = 0; col < outTable.Columns; col++) { m[row][col] += columnMean[col]; } } return(outTable); }