如何有效平滑雜訊資料曲線?

Susan Sarandon
發布: 2024-10-20 15:58:29
原創
740 人瀏覽過

How to Effectively Smoothen Noisy Data Curves?

最佳化平滑雜訊曲線

考慮一個近似為的資料集:

import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x) + np.random.random(100) * 0.2
登入後複製

這包括一個近似為的資料集:

這包括20% 的變化。 UnivariateSpline 和移動平均線等方法有其限制。

Savitzky-Golay 過濾器

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x) + np.random.random(100) * 0.2
yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3

plt.plot(x,y)
plt.plot(x,yhat, color='red')
plt.show()
登入後複製
一個有效的解決方案是 scipy 中提供的 Savitzky-Golay 過濾器。它使用最小二乘迴歸來使用多項式估計小視窗中心的值。然後視窗移動以重複該過程,從而對每個點進行最佳化調整。

以上是如何有效平滑雜訊資料曲線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板