1
我想测量图中所示的的波峰/波峰之间的周期。如何测量波峰或低波之间的周期?
这是钙浓度在细胞中的振荡行为。峰值不一样,因此我需要计算每个波峰的峰值/低值,获得与峰值/低值相关的相应时间,找到相邻峰值/低值之间的差值。我已经存储了每次“0.01
”的钙浓度值。
任何人都可以建议我如何编码吗?我宁愿使用更小的代码行。
我想测量图中所示的的波峰/波峰之间的周期。如何测量波峰或低波之间的周期?
这是钙浓度在细胞中的振荡行为。峰值不一样,因此我需要计算每个波峰的峰值/低值,获得与峰值/低值相关的相应时间,找到相邻峰值/低值之间的差值。我已经存储了每次“0.01
”的钙浓度值。
任何人都可以建议我如何编码吗?我宁愿使用更小的代码行。
研究内置的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);
'findpeaks'和'diff'就像一个魅力一样工作。非常感谢@Sam – nashynash
不用担心,很高兴帮助! – Sam