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}
}
Metadata
Release files for OneEuroFilter 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oneeurofilter-0.2.1.tar.gz | 4.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| OneEuroFilter-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.8 kB
Release files / oneeurofilter-0.2.1.tar.gz
| Download URL | oneeurofilter-0.2.1.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5eff592a4f68f86334fe7a9dcf65fde69b11bceba759e8c19de044bcfd803b2a
|
|
BLAKE2b-256 checksum How to use checksums |
8b9f7e1be35a8dff589acd1162d7e61f0255554582405a20eecbfb040d9cb0c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / OneEuroFilter-0.2.1-py3-none-any.whl
| Download URL | OneEuroFilter-0.2.1-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a81db3155ea51c4f920762de04e888909d17e2af87d9e544947d20740f70fae8
|
|
BLAKE2b-256 checksum How to use checksums |
0963c394722ae007dc4edbee52588f0e27a59b1d9739721c249777eb67f30446
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|