public TransitionGradientArray GetStrongestTransitionsGradientFrequency() { TransitionGradientArray transitionGradientArray = new TransitionGradientArray(); if (bufferFramesArray.Count > 0) { Gradient gradient, maxGradient; double maxGradientStrength = Double.NaN, gradientStrength; int maxIndex = -1; double[] transitionsStrengthArray; TransitionGradient strongestTransitionGradient; ////long inc = (long) (FREQUENCY_SEGMENT_SIZE / mainForm.binSize); long inc = (long)(10000 / mainForm.binSize); long segmentEnd; for (long i = 0; i < bufferFramesArray[0].bufferArray.Length; i += inc) { maxGradient = null; maxGradientStrength = Double.NaN; maxIndex = -1; segmentEnd = i + inc; for (long j = i; j < segmentEnd && j < bufferFramesArray[0].bufferArray.Length; j++) { transitionsStrengthArray = GetAveragedStrengthOverTimeForIndex(j); ////transitionsStrengthArray = GetStrengthOverTimeForIndex(j); gradient = SignalDataUtilities.SeriesTransitionGradient(transitionsStrengthArray, Gradient.divisionsCount); gradientStrength = gradient.CalculateTransitionGradient(); ////gradientStrength = gradient.strength; ////gradientStrength = SignalDataUtilities.Series2ndVS1stHalfAvgStrength(transitionsStrengthArray) * transitions; if (Double.IsNaN(maxGradientStrength) || gradientStrength > maxGradientStrength) { maxGradient = gradient; maxGradientStrength = gradientStrength; maxIndex = (int)j; } } strongestTransitionGradient = new TransitionGradient(Utilities.GetFrequencyFromIndex((long)(maxIndex), parent.lowerFrequency, mainForm.binSize), maxIndex, maxGradientStrength, this.transitions, maxGradient); transitionGradientArray.Add(strongestTransitionGradient); } } return(transitionGradientArray); }
public TransitionGradient GetTransitionsGradientForFrequency(long frequency) { Utilities.FrequencyRange frequencyRange = Utilities.GetIndicesForFrequencyRange(frequency, frequency, parent.lowerFrequency, mainForm.binSize); double[] transitionsStrengthArray = GetAveragedStrengthOverTimeForIndex((long)frequencyRange.lower); Gradient gradient = SignalDataUtilities.SeriesTransitionGradient(transitionsStrengthArray, Gradient.divisionsCount); return(new TransitionGradient(Utilities.GetFrequencyFromIndex((long)frequencyRange.lower, parent.lowerFrequency, mainForm.binSize), (long)frequencyRange.lower, gradient.CalculateTransitionGradient(), this.transitions, gradient)); }
public TransitionGradient GetTransitionsGradient() { if (bufferFramesArray.Count > 0) { Gradient gradient; double[] transitionsStrengthArray; TransitionGradient transitionGradient; transitionsStrengthArray = GetAveragedStrengthOverTimeForRange(0, bufferFramesArray[0].bufferArray.Length); gradient = SignalDataUtilities.SeriesTransitionGradient(transitionsStrengthArray, Gradient.divisionsCount); double gradientStrength = gradient.CalculateTransitionGradient(); long index = bufferFramesArray[0].bufferArray.Length / 2; long frequency = Utilities.GetFrequencyFromIndex((long)(index), parent.lowerFrequency, mainForm.binSize); BufferFramesObject zoomedOutBufferObject = mainForm.bufferFramesArray.GetBufferFramesObject(0); Utilities.FrequencyRange frequencyRange = Utilities.GetIndicesForFrequencyRange(frequency, frequency, zoomedOutBufferObject.lowerFrequency, zoomedOutBufferObject.binSize); long width = bufferFramesArray[0].bufferArray.Length / 2; ////transitionGradient = new TransitionGradient(frequency, (long) frequencyRange.lower, gradientStrength, this.transitions,gradient,width, Utilities.GetFrequencyFromIndex((long)(index-width), parent.lowerFrequency, mainForm.binSize), Utilities.GetFrequencyFromIndex((long)(index+width), parent.lowerFrequency, mainForm.binSize)); transitionGradient = new TransitionGradient(frequency, index, gradientStrength, this.transitions, gradient, width, Utilities.GetFrequencyFromIndex((long)(index - width), parent.lowerFrequency, mainForm.binSize), Utilities.GetFrequencyFromIndex((long)(index + width), parent.lowerFrequency, mainForm.binSize)); return(transitionGradient); } return(null); }
public void CalculateGradients() { if (bufferFramesArray.Count > 0) { gradients.Add(new GradientArray(bufferFramesArray[0].bufferArray.Length)); gradients[gradients.Count - 1].time = (Environment.TickCount & int.MaxValue); double[] transitionsStrengthArray; double gradientStrength; double avgStackedFrames; Gradient gradient; for (long i = 0; i < bufferFramesArray[0].bufferArray.Length; i++) { transitionsStrengthArray = GetStrengthOverTimeForIndex(i); ////gradientStrength = SignalDataUtilities.SeriesTransitionGradient(transitionsStrengthArray); gradient = SignalDataUtilities.SeriesTransitionGradient(transitionsStrengthArray, Gradient.divisionsCount); avgStackedFrames = GetAverageStackedFramesForIndex(i); gradient.stackedFrames = avgStackedFrames; ////gradients[gradients.Count - 1].gradientArray[i] = new Gradient(gradientStrength, avgStackedFrames); gradients[gradients.Count - 1].gradientArray[i] = gradient; } gradients[gradients.Count - 1].CalculateAverage(); } }