AUDIO
Source snapshot · 12 October 2026

API reference / ravet_signal::ChebyshevDesign

Struct ChebyshevDesign 

pub struct ChebyshevDesign { /* private fields */ }
Expand description

Fixed16-section f64 design, LP/HP order1..32 or band total even order2..32. CONTROL allocation-free design checks finite arithmetic/gains and strict Jury stability; there are no coefficient, frequency or ripple repairs. Extreme unrepresentable margins reject. Actual response inspection is CONTROL work.

Implementations§

§

impl ChebyshevDesign

pub fn new( kind: ChebyshevKind, response: ChebyshevResponse, rate: f64, order: usize, ) -> Result<Self, FilterError>

Prewarp the edge(s), transform prototype poles and finite/infinite zeros, and bilinear-map into stable real sections. Type I even prototype degree retains DC gain10^(-ripple/20), with pass peaks1; odd degree has DC1. Type II prototype DC1 and finite stop notches; even far-stop limit is 10^(-attenuation/20), odd limit0. These parity rules apply after frequency transforms, so Type II endpoints must not be assumed Butterworth zeros.

pub fn lowpass_spec( family: ChebyshevType, rate: f64, pass_hz: f64, stop_hz: f64, rp: f64, atten: f64, ) -> Result<Self, FilterError>

LP automatic edge/order selection: finite0<Rp<As<=300dB,Rp<=120dB, 0<pass<stop<rate/2. Type I derives rippleRp; Type II attenuationAs. Start at analytic minimum, choose its admissible warped-edge geometric midpoint and verify actual rounded supplied-edge amplitudes against both strict requested bounds. Failed/unrepresentable candidates retry through order32, otherwise reject. Report actual kind/edge/order. Nominal ripple shape and supplied-edge verification are distinct from continuous interval certification or a search of every representable f64 edge.

pub fn highpass_spec( family: ChebyshevType, rate: f64, pass_hz: f64, stop_hz: f64, rp: f64, atten: f64, ) -> Result<Self, FilterError>

High-pass equivalent of Self::lowpass_spec, stop_hz<pass_hz.

pub fn kind(&self) -> ChebyshevKind

Actual prototype family and ripple/attenuation parameter.

pub fn response(&self) -> ChebyshevResponse

Actual edge(s), including those selected from specifications.

pub fn order(&self) -> usize

Total digital order; band prototype degree is half this.

pub fn stages(&self) -> &[BiquadCoefficients]

Active normalized sections in deterministic processing order.

pub fn magnitude_at(&self, f: f64) -> Result<f64, FilterError>

Actual rounded-section linear amplitude at finite normalized0..=0.5.

Trait Implementations§

§

impl Clone for ChebyshevDesign

§

fn clone(&self) -> ChebyshevDesign

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · §

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for ChebyshevDesign

§

impl Debug for ChebyshevDesign

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
§

impl PartialEq for ChebyshevDesign

§

fn eq(&self, other: &ChebyshevDesign) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · §

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
§

impl StructuralPartialEq for ChebyshevDesign

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.