如何解决使用 Python 进行一维高斯平滑 - Sigma 等于滤波器长度?
我想平滑时间序列数据。为此,我想使用 Python。
现在我已经找到了函数 scipy.ndimage.gaussian_filter1d。
为此,必须传递数组和 sigma 值。
现在我的问题:
sigma 值是否等于过滤器长度? 我想对数据运行长度为 365 的过滤器。 那么将这个 sigma 值设置为 365 是正确的程序还是我混淆了事情?
解决方法
<style name="CNHRegistrationItem.Title" parent="RegistrationItem.Title">
<item name="android:text" >
<string>CNH definitiva\n<font size="10">(Carteira Nacional de Habilitação)</font></string>
</item>
</style>
定义您的高斯滤波器如何围绕其均值展开。您可以创建具有特定大小的高斯滤波器,如下所示。
sigma
这是 import numpy as np
import matplotlib.pyplot as plt
sigma1 = 3
sigma2 = 50
def gaussian_filter1d(size,sigma):
filter_range = np.linspace(-int(size/2),int(size/2),size)
gaussian_filter = [1 / (sigma * np.sqrt(2*np.pi)) * np.exp(-x**2/(2*sigma**2)) for x in filter_range]
return gaussian_filter
fig,ax = plt.subplots(1,2)
ax[0].plot(gaussian_filter1d(size=365,sigma=sigma1))
ax[0].set_title(f'sigma= {sigma1}')
ax[1].plot(gaussian_filter1d(size=365,sigma=sigma2))
ax[1].set_title(f'sigma= {sigma2}')
plt.show()
对高斯滤波器的影响。
稍后,您可以使用高斯滤波器convolve您的信号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。