public void TestRisingFrontsDetectionOnEmptySeries() { SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(100); NUnit.Framework.Assert.AreEqual(0, ssc.GetLastRisingFrontAmplitude()); NUnit.Framework.Assert.AreEqual(0, ssc.GetLastRisingFrontDuration()); }
public void TestRisingFrontsDetectionOnSingleValueSequence() { SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(3); ssc.AddValue(0); NUnit.Framework.Assert.AreEqual(0, ssc.GetLastRisingFrontAmplitude()); NUnit.Framework.Assert.AreEqual(1, ssc.GetLastRisingFrontDuration()); }
public void TestMinMaxFinishedFrontShortHistory() { FrontDetectionTestSequence seq = this.FinishedFrontSequence; SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(4); ssc.AddSequence(seq.sequence); NUnit.Framework.Assert.AreEqual(2, ssc.GetMin()); NUnit.Framework.Assert.AreEqual(4, ssc.GetMax()); }
public void TestMinMaxUnFinishedFront() { FrontDetectionTestSequence seq = this.UnifinishedFrontSequence; SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(seq.sequence.Length); ssc.AddSequence(seq.sequence); NUnit.Framework.Assert.AreEqual(-2, ssc.GetMin()); NUnit.Framework.Assert.AreEqual(4, ssc.GetMax()); }
public void TestFinishedFront() { SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(3); FrontDetectionTestSequence ts = FinishedFrontSequence; ssc.AddSequence(ts.sequence); NUnit.Framework.Assert.AreEqual(ts.expected_duration, ssc.GetLastRisingFrontDuration()); NUnit.Framework.Assert.AreEqual(ts.expected_amplitude, ssc.GetLastRisingFrontAmplitude()); }
public void Test_Average_Of_Constant() { SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(size); for (int i = 0; i < size; ++i) { ssc.AddValue(constantValue); } ssc.AddValue(constantValue); NUnit.Framework.Assert.AreEqual(constantValue, ssc.GetMX(0)); }
public PpgPulseDetector(double SamplingRate, int BitsPerSample) { m_SamplingRate = SamplingRate; m_Denoiser = new PpgDenoiser(SamplingRate); m_Normalizer = new PpgDispersionNormalizer(SamplingRate, BitsPerSample); // создаем сборщик статистики // нас интересуют статистические параметры сигнала // за последние 2.2 секунды, предшествующие пику m_SignalStatCollector = new SeriesStatisticsCollector((int)(SamplingRate * this.m_MinStatCollectionPeriod)); m_History = new int[(int)(m_MinStatCollectionPeriod * SamplingRate + 1)]; m_HistoryEmpty = true; }
public PpgPulseDetectorByDerivative(double SamplingRate, int BitsPerSample, bool bEnableDebugMonitor) { DenyLoggerByName(typeof(PpgPulseDetectorByDerivative).ToString()); m_SamplingRate = SamplingRate; DetectorParameters par = DetectorParametersManager.GetParameters(SamplingRate); log.Debug($"Detector parameters used for sampling rate = {SamplingRate} Hz are: {par} "); BY = par.BY; BMY = par.BMY; BYd = par.BYD; BMYd = par.BMYD; BMYd2 = 10; KD1 = BY * BMY * 64; KD2 = BYd * BMYd * 64; m_Normalizer = new PpgDispersionNormalizer(SamplingRate, BitsPerSample); //m_Normalizer.Debug_MonitorEnabled(true); #if ENABLE_DEBUG_MONITOR this.Debug_MonitorEnabled(bEnableDebugMonitor); #else // do not enable, if not enabled in this module #endif // monitor always off //this.Debug_MonitorEnabled(false); // создаем сборщик статистики по сигналу // нас интересуют статистические параметры сигнала // за последние m_MinStatCollectionPeriod предшествующих фронту секунд, // а также история сигнала за последние 2.2 секунды m_Signal_Statistics = new SeriesStatisticsCollector((int)(SamplingRate * this.m_MinStatCollectionPeriod)); // создаем сборщик статистики по производной сигнала // нас интересуют статистические параметры производной сигнала // за последние 2.2 секунды, предшествующие фронту, m_DY_Statistics = new SeriesStatisticsCollector((int)(SamplingRate * this.m_MinStatCollectionPeriod)); // История стабилизированного сигнала this.m_Y = new RingBuffer <int>(this.BY); // История сумм стабилизированного сигнала // (фактически, сглаживание перед дифференцированием) this.m_History_SumY = new RingBuffer <long>(this.BMY); // история стабилизированного сглаженного сигнала // для оценки длительности и высоты последнего фронта this.m_SumY_front_history = new SeriesStatisticsCollector((int)(SamplingRate * 1.0)); // История производной стабилизированного сигнала this.m_DY = new RingBuffer <int>(this.BYd); // История сумм производной стабилизированного сигнала // (фактически, сглаживание перед вторым дифференцированием) this.m_History_SumDY = new RingBuffer <long>(this.BMYd); // История второй производно стабилизированного сигнала this.m_History_D2Y = new RingBuffer <int>(this.BMYd2); }
public void TestCreationFailureWhenRequestingTooShortHistorySize() { Assert.Throws <ArgumentException>(() => { SeriesStatisticsCollector ssc = new SeriesStatisticsCollector(0); }); }