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()); }
private static void PrintRange(IFirFilterRangeCollections mix) { Console.WriteLine(mix.Show()); Console.WriteLine(mix.GetFirCoefficients(500, 2).Show()); }