Exemple #1
0
        /// <summary>
        /// Creates a nth-order low-pass or high-pass Type I linear-phase FIR filter.
        /// </summary>
        /// <param name="freq">Corner frequency in radians.</param>
        /// <param name="order">Filter order.</param>
        /// <param name="windowType">Window type.</param>
        /// <param name="lowpass">True specifies low-pass, false specifies high-pass.</param>
        /// <returns></returns>
        public static FirFilter CreateFirFilter(double freq, int order, Windows.Type windowType, bool lowpass)
        {
            //Create window
            double[] window = Windows.CreateWindow(order, windowType);

            //Make sure the window is symmetric
            for (int i = 0; i < window.Length; i++)
            {
                Debug.Assert(window[i] == window[window.Length - 1 - i]);
            }

            //Create filter and return
            return CreateFirFilter(freq, order, window, lowpass);
        }
Exemple #2
0
 /// <summary>
 /// Creates a nth-order low-pass Type I linear-phase FIR filter.
 /// </summary>
 /// <param name="freq">Corner frequency in radians.</param>
 /// <param name="order">Filter order.</param>
 /// <param name="windowType">Window type.</param>
 /// <returns></returns>
 public static FirFilter CreateFirFilter(double freq, int order, Windows.Type windowType)
 {
     return CreateFirFilter(freq, order, windowType, true);
 }