public override IOnlineFilter CreateFilter(Dictionary <string, string> parameters)
        {
            double sampleRate = parameters["SampleRate"].ToDouble();
            var    halfOrder  = parameters["FIRhalfOrder"].ToInt();
            IFirFilterRangeCollections tmp = null;

            for (var i = 0; i < BandFilterList.Count; i++)
            {
                var filterParam = BandFilterList[i];
                if (filterParam.Disable)
                {
                    continue;
                }
                var pri = filterParam.CreatePrimitiveBandFilter();
                tmp = tmp == null ? pri : tmp.Add(pri);
            }

            if (tmp == null)
            {
                return(null);
            }
            var cof = tmp.GetFirCoefficients(sampleRate, halfOrder);

            return(new OnlineFirFilter(cof));
        }
        public static string Show(this IFirFilterRangeCollections col)
        {
            var builder = new StringBuilder();

            foreach (var range in col.PrimitiveRanges)
            {
                builder.Append(range.Show()).Append(" ");
            }

            return(builder.ToString());
        }
Example #3
0
 private static void PrintRange(IFirFilterRangeCollections mix)
 {
     Console.WriteLine(mix.Show());
     Console.WriteLine(mix.GetFirCoefficients(500, 2).Show());
 }