protected internal override IOnlineFilter CreateBandStop(FilterDesignSettings settings, double lowFrequency, double highFrequency)
 {
     return Create(Design(FilterKind.BandStop, settings.Order,
         CalculateRipple(settings),
         settings.NormalizeFrequency(lowFrequency),
         settings.NormalizeFrequency(highFrequency)));
 }
        protected internal override IOnlineFilter CreateNotch(FilterDesignSettings settings, double frequency)
        {
            const double notchHalfWidth = 0.5; // Hz

            return Create(Design(FilterKind.BandStop, settings.Order,
                CalculateRipple(settings),
                settings.NormalizeFrequency(frequency - notchHalfWidth),
                settings.NormalizeFrequency(frequency + notchHalfWidth)));
        }
 protected internal override IOnlineFilter CreateHighPass(FilterDesignSettings settings, double frequency)
 {
     return Create(Design(FilterKind.HighPass, settings.Order,
         CalculateRipple(settings),
         settings.NormalizeFrequency(frequency)));
 }