Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }