Given a set of fairly noisy input data (some of which represents regular "beats"), write a C/C+/Objective C function that will detect these beats/pulses over time and ignore the noise.
I have tried various approaches myself, including high pass filtering and envelope detection, but I cannot get it to work very well. Digital signal processing is not something I specialize in. :)
I need this complete within the next few hours.
Take a look at the example data here:
[login to view URL]~mag/[login to view URL]
[login to view URL]~mag/[login to view URL]
As the application runs, a new float will be fed into your function each time.
So for example, say I get a new float from the sensors every 1/10 of a second, I will call your function like this:
-(void) detect:(float)input;
your function with either return false for no beat or true if a beat has been detected.
I also need the beats to be detected as regular. So if an irregular beat is detected, it should be discarded (so I assume you would store 3-4 beats back and compare their regularily - then if a bad beat or one that doesn't fit the regular rhythm is detected, it is discarded and function returns false).
Note, you can use global variables and buffers if you wish, but understand that the sample data is just that - sample data. The input for this can vary.
Anyway questions, please ask.
Experts in Digital Signal Processing. Please let us know if you are OK with our budget and time frame. So we can send you our official proposal for this project. SI Team/
Hi, I have 7 years experience in DSP and embedded system. I need you to answer a few queries though. What is the sample rate of the data you have provided? I can send you a simulated results using MATLAB and i will send you the C code once you accept it.
Thanks for your consideration.
I got experience with signal processing using TI DSP's, dsPICs, Matlab and C. I understand that you have troubles detecting beats in that crappy data. Sorry for being that honest. I can help you for sure but I will need a lot of additional informaion, especially about the Hardware that produces this output. I made the experience that most of the times a simple change at the hardware eases the signal processing by 90% or more. Without any "a priory" knowledge which needs knowledge of the system i must confess that i can only guess the beats in your posted data even though humans should normally be able to see such stuff easily.
Even if a change to the hardware is impossible we can solve this but i need many more samples with beats marked by you for reference.