在MATLAB

时间:2016-05-03 02:56:21

标签: matlab signals signal-processing

我从信号中提取了所有峰值(最大值和最小值),现在有2个包含其电压值的向量和两个包含其索引的向量。

我想计算此信号中所有不同的峰 - 峰(最小值到最大值和最大值到最小值)值。最终,这是为了找到该信号的最大峰 - 峰值。因为信号漂移,我不被'允许'高通过滤它,这是我能想到找到这个值的唯一方法。然而,我正在摸索着实施它。

我很感激为构建此代码或其他想法以实现我的目标提供帮助。非常感谢。

以下是我的数据点示例。 PosVol是正峰值的电压和负峰值的NegVol。 <{1}}和PosInd分别是索引。

NegInd

1 个答案:

答案 0 :(得分:1)

我建议,为了获得所有 - 让我们说下降的侧翼 - 峰值到峰值,你迭代正面指数并做:

PeakPeakFalling = zeros(1,size(PosInd,2));
for ii=1:size(PosInd,2)
    neg_index = find(NegInd(1,:)>PosInd(1,ii),1);
    PeakPeakFalling(1,ii)=PosVol(1,ii)+NegVol(1,neg_index);
end

这将找到以下最小值的下一个索引,并使用它计算值的差异。

以同样的方式,你也可以构建PeakPeakRising向量,然后找到所有峰值到峰值的最大值。我假设NegVol值实际上是负电压。