Hi!
I'm making a heart rate measuring app (where you record blood level changes in the fingertip with the rear camera) for fun on the iPhone, but am having trouble setting up a bandpass filter that rejects frequencies outside the 30 - 200 bpm range.
In its current state, the filter works just fine when measuring typical resting heart rates (60~80 bpm) but is unable to measure heart rates that exceed 100 bpm. From what I can tell (with my very limited knowledge of DSP) these higher frequencies get rejected by the bandpass filter and instead I get very low readings such as 40~50 bpm when it should be above or around 100 bpm.
I used this site to generate the Butterworth filter:
The settings I used are the following:
- Filter order: 4
- Sample rate, in samples per second: 30 (I'm capturing at 30 fps)
- Corner frequency 1: 0.5 Hz (30 bpm, e.g. 30 / 60)
- Corner frequency 2: 3.33333333 Hz (200bpm, e.g. 100 / 60)
My question is, what am I doing wrong? What values should I input to achieve what I want?
I apologize in advance if I'm missing something very obvious, but I did do my best searching around for answers but couldn't really make much sense of what I found since my math skills are not up to par.
Thanks!