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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for OneEuroFilter-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07b8ab17c55456e86416a9d1440f7b93c563fec9dd284d32e48549b39c13e77b |
|
MD5 | 44c32357d6de2f8b293211c1ffb9a2ac |
|
BLAKE2b-256 | a00c1b8af0afc34727494e1fc90b674d349abd31c4eb2a6e9a306be576705c15 |