2

我已阅读以下问题:这里

我正在尝试做的是获取一个信号(.wav 音频文件),其中包含来自不同蝙蝠物种的呼叫。这是信号的图形表示:

在此处输入图像描述

到目前为止我所做的是:

1)强调信号

2) 压缩信号

这是我绘制的输出:

在此处输入图像描述

我需要删除不值得考虑的信号。目前,信号是一维表示,在分离完成后,信号将是一个仅包含调用的 2D 表示,因此我可以对每个调用进行分析。

这是我建议的方法:

1) 将信号拆分为:256x100 的块(因此它们重叠)

2)计算每个块的RMS(均方根)

3) 将 (2) 与阈值进行比较,如果该区块值得考虑,则可以将其归类为看涨期权。

但问题是这样的:

1) 将信号分成 256x100 的块是否会覆盖呼叫,从而在计算 RMS 时使一些呼叫丢失?

2)因此,我如何选择合适的阈值?找到信号中的峰值会是一个准确的假设吗?

我希望有一个人可以帮助我 :)

4

1 回答 1

0

如果您使用的是 matlab,我建议您使用中值滤波器 - medfilt1()。这将允许您删除异常值,这是您在此处尝试执行的操作。您可以设置您想要的窗口大小,并将值设置为每个窗口的中值,如果您没有异常值,该值应该接近实际值。

如果数据过于复杂,您可能需要考虑 6 sigma 方法,在该方法中,您可以计算方差并删除超出 +-3 标准偏差的数据点,而不是计算 RMS。

于 2013-09-23T11:04:14.083 回答