public static PowerSpectra Run(TimeSeriesDouble data, int window, Action <double> progress)
        {
            while (3 * window > data.Data.Count)
            {
                window /= 2;
            }

            var startF = 5;
            var endF   = window / 2 - 5;

            var f = Fft.GetFrequencies(window, data.SampleRate, startF, endF);

            var mag = Calculate(data.Data, window, window / 4, startF, endF, progress);

            //var c = 1 / Math.Sqrt(data.SampleRate);
            //mag = Array.ConvertAll(mag, x => x * c);

            progress(100.0);

            return(new PowerSpectra(f, mag.Item1, mag.Item2));
        }
Ejemplo n.º 2
0
 public void Initalize(int window, float sampleRate)
 {
     _tensors = GetTensors(Fft.GetFrequencies(window, sampleRate));
 }
Ejemplo n.º 3
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="FftSeries" /> class.
 /// </summary>
 /// <param name="samplerate">The Samplerate used for computing the frequency values.</param>
 /// <param name="n">The FFT length N (in time domain) used for computing the frequency values.</param>
 public FftSeries(double samplerate, int n) : base(Fft.GetFrequencies(samplerate, n), false)
 {
     this.SampleRate = samplerate;
     this.N          = n;
 }