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); }
public DFMFilter(DFMCoefList upper, DFMCoefList lower, string name = null) { Name = name == null ? "Unnamed filter" : name; this.upper = upper; this.lower = lower; }