private static void CheckBandStop(AnalogBasedFilter Filter, AnalogBasedFilter.Specification Specification, int N) { var kps_05 = GetTransmigrationCoefficient(Filter, Specification.fp + (Specification.fs - Specification.fp) / 2, N).In_dB_byPower(); Assert.That.Value(kps_05).LessThan(-Specification.Rp); var ks = GetTransmigrationCoefficient(Filter, Specification.fs, N).In_dB_byPower(); Assert.That.Value(ks).LessOrEqualsThan(-Specification.Rs); var df = Specification.fp / 10; for (var f0 = Specification.fs; f0 < Specification.fd / 2; f0 += df) { var k = GetTransmigrationCoefficient(Filter, f0, N).In_dB_byPower(); Assert.That.Value(k).LessThan(-Specification.Rs); } }
/// <summary>Проверка фильтра в полосе пропускания</summary> /// <param name="Filter">Проверяемый фильтр</param> /// <param name="Specification"></param> /// <param name="N"></param> private static void CheckBandPass(AnalogBasedFilter Filter, AnalogBasedFilter.Specification Specification, int N) { var k0 = GetTransmigrationCoefficient(Filter, 0, N).In_dB_byPower(); Assert.That.Value(k0).GreaterThan(-Specification.Rp); var df = Specification.fp / 10; for (var f0 = df; Specification.fp - f0 > df; f0 += df) { var k = GetTransmigrationCoefficient(Filter, f0, N).In_dB_byPower(); Assert.That.Value(k).GreaterThan(-Specification.Rp, 0.5, $"f0:{f0} fp:{Specification.fp}"); } var kp = GetTransmigrationCoefficient(Filter, Specification.fp, N).In_dB_byPower(); Assert.That.Value(kp).IsEqual(-Specification.Rp, 0.1); var kps_01 = GetTransmigrationCoefficient(Filter, Specification.fp + (Specification.fs - Specification.fp) / 10, N).In_dB_byPower(); Assert.That.Value(kps_01).LessThan(-Specification.Rp).GreaterThan(-Specification.Rs); }