Ejemplo n.º 1
0
        public FilterChain(Filter[] filters)
        {
            if (filters == null)
                throw new ArgumentException("Filter array cannot be null.");

            this.filters = filters;
            return;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Applies a nth-order Butterworth filter.
        /// </summary>
        /// <param name="factor"></param>
        /// <param name="filterOrder"></param>
        public DecimationFilter(int factor, int filterOrder, bool bidirectional)
        {
            this.factor = factor;

            Util.Pair<double,double> cornerFreqs = new Util.Pair<double,double>(Math.PI / factor, 0.0);
            FilterOrderSpec spec = FilterOrderSpec.CreateButterworthSpec(cornerFreqs, filterOrder, BandType.LowPass);

            Filter antiAliasFilter = FilterFactory.CreateIirFilter(spec);
            if(bidirectional)
                antiAliasFilter = new BidirectionalFilter(antiAliasFilter);

            Filter downSampleFilter = new DownSampleFilter(factor);
            filter = new FilterChain(new Filter[] { antiAliasFilter, downSampleFilter });
            return;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a bidirectional filter from any filter.
        /// </summary>
        public BidirectionalFilter(Filter filter)
        {
            this.filter = filter;

            return;
        }