2

我有一个由方脉冲(+ 一些噪声)组成的信号,这是它的一小部分:

在此处输入图像描述

我寻找一种有效且稳健的方法来计算我有多少脉冲。

这是我到目前为止所做的:

幅度有点嘈杂,但 SNR 很好,我可以阈值:

data = data>1;

每个脉冲的长度可能是嘈杂的,所以我忽略它并使用diff, 来获得导数(+ 和 -),找出有多少非零元素,然后除以 2(因为每个脉冲有 2 个导数峰值)。

dd=diff(data);

num_of_pulses=length(find(diff(dd)))/2

这是最好的方法吗?我被告知不要使用diff,因为它可能太吵了......

4

1 回答 1

2

根据您对数据的描述,我认为这将起作用。

numberOfPulses = nnz(diff(data > 1) > 0)

您可以使用 可靠地找到脉冲样本data > 1,然后使用diff() > 0查找从无脉冲到脉冲的转换,最后nnz()对它们进行计数。

于 2013-02-26T22:18:13.437 回答