2015-10-22 24 views
1

我想测量图中所示的的波峰/波峰之间的周期。如何测量波峰或低波之间的周期?

enter image description here

这是钙浓度在细胞中的振荡行为。峰值不一样,因此我需要计算每个波峰的峰值/低值,获得与峰值/低值相关的相应时间,找到相邻峰值/低值之间的差值。我已经存储了每次“0.01”的钙浓度值。

任何人都可以建议我如何编码吗?我宁愿使用更小的代码行。

回答

1

研究内置的findpeaks函数,该函数可以返回信号中峰值的索引。

您可以通过首先对信号进行平方来找到信号中的低点。像这样的东西可以工作(我没有在MATLAB中尝试过,所以可能会有一些语法问题):

% Square the signal so that the lows become peaks 
signal = signal .^ 2; 

% Get the location of the peaks in terms of t (your time vector) 
[~, peaksAndLows] = findpeaks(signal,t) 

% Find the difference between consecutive peaks/lows 
periodsBetweenPeaksAndLows = diff(peaksAndLows); 
+0

'findpeaks'和'diff'就像一个魅力一样工作。非常感谢@Sam – nashynash

+0

不用担心,很高兴帮助! – Sam