#![allow(non_snake_case)]
use super::config::*;
use anyhow::{bail, Result};
use ndarray::prelude::*;
fn linspace(nfft: usize) -> Vd {
Vd::linspace(0. , (nfft+1) as Flt, nfft)
}
fn hann(nfft: usize) -> Vd {
(linspace(nfft)*pi/(nfft as Flt)).sin()
}
fn hamming(nfft: usize) -> Vd {
let alpha = 25.0 / 46.0;
cos(2. * pi * linspace(nfft) / (nfft as Flt)) * alpha - (1. - alpha)
}
pub enum WindowType {
Hann,
Hamming,
}
trait Window {
fn get(w: WindowType, nfft: usize) -> Vd {
match w {
Hann => hann(nfft),
Hamming => hann(nfft),
_ => unreachable!{}
}
}
}