In this post, I showed you how to build a low cost EMG amplifier. While that amplifier design works perfectly fine, I mentioned that there were quite a few issues that could be improved upon. These include:
- Replacing the op-amp instrumentation amplifier with an instrumentation amplifier IC. Not only will this give better performance because the internal components are matched in the factory, but it reduces the part count as well.
- The dual-supply can be replaced with a single voltage supply if the EMG signal is biased about Vcc/2. This allows the circuit to be powered by a single battery rather than two, improving portability and weight.
- The rectification stage and the filtering can all be done in software, eliminating even more components.
I have implemented these changes into a new and improved EMG amplifier circuit.
EMG Amplifier V2
The new circuit is significantly simpler than the original version. Note that the circuit runs on a single +5V supply rather than +/- 9V like the old circuit. This allows the device to be powered from an Arduino or whatever supply your microcontroller is using.
The op-amp instrumentation amplifier has been replaced by the INA122 instrumentation amplifier IC. R1 controls the gain of the amplifier. Using a monolithic IC allows a much higher CMRR.
The LT1490 is a dual, rail-to-rail op-amp. One of the op-amps is configured as an artificial common to create a reference at 2.5V. This reference is fed into the REF pin on the instrumentation amplifier. The second op-amp is configured as an inverting amplifier with a gain of 200X. Note that the + input of the inverting amplifier is biased to 2.5V to allow the EMG signal to be amplified about this point.
I connected the amplifier to an Arduino Uno. The +5V from the Uno was used as the voltage supply with the GND pin connected to the ground of the EMG amplifier. SIG_OUT was connected to analog input A0. Below is a plot of SIG_OUT measured at 100 Hz. Notice how the signal is biased at half of the supply voltage.
To rectify the signal, I subtract 512 (since the ADC is 10 bits, 2.5V corresponds to (2^10)/ 2 = 512) and take the absolute value. Below is a plot of the rectified signal.
Finally, the signal is filtered using an exponential low pass filter. The exponential low pass filter takes on the form
where is the output of the filter, is the previous output of the filter and is the value measured from the EMG amplifier. Below is a plot showing the filtered, rectified signal super-imposed on the non-filtered, rectified signal. I choose . The value will depend on the sampling time and the amount of noise you find acceptable.
This new amplifier is a substantial improvement over the original. The part count is now 8 instead of 27, allowing the circuit to be miniaturized to the size of a few postage stamps if surface mount components were used.
For the moment, I am considering making a few more quality of life improvements to the circuit before I have some PCBs made. If I decide to do so, I will be sure to include some posts on the PCB design process.