public void CheckWithNaiveImplementation(int sourceLength, int firLength) { var random = new Random(57); var source = Enumerable.Range(0, sourceLength).Select(t => random.NextDouble()).ToArray(); var fir = Enumerable.Range(0, firLength).Select(t => random.NextDouble()).ToArray(); var expected = Convolve_Naive(source, fir); var actual = Filtering.Convolve(source, fir); for (var t = 0; t < actual.Length; t++) { Assert.AreEqual(expected[t], actual[t], 1.0E-6); } }
public void CheckWithDelayFilter(int sourceLength, int firLength) { var random = new Random(57); var source = Enumerable.Range(0, sourceLength).Select(t => random.NextDouble()).ToArray(); var delayFilter = new double[firLength]; delayFilter[delayFilter.Length - 1] = 1.0; var expected = Enumerable.Repeat(0.0, firLength - 1).Concat(source).Take(sourceLength).ToArray(); var actual = Filtering.Convolve(source, delayFilter); for (var t = 0; t < actual.Length; t++) { Assert.AreEqual(expected[t], actual[t], 1.0E-6); } }