Dr. Adrian Chan has been named a Fellow of the Canadian Medical and Biological Engineering Society (CMBES).

Software Library

Data

If you would like access to particular data, please contact me via email.

Biomedical Signal Quality Analysis

The Matlab files will enable people researching biomedical signal quality analysis to have a common methodology to compare against.

 

Keywords: biological signal, biosignal, electrocardiogram (EMG), Matlab, signal quality index (SQI), signal processing, signal quality analysis

Usage

If you are using these files (or a modification of these files) provide an acknowledgment (e.g. in publications) for their usage. Usage of these files (or a modification of these files) should reference:

 

SQIexample.zip (20-07-16) Example code of SQI that contaminates ECG with motion artifact at different levels of SNR and shows how the SQI varies with SNR.

ecgsqi.m signal quality index for ECG

Motion Artifact Signal Generation Toolkit

These files include simulated motion artifact, pretrained models to simulate motion artifact, and the ability to train new models. The models include an autoregressive (AR) model, Markov chain model, and recurrent neural network (RNN). The simulated motion artifact can be added to bioelectric signal recordings (e.g., ECG, EMG) for biomedical signal quality analysis research.

 

Keywords: biological signal, biosignal, electrocardiogram (EMG), motion artifact, python, signal processing, signal quality analysis

Usage

If you are using these files (or a modification of these files) provide an acknowledgment (e.g. in publications) for their usage. Usage of these files (or a modification of these files) should reference:

 

MotionArtifactModels.zip (22-08-08) Simulated motion artifact, pretrained models to simulate motion artifact, and software to train and simulate motion artifact.

Motion Artifact Signal Database

These files include motion artifact signals obtained by taking 84 ambulatory ECG recordings from the Physionet Long Term AF database and removing the ECG. Each recording is about 24-hours in length.

 

Keywords: biological signal, biosignal, motion artifact, signal quality analysis

Usage

If you are using these files (or a modification of these files) provide an acknowledgment (e.g. in publications) for their usage. Usage of these files (or a modification of these files) should reference:

  • Kulpa J, Chan ADC, "Electrocardiogram Removal to Establish a Motion Artifact Database", submitted to IEEE Canadian Conference on Electrical and Computer Engineering, Regina SK, Canada, 2023.

 

MotionArtifactSignals.zip (23-04-22) A sample of 10 motion artifact signals, each around 24-hours in length.

Myoelectric Control (MECLab)

The Matlab files will enable people researching MES/EMG classification methods to have a common methodology to compare against. The methodology used is a relatively simple and direct approach using ULDA feature reduction and a LDA classifier; however, has shown to be quite effective.

 

Keywords: biological signal, electromyography (EMG), feature reduction, Matlab, myoelectric control, myoelectric signals (MES), pattern classification, prosthetic control, prosthesis, signal processing

Usage

If you are using these files (or a modification of these files) provide an acknowledgment (e.g. in publications) for their usage. Usage of these files (or a modification of these files) should reference:

Myoelectric Control Example

MECexample.zip (10-02-08) Example code and data to classify eight channels of myoelectric data to predict seven upper arm motions (i.e. using electromyography (EMG) signals for control of upper limb prostheses).

Feature Extraction

getrmsfeat.m root mean square feature

getmavfeat.m mean absolute value feature

getiavfeat.m integrated absolute value feature

getarfeat.m autoregressive feature

getzcfeat.m zero crossing feature

getsscfeat.m slope sign change feature

getwlfeat.m waveform length feature

scatterplot.m creates a scatter plot of the feature vector (likely want to use pca or ulda feature reduction first)

Feature Reduction

pca_feature_reduction.m principal component analysis feature reduction

ulda_feature_reduction.m uncorrelated linear discriminant analysis feature reduction

Classification

score_classify.m converts columns of scores into classification outputs (numbers)

confmat.m generates a confusion matrix

plotconfmat.m plots a confusion matrix

plotconfmattext.m plots a confusion matrix in text format

find_rank.m find the rank of a particular class given columns of scores

rank_classify.m converts columns of scores into ranks

majority_vote.m performs majority vote post processing on classification decisions

classification_timeplot.m plots classification results as a function of time

lda_classify.m classification performed by linear discriminant analysis

knn_classify.m classification performed by k-nearest neighbors

Myoelectric signal processing

meanfrequency.m computes the mean frequency

medianfrequency.m (09-10-07) computes the median frequency

SMratio.m computes the signal-to-motion artifact ratio

DPratio.m computes the maximum-to-minimum drop in power density

SNratio.m computes the signal-to-noise ratio

OHMratio.m computes the spectral deformation

Miscellaneous

remove_transitions.m (10-02-08) will remove transitional data (e.g. from a time series of feature vectors)

ECG Person Identification

 

Keywords: biological signal, electrcardiography (ECG), electrcardiogram, wavelet, Matlab, biometric, person identification

Usage

If you are using these files (or a modification of these files) provide an acknowledgment (e.g. in publications) for their usage. Usage of these files (or a modification of these files) should reference:

 

ECG Biometric Data Example ECG from 10 subjects from three sessions on separate days.

wavelet_dist.m wavelet distance measure

Adaptive Signal Processing

anc_lms.m adaptive filter using the LMS algorithm

anc_rls.m adaptive filter using the RLS algorithm

Miscellaneous

find_delay.m finds the delay (in samples) between two signals

approxequal.m logical function to compare numbers to see if they are within a certain tolerance of each other

remove_mean.m removes the mean from signals that arranged in columns

gausspdf.m computes the Gaussian probability distribution function

loggausspdf.m computes the log Gaussian probability distribution function

prd.m computes the percent residual difference

fft_freq.m computes fft with corresponding frequencies (fftshift is optional)

M15GUI.zip software to configure the Grass-Telefactor Model 15 Neurodata Amplifier System

findqrs_mobd.m this function is an implementation of the MOBD algorithm for QRS detection

getaxondata.m this function Loads data from Axon file (generated from AxoScope)

Disclaimer

The files provided are distributed "AS IS" and "WITH ALL FAULTS". We do not offer a warranty for the content or use of these files nor do we guarantee their quality, accuracy, fitness for a particular purpose, or safety - either expressed or implied. All questions, complaints, issues, and claims related to files should be directed to the contributing author.

You assume all risk associated with downloading these files from this site.

You are solely responsible for protecting yourself against viruses, and backing up data, files and hardware used in conjunction with the files.

Matlab is a registered trademark of The Mathworks, Inc.