具有任何参数的 Savitsky-Golay 滤波器的系数计算器的 Python 实现。
项目描述
Savitsky-Golay 滤波器系数计算器
此存储库包含 Savitsky-Golay 滤波器系数计算的 python 实现。此实现基于论文General Least Squares Smoothing And Differentiation By The Convolution Method中的 Pascal 实现。我需要在 python 中访问滤波器的系数,我希望这个 repo 对某人有用。
安装
使用此计算器没有依赖性。要安装只需运行:
pip install savgol-calculator
用法
该脚本使用起来非常简单。这是帮助消息:
usage: savgol.py [-h] -ws WINDOW_SIZE [-o ORDER] [-s SMOOTHING] [-t OFFSET]
Generate Savitsky-Golay filter coefficients for different parameters.
optional arguments:
-h, --help show this help message and exit
-ws WINDOW_SIZE, --window_size WINDOW_SIZE
Window size of the filter
-o ORDER, --order ORDER
Order of the fit of the filter
-s SMOOTHING, --smoothing SMOOTHING
Smoothing parameter. 0:polynomial smoothing, 1:first derivative, 2:second derivative, ...
-t OFFSET, --offset OFFSET
Offset from the center point. 0:middle point, -window_size/2:last point, window_size/2 first point
例如,要获得窗口大小为 5、线性多项式拟合且没有偏移(使用中心点)的滤波器系数:
python -m SGCC --window_size 5 --order 1 --smoothing 0 --offset 0
作为另一个例子,要获得窗口大小为 101 的滤波器系数,三次多项式拟合,使用最后一个点并计算一阶导数:
python -m SGCC --window_size 101 --order 3 --smoothing 1 --offset -50
要获得应用程序中的系数:
from SGCC.savgol import get_coefficients
# Compute the same coefficients as the examples above
coeffs = get_coefficients(smoothing=0,order=1,window_size=5,offset=0)
coeffs = get_coefficients(smoothing=1,order=3,window_size=101,offset=-50)
该函数get_coefficients返回一个包含计算系数的列表。
配置
这是每个参数的描述,取自此处。
-
窗口大小,用于估计的点数。这里,m 是在所讨论的点的每一侧使用的点数。因此,例如,如果 m = 3,则使用所讨论的点加上两侧的三个点,因此在计算估计时总共使用了 7 个点。
-
平滑,要估计的参数,取以下值: 0 表示平滑 1 表示一阶导数(梯度) 2 表示二阶导数 等
-
order,多项式拟合的阶数,具体而言:1 表示线性(直线)拟合 2 表示二次拟合 3 表示三次拟合等
-
offset,距中心点的偏移量。通常在所讨论的点的两侧使用相同数量的点。但是,这在一系列读数的开始和结束时是不可能的。对于这些情况,给出了偏离中心点的系数。偏移量 t 为 0 表示该点的估计值,-1 表示前一个点,-(half_window_size) 表示第一个点,等等。
测试
要运行最少的测试,只需运行:
python -m unittest test
项目详情
关
savgol_calculator -1.0.5-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | dd0db764ea9322b593f04e8bafbed383a205ae125ef4330f795e30aceaa69c7e |
|
| MD5 | bb71c80cfcb27a27a6fadbb2126a701b |
|
| 布莱克2-256 | 638e57840aa4eae19ed2f0e5a9bea649bfa8169f162008a69adf78e140216b4f |