Как построить пиковый массив поверх другого сигнала в Java? - PullRequest
1 голос
/ 11 мая 2019

У меня есть сигнал ЭКГ и R-пики этого сигнала, хранящиеся в массиве в моем приложении Java.Пики даны как индекс выборки сигнала ЭКГ.

Я хочу построить график ЭКГ с пиками, отмеченными другим цветом.Мой текущий код показывает только кривую ЭКГ, но пиков нигде не видно.Это не дает никакой ошибки, но что-то должно быть не так

 public void ConfigureGraph() {
   final GraphView graph = findViewById(R.id.graphview);
   graph.getViewport().setScalable(true);

    LineGraphSeries<DataPoint> series1 = new LineGraphSeries<>();
    LineGraphSeries<DataPoint> series2 = new LineGraphSeries<>();

   series1.setDrawDataPoints(true);
   series2.setDrawDataPoints(true);
   series2.setDataPointsRadius(10);
   series2.setThickness(8);

   ArrayList<Double> myDatan=readFileNorm(); //This is my ECG
   LinkedList<Integer> myPeaks= PanTompkins.findPeaks(myDatan); //Those are my peaks

   int numberofdatapoints = 20000;
   double x=0;
   double y;

   for(int i=0; i<numberofdatapoints; i++){ //Plot the ECG
       x = x + 0.004;
       y = myDatan.get(i);
       series1.appendData(new DataPoint(x,y),true,20000);

       for(int p=0; p<myPeaks.size(); p++) { //Add the peaks to plot
           if(y == myPeaks.get(p)){
               series2.appendData(new DataPoint(x,y),true,20000);
           }
       }
   }

   graph.addSeries(series1);
   graph.addSeries(series2);
}

ЭКГ видна здесь, и я посмотрел на массив пиков, и похоже, что он должен работать.Индекс первого пика равен 54, что соответствует пику при 54 * 0,004 = 0,216;и следующий в 193 * 0,004 = 0,772.

result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...