extracting data (peaks) from signal.

2 Ansichten (letzte 30 Tage)
David Mehr
David Mehr am 14 Mär. 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 Kommentare
Carlos
Carlos am 14 Mär. 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 am 14 Mär. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by