| Crates.io | gaussfilt |
| lib.rs | gaussfilt |
| version | 0.1.3 |
| created_at | 2023-03-27 17:31:16.160674+00 |
| updated_at | 2023-04-04 21:04:51.806221+00 |
| description | Design and apply Gaussian filter for 1D data |
| homepage | |
| repository | https://github.com/qsib-cbie/ma-data-kit.git |
| max_upload_size | |
| id | 822322 |
| size | 16,640 |
gaussfiltgaussfilt is a no_std library that provides Gaussian filter design and application. Filters may be designed by a known sigma or a known cutoff frequency and sample rate. Orders 0 through 3 are supported.
Allocation is required for kernel design, and interfaces are generic on the num_traits: Float so there are are crate features for choice of "std" or "libm" support.
Here are a couple provided signatures:
design_gaussian_filter1d(sigma, order, truncate) -> alloc::Vec<F>design_gaussian_sigma_for_cutoff(cutoff, sample_rate) -> Fapply_gaussian_filter(signal: Iterator<F>, kernel: &[F], pad: bool) -> Iterator<F>Choose a desired cutoff, design a filter, filter some data:
use gaussfilt::*;
let signal = (0..1000).map(|x| x as f32);
let sigma = design_gaussian_sigma_for_cutoff(10., 100.0);
let filter = design_gaussian_filter1d(sigma, 0, 4.0);
let filtered = apply_gaussian_filter1d(signal, &filter, true);
let data = filtered.collect();