online signal peak detection

5 views (last 30 days)
Rahim Yousefi
Rahim Yousefi on 15 Apr 2021
Commented: Rahim Yousefi on 15 Apr 2021
Hello,
I have a script for reading sensor data from a gas sensor. The sensors are connected to an Arduino, I read the data from Arduino through Matlab. Attached you can find my Matlab script. The sensor generates a signal which has a peak every 5 minutes. I want to detect the point where the signal starts to increase and the point where the signal starts to increase (the min and max value of the peak). I want to perform this online (real time). The method I perform for peak detection is: I check the last 6 values of the sensor and if there is a increase in the last three values, I detect a min value and if there is an increase of the last three values, I detect an max value (this part of the script starts from line 263). However this method is not accurate and doesn’t work well sometimes. Could anyone recommend a better way of peak detection?
I have also attached an excel file so you can see how the data of the sensor look like.
Thanks in advance

Answers (1)

Ahmed Redissi
Ahmed Redissi on 15 Apr 2021
If you have the Signal Processing Toolbox, try using the function "findpeaks". Here's how to use it:
  1 Comment
Rahim Yousefi
Rahim Yousefi on 15 Apr 2021
Thank you for your answer, but as I mentioned I want to perform an online (real time) peak detection. This is not possible with the Matlab signal processing toolbox.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!