transfer_function 0.1.2

Transfer functions in s- and z-domain
Documentation
pub mod transfer_function;

pub use self::transfer_function::*;

#[cfg(test)]
mod tests {
    use num::Complex;

    use crate::{TfS, TransferFunctionS, TransferFunctionZ};

    #[test]
    fn it_works() {
        let f_n = 2000.0;
        let omega_n = f_n*std::f32::consts::TAU;

        let tf = (TfS::S + omega_n).inv()*omega_n;
        let tfz = tf.to_z(44100.0);

        const N: usize = 1000;
        let h: Vec<Complex<f32>> = (0..N).map(|n| {
            let omega = (n as f32)/(N as f32)*std::f32::consts::PI;
            tfz.tf_fourier(omega)
        }).collect();
        let h_str: Vec<String> = h.iter().map(|hn| hn.norm().to_string()).collect();
        println!("{}", h_str.join(", "))
    }
}