extracting data (peaks) from signal.

2 次查看(过去 30 天)
David Mehr
David Mehr 2013-3-14
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 个评论
Carlos
Carlos 2013-3-14
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 2013-3-14
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.

请先登录,再进行评论。

回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by