Skip to content

Commit 4065cd5

Browse files
authored
Merge pull request #14 from wizenink/bugfix/periodic_windows
Use formulas for periodic windows
2 parents 29968ce + 23c1bf4 commit 4065cd5

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -348,22 +348,22 @@ fn generate_window<T: Float + FromPrimitive>(window_type: WindowType, size: usiz
348348
let half = T::from(0.5).unwrap();
349349
let one = T::one();
350350
let i_t = T::from(i).unwrap();
351-
let size_m1 = T::from(size - 1).unwrap();
352-
half * (one - (two * pi * i_t / size_m1).cos())
351+
let size_t = T::from(size).unwrap(); // Use N, not N-1 for periodic window
352+
half * (one - (two * pi * i_t / size_t).cos())
353353
})
354354
.collect(),
355355
WindowType::Hamming => (0..size)
356356
.map(|i| {
357357
let i_t = T::from(i).unwrap();
358-
let size_m1 = T::from(size - 1).unwrap();
359-
T::from(0.54).unwrap() - T::from(0.46).unwrap() * (two * pi * i_t / size_m1).cos()
358+
let size_t = T::from(size).unwrap(); // Use N, not N-1 for periodic window
359+
T::from(0.54).unwrap() - T::from(0.46).unwrap() * (two * pi * i_t / size_t).cos()
360360
})
361361
.collect(),
362362
WindowType::Blackman => (0..size)
363363
.map(|i| {
364364
let i_t = T::from(i).unwrap();
365-
let size_m1 = T::from(size - 1).unwrap();
366-
let angle = two * pi * i_t / size_m1;
365+
let size_t = T::from(size).unwrap(); // Use N, not N-1 for periodic window
366+
let angle = two * pi * i_t / size_t;
367367
T::from(0.42).unwrap() - T::from(0.5).unwrap() * angle.cos()
368368
+ T::from(0.08).unwrap() * (two * angle).cos()
369369
})

0 commit comments

Comments
 (0)