将分段信号分成不同的部分

时间:2016-06-09 05:32:15

标签: matlab signal-processing

我正在尝试分析并将滤波器应用于信号(测量)。问题是在记录测量值时,在2个时间戳之间,没有记录该值,因此用于记录这些测量值的程序只连接了这两个松散的末端,这对我的算法来说是一个问题。我想根据这种异常将信号分成多个部分。我需要自动执行此操作。

以下是这种异常的例证:

Abnormality of the signal

下面我有plot(diff(t))的照片:

Plot of diff of t

我想帮助检测这种异常并在此时切断信号。所以在我的例子中,信号将被分成3个部分。

Ps - 我的第一张图中有2个异常,我刚刚放大到1以正确显示

这是我到目前为止提出的代码:

a = diff(t);
[value, ind] = findpeaks(a,'thresold',0.5);
for i = 1:length(ind)
  T(i) = %not sure how to use here
end

使用高峰图片进行编辑:

1st peak of 2

ind的价值:[3557; 7550]

1 个答案:

答案 0 :(得分:0)

使用findpeaks函数怎么样?

以下是一个例子。

function getFruit(callback) {
    var result;

    result = "banana";

    // Make sure the callback is a function​
    if (typeof callback === "function") {
    // Call it, since we have confirmed it is callable​
        callback(result);
    }

    return result;
}

getFruit(function(result){
    alert(result);
});

结果如下。

enter image description here

为了找到索引,

var result;

function getFruit(callback) {
    result = "banana";

    // Make sure the callback is a function​
    if (typeof callback === "function") {
    // Call it, since we have confirmed it is callable​
        callback();
    }
}

getFruit(function(){
    alert(result);
});

此处,a=[0 0 0 0 0 1 0 0 0 0 1 0 0 0]; findpeaks(a,'threshold',0.5); 将是峰值指数。

在你的情况下,

[value, ind]=findpeaks(a,'threshold',0.5);