diff options
-rw-r--r-- | fft.lua | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -2,8 +2,6 @@ --- @module applause --- -- TODO: --- Windowing --- Jupyter Notebook -- Documentation local bit = require "bit" local ffi = require "ffi" @@ -302,3 +300,18 @@ function Hamming(samples) return samples end + +-- Also called Hann +function Hanning(samples) + assert(type(samples) == "table") + if samples.is_a_stream then samples = samples:totable() end + + local cos = math.cos + local pi2 = 2*math.pi + + for i = 1, #samples do + samples[i] = samples[i]*(1 - cos((pi2*i)/(#samples-1)))/2; + end + + return samples +end |