private static void TestBandStop(int order, double fs, double f1, double f2, double[] expected, double error, bool scale)
        {
            var coeff = new BandStopLeastSquareCoefficients(order, fs, f1, f2)
            {
                UseScaling = scale
            };
            var chain = coeff.Calculate();

            Assert.AreEqual(expected.Length, chain.Count);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], chain[i], error);
            }
        }
Ejemplo n.º 2
0
        public void TestBandStopLeastSquareFiltering()
        {
            const int    order  = 256;
            const int    fs     = 44100;
            const double f1     = 500d;
            const double f2     = 8000d;
            const int    cycles = 10;

            double[] frequencies      = { 330, 770, 1870, 5830, 9790 };
            var      validFrequencies = frequencies.TakeWhile(f => f < f1).Concat(frequencies.SkipWhile(f => f < f2));

            var coeff = new BandStopLeastSquareCoefficients(order, fs, f1, f2);

            TestFilter(order, fs, cycles, coeff, frequencies, validFrequencies);
        }