$ luarocks install digitalfilter
This module provides some Digital Filters - Butterworth, Chebyschev and Bessel, in lowpass and highpass, also simplified bandpass and bandstop.
local DF = require 'digitalfilter' ;
local my_filter = DF.new_digitalfilter ({ --returns a closure
filtertype = 'butterworth',
order = 3,
shape = 'lowpass',
freq = 1000,
samplerate = 44100,
})
for i = 1,95 do
local u = (math.floor((i%16)/8 + 0.01)*2 - 1) -- square wave
local x = my_filter(u)
if i >= 80 then print('my_filter('..u..') \t=', x) end
end
Versions
Dependencies
lua >= 5.1, < 5.5