I had asked a question last night in regards to how to process my data (Noise rejection / feature extraction) but I have a more specific question now that I hope someone can answer.
As mentioned in my other post, I have a microphone based sensor to detect muscle activity in the lower leg during walking, however the data is contaminated by the thud made during heel strike. As both the muscle contraction and heel strike noise are pretty reproducible on each stride I was hoping I could use some sort of feature extraction method to filter my data.
I've been using CWT and I believe they could do what I intend based on my current results. I've been playing around with specific wavelets but the symlets 7 seems to be giving the best results. My hope is that the coefficients obtained by CWT will vary based on whether they're noise or contraction information.
All processing is done in MATLAB. I've obtained the CWT simply by:
CWTcoeffs = cwt(data, 1:128, 'sym7');
and the corresponding coefficients of noise/useful data seem to do what I want, but now trying to use this information to remove what I don't want is proving difficult.
I've also seen a MATLAB function of scal2frq which I hope to use to provide more frequency specific results. As I know, very roughly, what frequency bands I'm interested in I want to use this function to change the CWT scale, but not completely sure how. I believe it's done by:
s = [6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 100]; scale = scal2frq(s, 'sym7', 1/fs); CWTcoeffs = cwt(data, scale, 'sym7');
Which does produce results, but I'm not sure if it's correct.
Basically what I'm asking is if this method seems plausible, and if so how might I use the results to damp or remove the noise I'm not interested in.
EDIT: I should probably add some data! Here is someone walking in a straight line for 50 steps: https://www.dropbox.com/sh/jeoa8ll1leq8kbn/8jlEzbbW0R