7 个不稳定版本
0.4.2 | 2022年1月14日 |
---|---|
0.4.1 | 2021年4月22日 |
0.4.0 | 2021年1月16日 |
0.3.1 | 2020年4月10日 |
0.1.0 | 2018年7月24日 |
#501 in 嵌入式开发
每月2,158次下载
用于 7 crate
40KB
873 行
biquad
biquad
是一个 #![no_std]
库,用于创建基于 双二次滤波器 的信号处理一阶和二阶IIR滤波器。该库提供了直接形式1 (DF1) 和直接形式2转置 (DF2T) 的实现,其中DF1在需要在线重新调谐滤波器时更适用,因为它具有在重新调谐时引入最小失真的特性,而DF2T最适合用于静态滤波器,因为它具有最低的计算复杂度和最佳的数值稳定性。
该crate实现了针对 f32
和 f64
的双二次滤波器。
示例
fn main() {
use biquad::*;
// Cutoff and sampling frequencies
let f0 = 10.hz();
let fs = 1.khz();
// Create coefficients for the biquads
let coeffs = Coefficients::<f32>::from_params(Type::LowPass, fs, f0, Q_BUTTERWORTH_F32).unwrap();
// Create two different biquads
let mut biquad1 = DirectForm1::<f32>::new(coeffs);
let mut biquad2 = DirectForm2Transposed::<f32>::new(coeffs);
let input_vec = vec![0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
let mut output_vec1 = Vec::new();
let mut output_vec2 = Vec::new();
// Run for all the inputs
for elem in input_vec {
output_vec1.push(biquad1.run(elem));
output_vec2.push(biquad2.run(elem));
}
}
文档
许可证
根据您的选择,许可协议为
-
Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
-
MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您有意提交给作品以包含的任何贡献,根据Apache-2.0许可证的定义,将按照上述方式双重许可,没有任何附加条款或条件。
依赖关系
~435KB