I'm attempting to input a heart rate signal into my iPhone via the microphone jack. I need to pass the signal through a passive high-pass filter to remove the DC offset before inputting it in to the iPhone.

Circuit diagram

At first, I tried to use a passive high-pass filter with a 1uF capacitor and a 100k Ohm resistor, since I needed the cutoff frequency to be very low. The signal I measured matched my heartbeat.

Graph 1: Circuit 1 Signal out

It turns out, however, that the iPhone checks for a "microphone" via impedance matching; the circuit must have a resistance of ~1k Ohm for the iPhone to detect a microphone. Given this, I made what I thought to be a high-pass filter equivalent to my previous one, except with a 100uF capacitor and a 1k resistor. According to the math, they should behave the same.

The signal I measured instead had very large magnitude spikes that were periodic but not in time (by any ratio) with my heartbeat.

Graph 2: Circuit 2 Signal out

These data were acquired when the circuit was not connected to the iPhone, see notes for details

What might be the reason for this behavior? And are there any suggestions for achieving the behavior I want with a ~1k Ohm resistor ? I'd greatly appreciate any help!


1) For data acquisition, I am collecting the data via an Arduino Uno. The x-axis of the graphs represent the sample number, and the samples are collected every 2ms. The analog input of the Arduino reads a voltage between 0-5V, and converts it into an integer from 0 to 1023.

2) The Arduino isn't the most accurate method of data acquisition, but it's very cost-efficient and should be good enough for these purposes.

3) The iPhone mic input might have an internal high-pass filter of ~30Hz, so this might all be a moot point, but I am still curious why I would get this behavior. This should be a relatively simple circuit!

  • 1
    \$\begingroup\$ Signal you are seeing O/C is almost certainly AC mains pickup. || If iPhone is looking for a DC 1k and not AC then a high value inductor to ground across input will provide DC path. This is going to need to be largish inductance wise (100 mH probably far too low). | Eliminating Mains pickup is necessary. It's somewhat surprising that original cct did not have the same effect. Knowing what the source is in max detail would max help max goodness of answer. If you have DC offset you can use it to power a micropower active filter. Even a 1 transistor high pass will probably work wonders. \$\endgroup\$
    – Russell McMahon
    Commented Jan 21, 2014 at 23:43

1 Answer 1


You correctly reduced the impedance seen from the iPhone from 100k to 1k, and you kept the RC constant the same by increasing capacitance by a factor of 100.

However, you are now requiring 100 times as much current to flow across the resistor to get the same levels you saw before. It is unlikely that the unspecified source can drive that much current from the pulse measurement

Recall that sources need to be much lower impedance than their loads to drive them without significant distortion of the original signal. Typically bioengineering sources (like the pulse) are very high impedance, because the body simply does not produce that much energy.

The solution for driving a low impedance load from a high impedance source is to use an operational amplifier. These have very high input impedances (so avoid affecting sensitive circuits) but have very low output impedances (so can drive low impedance loads).

I think restoring the original RC combo, and then adding a voltage following opamp driving the iPhone 1K load will solve your problem.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.