iir_filters

Crates.ioiir_filters
lib.rsiir_filters
version0.1.3
sourcesrc
created_at2022-08-19 14:42:57.743919
updated_at2023-10-16 13:45:53.6889
descriptionA Rust re-implementation of some of scipy's digital filters.
homepage
repositoryhttps://github.com/annoybot/iir_filters
max_upload_size
id648737
size3,913,948
(annoybot)

documentation

README

iir_filters

A Rust re-implementation of some of scipy's digital filters.

Example:

use iir_filters::filter_design::FilterType;
use iir_filters::filter_design::butter;
use iir_filters::sos::zpk2sos;
use iir_filters::filter::DirectForm2Transposed;
use iir_filters::filter::Filter;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let order = 5;
    let cutoff_low = 1.0;
    let cutoff_hi= 10.0;
    let fs = 81.0;

    let zpk = butter(order, FilterType::BandPass(cutoff_low, cutoff_hi),fs)?;
    let sos = zpk2sos(&zpk, None)?;

    let mut dft2 = DirectForm2Transposed::new(&sos);
    
    let input:Vec<f64>  = vec![1.0, 2.0, 3.0];
    let mut output:Vec<f64> = vec![];
    
    for x in input.iter() {
        output.push( dft2.filter(*x) );
    }
    
    return Ok( () );
}

See: scipy.signal: butter()

⚠️ For now it only implements Butterworth filters, because that's all I'm interested in.

Commit count: 16

cargo fmt