dsp: constructor style
This commit is contained in:
parent
fdae9d54e8
commit
7748d8eb54
@ -5,8 +5,8 @@ pub struct Accu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Accu {
|
impl Accu {
|
||||||
pub fn new(state: i32, step: i32) -> Accu {
|
pub fn new(state: i32, step: i32) -> Self {
|
||||||
Accu { state, step }
|
Self { state, step }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,9 +15,9 @@ impl Complex<i32> {
|
|||||||
/// Complex::<i32>::from_angle(-1 << 30); // -pi/2
|
/// Complex::<i32>::from_angle(-1 << 30); // -pi/2
|
||||||
/// ```
|
/// ```
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn from_angle(angle: i32) -> Complex<i32> {
|
pub fn from_angle(angle: i32) -> Self {
|
||||||
let (c, s) = cossin(angle);
|
let (c, s) = cossin(angle);
|
||||||
Complex(c, s)
|
Self(c, s)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return the absolute square (the squared magnitude).
|
/// Return the absolute square (the squared magnitude).
|
||||||
|
@ -19,7 +19,7 @@ impl Vec5 {
|
|||||||
///
|
///
|
||||||
/// # Returns
|
/// # Returns
|
||||||
/// 2nd-order IIR filter coefficients in the form [b0,b1,b2,a1,a2]. a0 is set to -1.
|
/// 2nd-order IIR filter coefficients in the form [b0,b1,b2,a1,a2]. a0 is set to -1.
|
||||||
pub fn lowpass(f: f32, q: f32, k: f32) -> Vec5 {
|
pub fn lowpass(f: f32, q: f32, k: f32) -> Self {
|
||||||
// 3rd order Taylor approximation of sin and cos.
|
// 3rd order Taylor approximation of sin and cos.
|
||||||
let f = f * 2. * PI;
|
let f = f * 2. * PI;
|
||||||
let fsin = f - f * f * f / 6.;
|
let fsin = f - f * f * f / 6.;
|
||||||
@ -31,7 +31,7 @@ impl Vec5 {
|
|||||||
let a1 = (2. * fcos / a0) as _;
|
let a1 = (2. * fcos / a0) as _;
|
||||||
let a2 = ((alpha - 1.) / a0) as _;
|
let a2 = ((alpha - 1.) / a0) as _;
|
||||||
|
|
||||||
Vec5([b0, 2 * b0, b0, a1, a2])
|
Self([b0, 2 * b0, b0, a1, a2])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
use super::{iir_int::{IIR, Vec5}, Accu, Complex};
|
use super::{
|
||||||
|
iir_int::{Vec5, IIR},
|
||||||
|
Accu, Complex,
|
||||||
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Copy, Clone, Default, Deserialize, Serialize)]
|
#[derive(Copy, Clone, Default, Deserialize, Serialize)]
|
||||||
@ -10,10 +13,8 @@ pub struct Lockin {
|
|||||||
impl Lockin {
|
impl Lockin {
|
||||||
/// Create a new Lockin with given IIR coefficients.
|
/// Create a new Lockin with given IIR coefficients.
|
||||||
pub fn new(ba: Vec5) -> Self {
|
pub fn new(ba: Vec5) -> Self {
|
||||||
let mut iir = IIR::default();
|
Self {
|
||||||
iir.ba = ba;
|
iir: IIR { ba, ..Default::default() },
|
||||||
Lockin {
|
|
||||||
iir,
|
|
||||||
state: [Vec5::default(); 2],
|
state: [Vec5::default(); 2],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,8 @@ impl RPLL {
|
|||||||
///
|
///
|
||||||
/// Returns:
|
/// Returns:
|
||||||
/// Initialized RPLL instance.
|
/// Initialized RPLL instance.
|
||||||
pub fn new(dt2: u8) -> RPLL {
|
pub fn new(dt2: u8) -> Self {
|
||||||
RPLL {
|
Self {
|
||||||
dt2,
|
dt2,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
@ -107,7 +107,7 @@ mod test {
|
|||||||
|
|
||||||
impl Harness {
|
impl Harness {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Harness {
|
Self {
|
||||||
rpll: RPLL::new(8),
|
rpll: RPLL::new(8),
|
||||||
dt2: 8,
|
dt2: 8,
|
||||||
shift_frequency: 9,
|
shift_frequency: 9,
|
||||||
|
Loading…
Reference in New Issue
Block a user