Beispiel #1
0
        public void TestApplyDelayToSpectrum()
        {
            var x = new[] { 250, 500.0, 1000, 2000 };
            var y = new[] { Complex.One, Complex.One, Complex.One, Complex.One };

            Complex[] target = { Complex.ImaginaryOne, -Complex.One, Complex.One, Complex.One };

            var output = Dsp.ApplyDelayToSpectrum(x, y, 0.001).ToReadOnlyList();

            FilterAssert.ListsAreReasonablyClose(target, output);

            var y2 = new[] { 4.0 * Complex.One, 5, 6, 7 };

            output = Dsp.ApplyDelayToSpectrum(x, y2, 2).ToReadOnlyList();
            Assert.That(output.Count == x.Length);

            Assert.That(Dsp.ApplyDelayToSpectrum(new List <double>(), y, 1).ToReadOnlyList().Count == 0);

            Assert.Throws <ArgumentNullException>(() => Dsp.ApplyDelayToSpectrum(null, y, 2).ToReadOnlyList());
            Assert.Throws <ArgumentNullException>(() => Dsp.ApplyDelayToSpectrum(x, null, 2).ToReadOnlyList());
        }