X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/1059e1cc0c2ecfa237406949aa26155b6a5b9154..66f23d4fabf89ad09adbd4dfc15ac6b5b2b7da83:/interpreter/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp diff --git a/interpreter/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp b/interpreter/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp new file mode 100644 index 0000000..ac00f06 --- /dev/null +++ b/interpreter/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp @@ -0,0 +1,20 @@ +// Root Mean Square of n consecutive samples +RMS(n) = square : mean(n) : sqrt ; + +// the square of a signal +square(x) = x * x ; + +// the mean of n consecutive samples of a signal +// uses fixpoint to avoid the accumulation of +// rounding errors +mean(n) = float2fix : integrate(n) : fix2float : /(n); + +// the sliding sum of n consecutive samples of a signal +integrate(n,x) = x - x@n : +~_ ; + +// convertion between float and fix point +float2fix(x) = int(x*(1<<20)); +fix2float(x) = float(x)/(1<<20); + +// Root Mean Square of 1000 consecutive samples +process = RMS(1000) ;