00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "Normalize.h"
00020
00021 using std::ostringstream;
00022 using namespace Marsyas;
00023
00024 Normalize::Normalize(mrs_string name):MarSystem("Normalize",name)
00025 {
00026 }
00027
00028 Normalize::~Normalize()
00029 {
00030 }
00031
00032 MarSystem*
00033 Normalize::clone() const
00034 {
00035 return new Normalize(*this);
00036 }
00037
00038 void
00039 Normalize::myProcess(realvec& in, realvec& out)
00040 {
00041 mrs_real rms = 0.0;
00042 mrs_natural t,o;
00043
00044 for (t = 0; t < inSamples_; t++)
00045 {
00046 rms = 0.0;
00047
00048 for (o=0; o < inObservations_; o++)
00049 {
00050 rms += (in(o,t) * in(o,t));
00051 }
00052 rms = sqrt(rms);
00053
00054 for (o=0; o < inObservations_; o++)
00055 {
00056 out(o,t) = in(o,t) / rms;
00057 }
00058 }
00059 }