From 88bd6307ee43f3c3609d5b2f49d440d285185765 Mon Sep 17 00:00:00 2001 From: ozpv <39195175+ozpv@users.noreply.github.com> Date: Mon, 18 May 2026 15:20:06 -0500 Subject: add window function parameter --- src/windowed_fft.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/windowed_fft.rs') diff --git a/src/windowed_fft.rs b/src/windowed_fft.rs index 3e4e648..2cdc471 100644 --- a/src/windowed_fft.rs +++ b/src/windowed_fft.rs @@ -5,10 +5,11 @@ use crate::{ window_function::{ - BlackmanHarrisWindow, HannWindow, RectangularWindow, Sine4Window, HammingWindow, + BlackmanHarrisWindow, HammingWindow, HannWindow, RectangularWindow, Sine4Window, WindowFunction, }, window_size::WindowSize, + window_type::WindowType, }; use num_complex::Complex; use realfft::{ComplexToReal, RealFftPlanner, RealToComplex}; @@ -56,14 +57,21 @@ impl WindowedRealFft { } } - pub fn window_function(&mut self, window_function: Box) {} + pub fn window_function(&mut self, window_type: &WindowType) { + self.input.clear(); + self.output.clear(); + + let window_function = window_type.new_function(&WindowSize::from(self.window_size)); + + self.window_function = window_function; + } pub fn window_size(&mut self, window_size: WindowSize) { if window_size == self.window_size.into() { return; } - self.window_function = Box::new(HannWindow::new(&window_size)); + self.window_function.resize(&window_size); self.window_size = window_size.inner(); self.forward = self.planner.plan_fft_forward(self.window_size); -- cgit v1.2.3