1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//! Digital filter design and representation.
//!
//! This module provides comprehensive digital filter functionality:
//!
//! # Filter Representations
//!
//! - [`TransferFunction`]: Numerator/denominator polynomials (b, a)
//! - [`ZpkFilter`]: Zeros, poles, and gain
//! - [`SosFilter`]: Second-order sections (cascaded biquads)
//!
//! # IIR Filter Design
//!
//! Classic IIR filter design using bilinear transform:
//! - [`butter`](IirDesignAlgorithms::butter) - Butterworth (maximally flat)
//! - [`cheby1`](IirDesignAlgorithms::cheby1) - Chebyshev Type I (passband ripple)
//! - [`cheby2`](IirDesignAlgorithms::cheby2) - Chebyshev Type II (stopband ripple)
//! - [`ellip`](IirDesignAlgorithms::ellip) - Elliptic (sharpest transition)
//! - [`bessel`](IirDesignAlgorithms::bessel) - Bessel-Thomson (linear phase)
//!
//! # FIR Filter Design
//!
//! - [`firwin`](FirDesignAlgorithms::firwin) - Windowed sinc method
//! - [`firwin2`](FirDesignAlgorithms::firwin2) - Frequency sampling method
//!
//! # Conversions
//!
//! Convert between representations via [`FilterConversions`]:
//! - `tf2zpk`, `zpk2tf` - Transfer function ↔ ZPK
//! - `tf2sos`, `sos2tf` - Transfer function ↔ SOS
//! - `zpk2sos`, `sos2zpk` - ZPK ↔ SOS
//!
//! # Example
//!
//! ```
//! # use numr::runtime::cpu::{CpuClient, CpuDevice};
//! use solvr::signal::filter::{IirDesignAlgorithms, FilterType, FilterOutput};
//! # let device = CpuDevice::new();
//! # let client = CpuClient::new(device.clone());
//! // Design a 4th-order Butterworth lowpass filter at 0.2 * Nyquist
//! let result = client.butter(4, &[0.2], FilterType::Lowpass, FilterOutput::Sos, &device)?;
//! # let sos = result.as_sos().unwrap();
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```
// Re-export types
pub use ;
// Re-export traits
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use StateSpaceConversions;
pub use ;