Measuring ECG on an oscilloscope

Human heartbeat captured by holding one input connector in each hand

Rejecting common mode noise

Almost every signal measured by an oscilloscope has some unwanted noise. When measuring small signals or connecting to high-impedance nodes, there are times when the noise can exceed the signal you wish to measure. Often the solution is to make a differential measurement.

Differential oscilloscopes such as the PicoScope 4444 have two balanced inputs per channel and measure the difference in signal between them. At the same time, they reject any noise present equally on both inputs. This allows you to make measurements that are impossible with a traditional single-ended oscilloscope.

In this example we capture a human heartbeat simply by holding one input connector in each hand. The techniques shown, however, apply to many different measurement situations found in electronics, audio and biomedical fields.

50 / 60 Hz mains hum on an oscilloscope

50 / 60 Hz mains hum from touching oscilloscope probe tips

Single-ended measurements

When an electrocardiogram (ECG) is performed for medical diagnostic purposes, a number of electrodes are connected to the patient's chest. You can also pick up a heartbeat signal by measuring the voltage between your hands, although this is of less diagnostic value. Gym equipment often makes use of this by displaying your pulse when you hold conductive handles.

The problem with making such measurements is that the signal that we want to capture is small (typically less than 1 mV) and is swamped by noise, mostly 50 or 60 Hz mains hum.  

Most oscilloscope users are familiar with seeing mains hum and in fact it's a quick way of checking the scope is working – just touch the tip of the oscilloscope probe to see if a signal is displayed. The waveform shows such a signal. Channel A (blue) is the signal from touching the tip of an oscilloscope probe with the left hand and channel B (red) is from the right hand.

The measurements at the bottom of the waveform show the level of noise to be 652 mV peak to peak. Somewhere in this noise is a heartbeat signal of less than 1 mV. 

50 Hz / 60 Hz noise pickup

Blue (channel A) and red (channel B) signals show mains noise pickup from touching scope probe tips. Purple math channel is A–B.

Pseudo-differential measurements

One technique many oscilloscope users will be familiar with is to create a pseudo-differential measurement by subtracting one channel from the other (A–B) to display only the difference. However, there are two significant problems with this technique:

  1. To capture the heartbeat signal (< 1 mV) you would like to be on one of the most sensitive ranges, but you are forced to set a much higher range as the sum of the noise and signal is over 600 mV pk-pk. Consider the effect this has when using an 8-bit oscilloscope (256 vertical steps) across a 1 V pk-pk measurement range. Each least-significant bit is just over 4 mV, so there is no chance of seeing the sub-millivolt signal.
  2. The two channels and two probes used are not exactly matched. Component tolerances and slightly different frequency responses mean that the common mode rejection ratio (CMRR) is at least ten times worse than when using a single differential channel.

The A–B signal shows 24 mV pk-pk of noise with a LSB of 4 mV. No amount of software filtering or resolution enhancement is going to reveal the sub-millivolt signal hidden within.

Oscilloscope common mode rejection (CMRR)

Channel A (blue) shows single ended measurement. Channel B (red) shows differential measurement. Noise pickup is over 200 times lower.

True differential measurements

If we now swap to using the PicoScope 4444 differential oscilloscope, the ability to reject the noise improves significantly. The blue trace (channel A) is a single-ended measurement captured by only touching one of the two inputs to each channel. This shows similar noise pickup to the previous waveform and again has to be captured on a ±500 mV full-scale range.

The red trace shows what happens when you hold both inputs in the same hand rather than just one input. The noise level picked up is now under 4 mV – an improvement of over 200 times!  Even better, you can now use a much more sensitive input range (±10 mV full scale).

Displaying the heartbeat (ECG) signal

With one probe held in each hand, the heartbeat signal becomes visible (top trace) but still has a lot of noise.

To remove high-frequency noise, we enabled the 100 kHz hardware bandwidth limiter. To remove the remaining mains pickup, we enabled the 20 Hz software lowpass filter. The lower trace now shows a clean heartbeat signal.

Heartbeat (ECG) with and without filtering

Heartbeat (ECG) with and without filtering