// Copyright 2026 MoonBit DSP Authors
// Apache-2.0 License
///|
fn main {
println("=== MoonBit DSP: FFT & Spectrum Analysis Demo ===")
let fs = 1000.0
let n = 128
let f0 = 150.0
let signal = Array::make(n, 0.0)
for i = 0; i < n; i = i + 1 {
let t = i.to_double() / fs
signal[i] = @cmath.sin(2.0 * @cmath.PI * f0 * t)
}
let hann = @window.WindowType::hann().generate(n)
@window.apply_window(signal, hann)
let spec = @fft.rfft(signal)
let dom_freq = @fft.find_dominant_frequency(spec, fs)
println("Generated 150.0 Hz Sine wave with Hann windowing.")
println("Detected dominant frequency: \{dom_freq} Hz")
}