【发布时间】:2014-07-05 10:59:37
【问题描述】:
嗨 python 爱好者!
我目前正在为研究目的使用信号过滤,并决定使用 SciPy。没什么特别的,只是日常工作的自动化。
所以,这里是代码
from scipy.signal import medfilt
print(medfilt([2,6,5,4,0,3,5,7,9,2,0,1], 5))
但问题是返回的序列计算错误
SciPy: [ 2. 4. 4. 4. 4. 4. 5. 5. 5. 2. 1. 0.]
Me : [ 5. 4.5 4. 4. 4. 4. 5. 5. 5. 2. 1.5 1.]
似乎是,包的开发人员搞砸了一个细节。当孔径(SciPy 中的内核)大于要分析的窗口时,还有另一个过滤规则。
例如,kernel=5[2, 6, 5] 的过滤子序列的中位数为 5 而不是 SciPy 计算的 2,不是吗?同样,如果kernel=5 子序列[2,6,5,4] 的中位数是5 和4,我们需要取它们之间的平均值,所以中位数是4.5。
谁能解释一下在这种情况下谁得到了正确的结果?
【问题讨论】: