---
title: "Signal Segmentation"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Signal Segmentation}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```{r setup}
library(EGM)
```

The concept of *beat segmentation* is important in cardiac electrical signal analysis. 
There are many approaches that can be used, based on the underlying rhythm. 
The simplest is to use a **sinus** rhythm as the baseline, while more complex would be rapid **macro-reentry**. 

Windowing or segmenting signals helps with identify characteristics of individual beats or events. These can subsequently be leveraged in many ways, such as...

- Machine learning approaches on single beat data
- Signal averaging to create template beats
- Visualizing windowed beats

# Sinus rhythm

The initial approach will be to use sinus rhythm, which can most easily be evaluated using a rule-based approach:

1. Between an $QRS_{i}$ (index QRS complex) and $QRS_{i+1}$ (following QRS complex), there must be a T wave
1. Between the $QRS_{i}$ and the $QRS_{i-1}$ (previous QRS complex), there must be P wave ≥ 1
1. There should not be additional depolarization signals between the $P_{i}$ and $QRS_{i}$

```{r}
#| eval: false
ecg <- read_wfdb(record = 'muse-sinus',
                 record_dir = system.file('extdata', package = 'egm'),
                 annotator = 'ecgpuwave')
# Example data
ecg
```

This file represent an ECG data set obtained from MUSE v9 that contains 12-leads of data over 10 seconds.