← Back

Module filters

enum FilterType

Source: filters.joule:14

struct FirFilter

Source: filters.joule:31

fn new(coeffs: Vec<f64>) -> Self

Create FIR filter from coefficients

Source: filters.joule:38

fn design(

Source: filters.joule:44

fn differentiator(order: usize, window_type: WindowType) -> Self

Source: filters.joule:112

fn hilbert(order: usize, window_type: WindowType) -> Self

Source: filters.joule:137

fn filter(&self, signal: &Signal) -> Signal

Source: filters.joule:162

fn filtfilt(&self, signal: &Signal) -> Signal

Source: filters.joule:169

fn order(&self) -> usize

Get filter order

Source: filters.joule:186

fn frequency_response(&self, num_points: usize) -> Vec<(f64, f64)>

Source: filters.joule:192

struct IirFilter

Source: filters.joule:220

fn new(b: Vec<f64>, a: Vec<f64>) -> Self

Create IIR filter from transfer function coefficients

Source: filters.joule:229

fn butterworth(filter_type: FilterType, cutoff: f64, cutoff2: Option<f64>, order: usize) -> Self

Source: filters.joule:239

fn chebyshev1(filter_type: FilterType, cutoff: f64, order: usize, ripple_db: f64) -> Self

Source: filters.joule:271

fn first_order_lowpass(cutoff: f64) -> Self

Design first-order lowpass filter

Source: filters.joule:297

fn first_order_highpass(cutoff: f64) -> Self

Design first-order highpass filter

Source: filters.joule:308

fn biquad(

Design biquad (second-order section) filter

Source: filters.joule:319

fn notch(center_freq: f64, bandwidth: f64) -> Self

Design notch filter

Source: filters.joule:372

fn peaking_eq(center_freq: f64, bandwidth: f64, gain_db: f64) -> Self

Design peak/dip (parametric EQ) filter

Source: filters.joule:381

fn low_shelf(cutoff: f64, gain_db: f64, q: f64) -> Self

Design low shelf filter

Source: filters.joule:398

fn high_shelf(cutoff: f64, gain_db: f64, q: f64) -> Self

Design high shelf filter

Source: filters.joule:414

fn filter(&self, signal: &Signal) -> Signal

Source: filters.joule:431

fn filtfilt(&self, signal: &Signal) -> Signal

Source: filters.joule:454

fn is_stable(&self) -> bool

Check if filter is stable

Source: filters.joule:463

fn frequency_response(&self, num_points: usize) -> Vec<(f64, f64)>

Source: filters.joule:479

fn butterworth_lowpass_digital(poles: &[(f64, f64)], wc: f64) -> IirFilter

Source: filters.joule:516

fn butterworth_highpass_digital(poles: &[(f64, f64)], wc: f64) -> IirFilter

Source: filters.joule:556

fn butterworth_bandpass_digital(poles: &[(f64, f64)], wc1: f64, wc2: f64) -> IirFilter

Source: filters.joule:567

fn butterworth_bandstop_digital(poles: &[(f64, f64)], wc1: f64, wc2: f64) -> IirFilter

Source: filters.joule:580

fn chebyshev_lowpass_digital(poles: &[(f64, f64)], wc: f64, eps: f64) -> IirFilter

Source: filters.joule:586

fn convolve_poly(a: &[f64], b: &[f64]) -> Vec<f64>

Source: filters.joule:591

fn moving_average(signal: &Signal, window_size: usize) -> Signal

Source: filters.joule:613

fn exponential_moving_average(signal: &Signal, alpha: f64) -> Signal

Source: filters.joule:643

fn median_filter(signal: &Signal, window_size: usize) -> Signal

Source: filters.joule:661

fn test_fir_lowpass()

Source: filters.joule:687

fn test_iir_butterworth()

Source: filters.joule:698

fn test_filter_signal()

Source: filters.joule:704

fn test_moving_average()

Source: filters.joule:713