Home / Science / Engineering / Biomedical engineering / EMG envelope and fatigue analyserTool #681

EMG envelope, onset and fatigue analyser: RMS envelope, burst detection, median and mean frequency trend

Open or paste a surface EMG recording, band-pass and rectify it, get a moving RMS or low-pass envelope, find each contraction's onset and offset from a rest threshold, and follow muscle fatigue as the median and mean frequency fall in sliding Welch windows, with the slope. For study and research, not for diagnosis. Nothing is uploaded.

Keep it one tap away for everyday use.

Bookmark EMG envelope and fatigue analyser?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Open EMG
  2. Filter
  3. Bursts
  4. Fatigue
Nothing is uploadedWorks offline once open

EMG recording

One channel of surface EMG. Either one column of values at a fixed sample rate, or a time column in seconds plus value columns. Header rows are skipped. The example is made up: 32 seconds at 1000 Hz with five 4-second contractions whose spectrum slides down over time, as it does when a muscle tires. Up to 400,000 samples.

Surface EMG carries most of its power between about 20 and 450 Hz: the high-pass removes movement artefact, the low-pass removes noise above the muscle band (it must be below half the sample rate). Filters are second-order Butterworth run forwards and backwards. A notch rings for a fraction of a second, which smears onsets earlier, so use it only when hum is visible. Leave a cut-off empty to switch it off.

Envelope and bursts

The envelope follows the size of the muscle signal. A burst starts when the envelope rises above the rest level plus k standard deviations and ends when it falls back. Pick a quiet stretch with no contraction as the rest. Larger k ignores more noise but finds onsets a little later.

Fatigue (spectrum over time)

Each window's spectrum is a Welch average of Hann-windowed segments with 50 % overlap. The mean frequency (MNF) is the power-weighted average frequency; the median frequency (MDF) splits the power in half. Both are taken over the filter band. As a muscle tires, the action potentials slow and both fall; the slope of the line through them is the fatigue index.

Result

Bursts

Median and mean frequency over time

For study and research, not for diagnosis. Electrode placement, skin preparation, contraction force and cross-talk from nearby muscles all change these numbers; compare like with like. Your recording stays on this device.

Download

What it does

Surface electromyography (EMG) records the electrical activity of a muscle through the skin. This page turns a raw EMG trace into the numbers used in movement science, ergonomics and sports research:

  • Filtering: a band-pass (20 to 450 Hz by default) and an optional 50 or 60 Hz notch, run forwards and backwards so nothing shifts in time.
  • Envelope: a moving RMS (root mean square) over a window you choose, or the full-wave rectified signal smoothed by a low-pass filter (a “linear envelope”).
  • Onsets and offsets: a burst starts when the envelope rises above the rest level plus k standard deviations and ends when it falls back. Each burst gets its length, peak and mean envelope, and its iEMG (the area under the rectified signal).
  • Fatigue: the median frequency (MDF) and mean frequency (MNF) of the spectrum in sliding windows, with a straight-line trend. When a muscle tires during a sustained contraction, the spectrum shifts to lower frequencies and both fall.

For study and research, not for diagnosis.

How to use it

  1. Paste the samples or press Open a file (CSV, TSV, TXT or Excel). With one column, give the sample rate; with a time column in seconds, pick that layout. Choose the value column for files with several channels.
  2. Check the filter band. The low-pass must be below half the sample rate.
  3. Choose the envelope. 50 to 100 ms suits a moving RMS; 2 to 10 Hz suits a low-pass envelope.
  4. Give a rest stretch with no contraction. The threshold k is usually 2 or 3. Shortest burst drops brief noise spikes and join merges bursts split by a short dip.
  5. Set the window for the fatigue analysis (0.5 to 1 s is common) and the Welch segment (shorter segments give smoother but coarser spectra). Keep only windows inside a burst ticked, so rest periods do not pull the trend.
  6. Download the bursts and windows as CSV, or the report as an image, PDF or Word file.

Worked example

The example is a made-up 32-second EMG at 1000 Hz with five contractions of 4 seconds (starting at 2, 8, 14, 20 and 26 s). Its spectrum is built to slide down over time, like a tiring muscle. With the default settings the page finds all 5 bursts, with onsets at 1.982, 7.978, 13.981, 19.981 and 25.978 s (within 22 ms of the true times). Of the 63 one-second windows, 35 lie inside a burst. The median frequency falls from 145 Hz to 106 Hz, a slope of −1.42 Hz/s (R² = 0.704), which is −58.9 % per minute of the starting value. The mean frequency falls by −1.24 Hz/s. The iEMG grows from burst to burst because the made-up amplitude rises as fatigue sets in.

Tips

  • Fatigue slopes are only comparable at the same force, joint angle and electrode position.
  • A notch filter rings for a fraction of a second, which moves onsets earlier; use it only when hum is clearly present.
  • Dynamic movements change the spectrum for reasons other than fatigue; these measures are designed for steady (isometric) contractions.

FAQ

How is the median frequency found? The power in each frequency bin is added up from the bottom of the band; the median is where the sum reaches half the total, interpolated within the bin.

Why does the threshold use the envelope, not the raw signal? The raw EMG swings around zero; its envelope is a smooth measure of size, so one threshold works.

Is my recording uploaded? No. Everything runs on your device and works offline.

Where the numbers come from

  • Methods written from their standard textbook descriptions: Welch's averaged periodogram (Welch 1967), mean and median frequency of the EMG power spectrum and their fall with fatigue (De Luca 1997, The use of surface electromyography in biomechanics, Journal of Applied Biomechanics 13), onset by a baseline mean plus k standard deviations (Hodges and Bui 1996). No code or data copied.
  • Checked against SciPy and NumPy: scipy.signal.welch spectra to 1e-15, mean and median frequency in all 63 windows of the example to 1e-12 Hz, the moving RMS against numpy.convolve, the low-pass envelope against scipy.signal.sosfiltfilt, and the fatigue slope, intercept, R² and slope error against scipy.stats.linregress; burst onsets against the known burst times of the synthetic EMG (within 30 ms).
  • The example EMG is synthetic, made up by fibub from filtered random noise; it is not a recording of any person and no database recordings are used.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

Trend and anomaly analyser #138 Paste or open a time series (yearly, monthly or any steps) and test for a trend with Mann-Kendall, the Hamed-Rao autocorrelation correction or the seasonal test, get Sen's slope with its confidence interval, a Pettitt change point and anomalies from a baseline period. Publication plot maker #27 Paste columns or open a CSV or Excel file and get a clean scientific figure with error bars, sized for a journal column. Download vector SVG or PDF, or PNG at 300 or 600 dpi. Your data stays in your browser. ECG viewer and HRV #680 Open or paste a single-lead ECG, filter it, find the beats with the Pan-Tompkins method and get heart rate, an RR tachogram, time-domain HRV (SDNN, RMSSD, pNN50), a Lomb-Scargle spectrum with LF and HF power, and a Poincaré plot. For study and research, not for diagnosis. Nothing is uploaded. Drug release curve fitter #682 Paste cumulative drug release against time and fit the six classic release models at once, with parameters and their errors, R², adjusted R², AIC, the best model and what the Korsmeyer-Peppas exponent n says about the mechanism. Also fits first-order mass loss of a degrading biomaterial, with its half-life. Release kinetics only, no doses. 1D Schrödinger solver #923 Choose a textbook potential, type a formula or draw your own, and get the lowest energy levels and wavefunctions of the one-dimensional Schrödinger equation by the matrix (finite-difference) method, with the exact levels alongside for the box, harmonic oscillator, finite well, Morse, linear and Pöschl–Teller potentials. Adduct and neutral loss calculator #984 Type a formula or a neutral monoisotopic mass and get the m/z of 25 common electrospray adducts in positive and negative mode, the ions left after common neutral losses (water, ammonia, CO2, sugars, phosphate and your own), and match a list of observed m/z values within a ppm tolerance. With no molecule, it turns observed m/z values into candidate neutral masses.