Пример #1
0
 /// <summary>
 /// Design a Nyquist FIR filter
 /// </summary>
 /// <param name="type">filter type (e.g. kaiser, rrc etc.)</param>
 /// <param name="_k">samples/symbol</param>
 /// <param name="_m">symbol delay</param>
 /// <param name="_beta">rolloff factor (0 &lt; beta &lt; 1)</param>
 /// <param name="_dt">fractional sample delay</param>
 /// <returns>returns FIR filter having co-efficient vector of length (2*_k*_m+1)</returns>
 public static Filters.FIRFilter DesignFIR(FIR_Filter_Type type, int _k, int _m, float _beta, float _dt)
 {
     float[] h = new float[(2 * _k * _m + 1)];
     unsafe
     {
         float *_h = stackalloc float[h.Length];
         libliquid.liquid_firdes_prototype(type, _k, _m, _beta, _dt, _h);
         for (int i = 0; i < h.Length; i++)
         {
             h[i] = _h[i];
         }
     }
     Filters.FIRFilter f = new Filters.FIRFilter(h);
     return(f);
 }
Пример #2
0
        /// <summary>
        /// Design a Nyquist FIR filter
        /// </summary>
        /// <param name="int">filter type</param>
        /// <param name="_k">samples/symbol</param>
        /// <param name="_m">symbol delay</param>
        /// <param name="_beta">rolloff factor (0 &lt; beta &lt; 1)</param>
        /// <param name="_dt">fractional sample delay</param>
        /// <returns>returns FIR filter having co-efficient vector of length (2*_k*_m+1)</returns>
        public static Filters.FIRFilter DesignFIR(int type, int _k, int _m, float _beta, float _dt)
        {
            FIR_Filter_Type f = (FIR_Filter_Type)type;

            return(DesignFIR(f, _k, _m, _beta, _dt));
        }