extracting data (peaks) from signal.

1 view (last 30 days)
David Mehr
David Mehr on 14 Mar 2013
So i have a wav file of me playing my guitar. I have smoothed it, and computed the derivative of it so i can see the 'attack point' of each note if you will.
^There is my plot of the smooth signal, the red points are the data i want to aquire (x and y value is preferable). How would i do this, I assume the find peak function, some sort of threshold?
if you zoom in on the graph:
You see why its a little more complicated. It doesnt have to be 100% accurate but i need to roughly know when in relation to time each new note is hit (approx).
Any ideas HUGELY welcomed. and if there is anything i can do for you in return just let me know :D
Thanks
  2 Comments
Carlos
Carlos on 14 Mar 2013
I've had the same problem, but in a much easier case. Have you tried something like?
[pks,locs]=findpeaks(data,'minpeakdistance',5e4);
In your case minpeakdistance should have a value like 5e4.
David Mehr
David Mehr on 14 Mar 2013
Believe me i have tried this, using a boundary like this works sometimes but the drastic changes in notes take place over 3 or 4 elements, i was thinking of maybe implementing something that looks at the difference in height of several elements?
Bit of a lost cause really to try and find something so general for such obscure data.

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!