MT Tools/Time Series Noise Removal/testlmscancel.cpp

Go to the documentation of this file.
00001 #include <fstream>
00002 #include <iostream>
00003 #include <vector>
00004 #include <string>
00005 #include <algorithm>
00006 #include "LMSCanceller.h"
00007 #include "RLSCanceller.h"
00008 #include "ApplyFilter.h"
00009 #include "UniformRNG.h"
00010 #include "TimeSeriesComponent.h"
00011 #include "VecMat.h"
00012 namespace ublas = boost::numeric::ublas;
00013 using namespace std;
00014 
00015 
00016 int main()
00017 {
00018         
00019         
00020         const int filterlength = 2;
00021         const int inputsize = 2;
00022         const int outputsize = 1;
00023         const int maxiter = 1;
00024         const double mu = 0.2;
00025         LMSCanceller Filter(filterlength); 
00026         Filter.SetMu(mu);
00027         UniformRNG Random;      
00028         ApplyFilter Canceller(Filter);
00029         
00030         gplib::rvec currentinput(inputsize), currdesired(outputsize), currout(outputsize);
00031         TimeSeriesComponent Input1, Input2, Desired;
00032         Input1.GetData().assign(3*inputsize,0.0);
00033         Input2.GetData().assign(3*inputsize,0.0);
00034         Desired.GetData().assign(3*inputsize,0.0);
00035         Canceller.AddInputChannel(Input1);
00036         Canceller.AddInputChannel(Input2);
00037         Canceller.AddReferenceChannel(Desired);
00038         for (int iter = 0; iter < maxiter; ++iter)
00039         {
00040                 for (int i = 0; i < 3*inputsize; ++i)
00041                 {
00042                         Input1.GetData().at(i) = Random.GetNumber();
00043                         Input2.GetData().at(i) = Random.GetNumber();
00044                         Desired.GetData().at(i) = Random.GetNumber();
00045                 }
00046                 Canceller.FilterData();
00047                 cout << "Input1: ";
00048                 copy(Input1.GetData().begin(),Input1.GetData().end(),
00049                         ostream_iterator<double>(cout," "));
00050                 cout << endl;
00051                 cout << "Input2: ";
00052                 copy(Input2.GetData().begin(),Input2.GetData().end(),
00053                         ostream_iterator<double>(cout," "));
00054                 cout << endl;
00055                 cout << "Output: ";
00056                 copy(Canceller.GetOutChannels().front()->GetData().begin(),Canceller.GetOutChannels().front()->GetData().end(),
00057                         ostream_iterator<double>(cout," "));
00058                 cout << endl;
00059                 cout << "Desired: ";
00060                 copy(Desired.GetData().begin(),Desired.GetData().end(),
00061                         ostream_iterator<double>(cout," "));
00062                 cout << endl;
00063                 cout << "Eps: ";
00064                 copy(Canceller.GetEpsValues().front().begin(),Canceller.GetEpsValues().front().end(),
00065                         ostream_iterator<double>(cout," "));
00066                 cout << endl << endl;
00067         }
00068 }

Generated on Wed Jul 23 16:35:58 2008 for GPLIB++ by  doxygen 1.5.5