private void convolve(double[] basesignal, Mitov.SignalLab.BlockBuffer blockBuffer) { int samples=0; for (int offset = 0; offset < size; offset++) { Result[row, offset] = 0.0d; samples = 0; for (int i = 0; i < Math.Min(size, blockBuffer.GetSize()); i++) { int offsetPos = i + offset - (size / 2); if (offsetPos >= 0 && offsetPos < blockBuffer.GetSize()) { Result[row, offset] += basesignal[i] * blockBuffer[offsetPos]; } samples++; } Result[row, offset] = Result[row, offset] / samples; } row++; }