擅长:python、mysql、java
<p>你可以利用移动窗口上信号的方差。
以下是一个示例(请参阅随附的图表,其中测试信号为红色,加窗方差为绿色,过滤信号为蓝色):</p>
<p><img src="https://i.stack.imgur.com/6A4x9.png" alt="simple example"/>:</p>
<p>测试信号生成:</p>
<pre><code>import numpy as np
X = np.arange(200) - 100.
Y = (np.exp(-(X/10)**2) + np.exp(-((np.abs(X)-50.)/2)**2)/3.) * np.cos(X * 10.)
</code></pre>
<p>计算移动窗口方差:</p>
^{pr2}$
<p>得到方差高的指标(这里我选择优于最大方差一半的标准方差。。。您可以根据您的情况进行调整):</p>
<pre><code>idx = np.where(variance > 0.5 * np.max(variance))
X_min = np.min(X[idx])
# -14.0
X_max = np.max(X[idx])
# 15.0
</code></pre>
<p>或过滤信号(将低方差点设为零)</p>
<pre><code>Y_modified = np.where(variance > 0.5 * np.max(variance), Y, 0)
</code></pre>