find peaks

does anyone know, is there code for finding peaks in a matrix that have noise? (because of this noise i cant use findpeaks command in matlab) the noise has so small amplitude in compared with amplitude of main wave. thanks

Réponses (4)

Fangjun Jiang
Fangjun Jiang le 31 Août 2011

1 vote

If you have noise in the data, you need to filter it first. See:
doc filter

4 commentaires

mohammad
mohammad le 31 Août 2011
i funded some code for analog with noise that finds peaks of these waves, but i need these cods for discrete form (matrix)
Fangjun Jiang
Fangjun Jiang le 1 Sep 2011
FILTER is One-dimensional digital filter.
FILTER2 is Two-dimensional digital filter
mohammad
mohammad le 1 Sep 2011
thanks dear Fangjun, in doc filter there is a parameter b=numerator coefficient vector, how must i calculate this?
Fangjun Jiang
Fangjun Jiang le 5 Sep 2011
You don't. That is the parameter to specify your designed filter. See the example in the doc.

Connectez-vous pour commenter.

James Tursa
James Tursa le 31 Août 2011

1 vote

You might try one of the FEX submissions, e.g. PeakFinder by Nate Yoder:

2 commentaires

mohammad
mohammad le 1 Sep 2011
dear James thanks for replying
my file is a .xls file. could i send this for you and help how can i use this code for this file?
Fangjun Jiang
Fangjun Jiang le 1 Sep 2011
use xlsread() to read the data into MATLAB workspace first, then apply filter.

Connectez-vous pour commenter.

Honglei Chen
Honglei Chen le 1 Sep 2011

1 vote

Hi Mohammad,
Can you explain why you cannot use findpeaks? I think you can specify MinPeakHeight to avoid false alarm from the noise.
Thanks.

1 commentaire

mohammad
mohammad le 1 Sep 2011
hi dear Hongle,thanks for replying
when i use findpeaks, because of noise it gives me 1000 peaks but the matrix has only 5 0r 10 desire peaks, and when i want to sort these peaks and gather 5 or 10 biggest at the first of sorting, again because of noise it gives the biggest peaks and some values (for 4 or 9 others peaks) around that biggest peak. i designed some filters for this but aren't accurate. i saw some nice codes for finding peaks of analog signals with noise but my data is in matrix and discrete form. i think there are some accurate codes for matrix form, saving my time.

Connectez-vous pour commenter.

Harry MacDowel
Harry MacDowel le 5 Sep 2011

0 votes

Sometimes identifying the noise would be a good start. Try Allan Variance method.
Good luck!

Question posée :

le 31 Août 2011

Community Treasure Hunt

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

Start Hunting!

Translated by