4个版本
0.1.3 | 2023年4月4日 |
---|---|
0.1.2 | 2023年3月27日 |
0.1.1 | 2023年3月27日 |
0.1.0 | 2023年3月27日 |
#1297 in 数学
每月下载量:207
在2个crates中使用(通过sci-rs)
17KB
301 行
高斯滤波:gaussfilt
gaussfilt
是一个no_std
库,提供高斯滤波器设计和应用。可以通过已知的sigma或已知的截止频率和采样率来设计滤波器。支持0到3的阶数。
内核设计需要分配,接口在num_traits: Float
上是通用的,因此有选择“std”或“libm”支持的crate功能。
这里有一些提供的签名
design_gaussian_filter1d(sigma,order,truncate) -> alloc::Vec<F>
design_gaussian_sigma_for_cutoff(cutoff,sample_rate) ->F
apply_gaussian_filter(signal: Iterator<F>,kernel: &[F],pad: bool) -> Iterator<F>
示例用法
选择一个期望的截止频率,设计一个滤波器,对一些数据进行滤波
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();
依赖项
~215KB