1€ filter (One Euro Filter)
Project description
1€ filter
Provides a python implementation for the 1€ filter.
Install
pip install OneEuroFilter --upgrade
Minimal example
from OneEuroFilter import OneEuroFilter
config = {
'freq': 120, # Hz
'mincutoff': 1.0, # Hz
'beta': 0.1,
'dcutoff': 1.0
}
f = OneEuroFilter(**config)
# First parameter is the value to filter
# the second parameter is the current timestamp in seconds
filtered = f(2.1, 0)
Doc
class OneEuroFilter.OneEuroFilter.OneEuroFilter(freq: float, mincutoff: float = 1.0, beta: float = 0.0, dcutoff: float = 1.0)
Bases: object
filter(x: float, timestamp: float = None)
Filters a noisy value.
- Parameters:
- x (float) – Noisy value to filter.
- timestamp (float*,* optional) – timestamp in seconds.
- Returns: the filtered value
- Return type: float
reset()
Resets the internal state of the filter.
setBeta(beta: float)
Sets the Beta parameter.
- Parameters: beta (float) – Parameter to reduce latency (> 0).
setDerivateCutoff(dcutoff: float)
Sets the dcutoff parameter.
- Parameters: dcutoff (float) – Used to filter the derivates. 1 Hz by default. Change this parameter if you know what you are doing.
setFrequency(freq: float)
Sets the frequency of the input signal.
- Parameters: freq (float) – An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available.
- Raises: ValueError – If one of the frequency is not >0
setMinCutoff(mincutoff: float)
Sets the filter min cutoff frequency.
- Parameters: mincutoff (float) – Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter.
- Raises: ValueError – If one of the frequency is not >0
setParameters(freq: float, mincutoff: float = 1.0, beta: float = 0.0, dcutoff=1.0)
Sets all the parameters of the filter.
- Parameters:
- freq (float) – An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available.
- mincutoff (float*,* optional) – Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter.
- beta (float*,* optional) – Parameter to reduce latency (> 0).
- dcutoff (float*,* optional) – Used to filter the derivates. 1 Hz by default. Change this parameter if you know what you are doing.
- Raises: ValueError – If one of the parameters is not >0
Related publication
@inproceedings{10.1145/2207676.2208639,
author = {Casiez, G\'{e}ry and Roussel, Nicolas and Vogel, Daniel},
title = {1 € Filter: A Simple Speed-Based Low-Pass Filter for Noisy Input in Interactive Systems},
year = {2012},
isbn = {9781450310154},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2207676.2208639},
doi = {10.1145/2207676.2208639},
pages = {2527–2530},
numpages = {4},
keywords = {noise, jitter, lag, precision, filtering, responsiveness, signal},
location = {Austin, Texas, USA},
series = {CHI '12}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
oneeurofilter-0.2.1.tar.gz
(4.8 kB
view hashes)
Built Distribution
Close
Hashes for OneEuroFilter-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a81db3155ea51c4f920762de04e888909d17e2af87d9e544947d20740f70fae8 |
|
MD5 | 9fbff00498c47efb81c2c4effaa93bf0 |
|
BLAKE2b-256 | 0963c394722ae007dc4edbee52588f0e27a59b1d9739721c249777eb67f30446 |