Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SIRAS: Signal Processing Library for Rust

siras
use nalgebra::DVector;

extern crate siras;
use siras::filter_design::BandType;
use siras::lti::DiscreteTransferFunction;
use siras::signal_generator::generate_sine_wave;

fn main() {
    let sample_rate = 32000;
    let t = DVector::from_fn(sample_rate, |i, _| i as f64 / sample_rate as f64);

    let freq1 = 10.0;
    let freq2 = 100.0;
    let signal = generate_sine_wave(&t, freq1) + generate_sine_wave(&t, freq2);

    let order = 4;
    let dt = 1.0 / sample_rate as f64;
    let cutoff_freq = 20.0;

    let filter = DiscreteTransferFunction::butter(order, cutoff_freq, dt, BandType::LowPass);
    let filtered_signal = filter.filtfilt(&signal, &t);
}

Features

Filters

Butterworth Filter
siras siras siras
Bessel Filter
siras siras siras
Chebyshev Type I Filter
siras siras siras
Chebyshev Type II Filter
siras siras siras

FFT

FFT
siras

FFT (time domain -> frequency domain)

siras

IFFT (frequency domain -> time domain)

siras

About

SIRAS: Signal Processing Library for Rust

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages