rft/window/
hamming.rs

1use std::f64::consts::PI;
2
3use super::Function;
4use Precision;
5
6/// https://en.wikipedia.org/wiki/Window_function#Hamming_window
7pub struct Hamming;
8
9const ALPHA: Precision = 0.53836;
10const BETA:  Precision = 0.46164;
11
12const PI2: Precision = (PI * 2.0) as Precision;
13
14impl Function for Hamming {
15	fn compute(n: Precision, N: Precision) -> Precision {
16		ALPHA - BETA * ((PI2 * n) / (N - 1.0)).cos()
17	}
18}