extracting data (peaks) from signal.

2 vues (au cours des 30 derniers jours)
David Mehr
David Mehr le 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 commentaires
Carlos
Carlos le 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 le 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.

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by