public void ChebyshevII()
        {
            var specification = Information.GetSpecification();
            var filter        = new ChebyshevLowPass(specification, ChebyshevFilter.ChebyshevType.II);

            CheckChebyshevII(filter);
        }
Exemplo n.º 2
0
        /// <summary>Тест фильтра Чебышева II-рода</summary>
        /// <param name="filter">Тестируемый фильтр чебышева</param>
        /// <param name="N">Число точек сигнала</param>
        protected static void CheckChebyshevII(ChebyshevLowPass filter, int N = 100)
        {
            // Фильтр должен быть фильтром Чебышева второго рода
            Assert.That.Value(filter.FilterType).IsEqual(ChebyshevFilter.ChebyshevType.II);

            var specification = filter.Spec;

            // Коэффициент передачи на нулевой частоте должен быть не больше коэффициента подавления в полосе пропускания
            var k0 = GetTransmigrationCoefficient(filter, 0, N).In_dB_byPower();

            Assert.That.Value(k0).GreaterOrEqualsThan(-specification.Rp);

            // Коэффициент передачи на граничной частоте полосы пропускания должно быть меньше коэффициента передачи в полосе пропускания
            var kp = GetTransmigrationCoefficient(filter, specification.fp, N).In_dB_byPower();

            Assert.That.Value(kp).LessThan(-specification.Rp);

            // Коэффициент передачи на граничной частоте полосы заграждения должен быть меньше коэффициента пропускания полосы подавления
            var ks = GetTransmigrationCoefficient(filter, specification.fs, N).In_dB_byPower();

            Assert.That.Value(ks).LessOrEqualsThan(-specification.Rs);

            // Коэффициенты передачи в полосе заграждения должен быть не больше чем коэффициент передачи полосы заграждения
            for (var(f0, df) = (specification.fs, specification.fd / 2 / 100); f0 <= specification.fd / 2; f0 += df)
            {
                var k = GetTransmigrationCoefficient(filter, f0, N).In_dB_byPower();
                Assert.That.Value(k).LessThan(-specification.Rs);
            }
        }