Struct First Order TptDesign
pub struct FirstOrderTptDesign { /* private fields */ }Expand description
Immutable CONTROL design: finite rate 1..768000 Hz, strictly positive cutoff below actual Nyquist and representable normalized ratio, gain/complement/pole. No endpoint nudges or coefficient repairs; transcendental design is explicit. Actual coefficient spectrum can differ from the requested cutoff after rounding.
use ravet_signal::{FirstOrderTptDesign, FirstOrderTptFilter, FirstOrderTptResponse};
let design = FirstOrderTptDesign::new(48000., 2000.).unwrap();
assert_eq!(design.magnitude_at(0., FirstOrderTptResponse::LowPass).unwrap(), 1.);
let mut filter = FirstOrderTptFilter::new(design);
let output = filter.process_sample(1.);
assert_eq!(output.low_pass, design.gain());
assert_eq!(filter.state(), 2. * design.gain());Implementations§
§impl FirstOrderTptDesign
impl FirstOrderTptDesign
pub fn new(rate: f64, cutoff_hz: f64) -> Result<Self, FilterError>
pub fn sample_rate(&self) -> f64
pub fn cutoff_hz(&self) -> f64
pub fn gain(&self) -> f64
pub fn magnitude_at(
&self,
f: f64,
response: FirstOrderTptResponse,
) -> Result<f64, FilterError>
pub fn magnitude_at( &self, f: f64, response: FirstOrderTptResponse, ) -> Result<f64, FilterError>
Actual-coefficient ideal LTI magnitude, normalized cycles/sample 0..0.5. This is not the floating recursive execution’s universal error bound.
pub fn quantize_f32(&self) -> Result<FirstOrderTptDesign32, FilterError>
pub fn quantize_f32(&self) -> Result<FirstOrderTptDesign32, FilterError>
Explicit actual native f32 gain/complement/pole validation. Metadata keeps the requested rate/cutoff; the new spectrum uses the rounded gain.
Trait Implementations§
§impl Clone for FirstOrderTptDesign
impl Clone for FirstOrderTptDesign
§fn clone(&self) -> FirstOrderTptDesign
fn clone(&self) -> FirstOrderTptDesign
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for FirstOrderTptDesign
§impl Debug for FirstOrderTptDesign
impl Debug for FirstOrderTptDesign
§impl PartialEq for FirstOrderTptDesign
impl PartialEq for FirstOrderTptDesign
impl StructuralPartialEq for FirstOrderTptDesign
Auto Trait Implementations§
impl Freeze for FirstOrderTptDesign
impl RefUnwindSafe for FirstOrderTptDesign
impl Send for FirstOrderTptDesign
impl Sync for FirstOrderTptDesign
impl Unpin for FirstOrderTptDesign
impl UnsafeUnpin for FirstOrderTptDesign
impl UnwindSafe for FirstOrderTptDesign
Blanket Implementations§
§impl<T> BorrowMut<T> for T
impl<T> BorrowMut<T> for T
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more