Beispiel #1
0
        static DFMFilter()
        {
            DFMCoefList upper1 = new DFMCoefList(1, 0);
            DFMCoefList upper2 = new DFMCoefList(2);
            DFMCoefList upper3 = new DFMCoefList(0, 1);
            DFMCoefList upper4 = new DFMCoefList(0.5, 0.5);
            DFMCoefList lower1 = new DFMCoefList(1, 0);
            DFMCoefList lower2 = new DFMCoefList(1, -0.5);

            identityFilter = new DFMFilter(upper1, lower1);
            doublingFilter = new DFMFilter(upper2, lower1);
            delayFilter    = new DFMFilter(upper3, lower1);
            fadeFilter     = new DFMFilter(upper1, lower2);
            avg2Filter     = new DFMFilter(upper4, lower1, "Average2");
        }
        DFMFilter LoadFilterFromFile(string path)
        {
            string[] lines = File.ReadAllLines(path);
            if (!lines[0].ToLower().StartsWith("filter "))
            {
                throw new FileFormatException("File is not formatted as a filter file");
            }
            string[] namelines = lines[0].Split(' ');
            string   name      = namelines[1];

            string[]    uppernums = lines[1].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            DFMCoefList upper     = new DFMCoefList(uppernums.Select(x => double.Parse(x)).ToArray());

            string[]    lowernums = lines[2].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            DFMCoefList lower     = new DFMCoefList(lowernums.Select(x => double.Parse(x)).ToArray());

            if (lower[0] == 0)
            {
                throw new ArgumentException("First denominator coefficient can't be 0");
            }
            DFMFilter filter = new DFMFilter(upper, lower, name);

            return(filter);
        }
Beispiel #3
0
 public DFMFilter(DFMCoefList upper, DFMCoefList lower, string name = null)
 {
     Name       = name == null ? "Unnamed filter" : name;
     this.upper = upper;
     this.lower = lower;
 }