X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp diff --git a/interpretor/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp b/interpretor/preprocessor/faust-0.9.47mr3/benchmark/rms.dsp new file mode 100644 index 0000000..ac00f06 --- /dev/null +++ b/interpretor/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) ;