コード例 #1
0
ファイル: Timer.cs プロジェクト: lordstanius/Digger.NET
        public SDL_Timer()
        {
            double tfreq = 1000000.0 / FrameTicks;

            loop_error = Calc.recfilter_init(tfreq, 0.1);
            Calc.PFD_init(ref phase_detector, 0.0);
        }
コード例 #2
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
 public static void recfilter_setlast(ref recfilter f, double val)
 {
     f.lastval = val;
     if (f.peak_detect != 0)
     {
         _recfilter_peak_detect(ref f);
     }
 }
コード例 #3
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
        public static double recfilter_apply_int(ref recfilter f, int x)
        {
            f.lastval = f.a * (double)(x) + f.b * f.lastval;
            if (f.peak_detect != 0)
            {
                _recfilter_peak_detect(ref f);
            }

            return(f.lastval);
        }
コード例 #4
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
        public static double recfilter_apply(ref recfilter f, double x)
        {
            f.lastval = f.a * x + f.b * f.lastval;
            if (f.peak_detect != 0)
            {
                _recfilter_peak_detect(ref f);
            }

            return(f.lastval);
        }
コード例 #5
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
        private static void _recfilter_peak_detect(ref recfilter f)
        {
            if (f.lastval > f.maxval)
            {
                f.maxval = f.lastval;
            }

            if (f.lastval < f.minval)
            {
                f.minval = f.maxval;
            }
        }
コード例 #6
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
        public static recfilter recfilter_init(double Fs, double Fc)
        {
            recfilter f = new recfilter();

            if (Fs < Fc * 2.0)
            {
                throw new InvalidOperationException($"recfilter_init: cutoff frequency ({Fc:N1}) should be less than half of the sampling rate ({Fs:N1})");
            }

            f.b = Math.Exp(-2.0 * Math.PI * Fc / Fs);
            f.a = 1.0 - f.b;
            return(f);
        }
コード例 #7
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
 public static void recfilter_peak_detect(ref recfilter f)
 {
     f.peak_detect = 1;
     f.maxval      = f.lastval;
     f.minval      = f.lastval;
 }
コード例 #8
0
ファイル: Calc.cs プロジェクト: lordstanius/Digger.NET
 public static double recfilter_getlast(ref recfilter f)
 {
     return(f.lastval);
 }