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); } }
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); }