Emma Farago was awarded an Ontario Graduate Scholarship (OGS)

Matlab Library


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

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


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:

Chan ADC, Green GC, "Myoelectric control development toolbox", 30th Conference of the Canadian Medical & Biological Engineering Society, Toronto, Canada, M0100, 2007.

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


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


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


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:

Chan ADC, Hamdy MM, Badre A, Badee V, "Wavelet distance measure for person identification using electrocardiograms", IEEE Transactions on Instrumentation and Measurement, vol. 57, no. 2, pp. 248-253, 2008.


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


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)


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.