CEBL  2.1
Filter.hpp
Go to the documentation of this file.
1 /*
2 * CEBL : CSU EEG Brain-Computer Interface Lab
3 *
4 * Author: Jeshua Bratman - jeshuabratman@gmail.com
5 *
6 * This file is part of CEBL.
7 *
8 * CEBL is free software; you can redistribute it and/or modify it.
9 * We only ask that if you use our code that you cite the source in
10 * your project or publication.
11 *
12 * EEG Group (www.cs.colostate.edu/eeg)
13 * Department of Computer Science
14 * Colorado State University
15 *
16 */
17 
26 #ifndef FILTER_H
27 #define FILTER_H
28 
29 #include "Plugin.hpp"
30 #include "cppR/cppR.hpp"
31 #include <vector>
32 
33 
34 namespace CEBL
35 {
36  class Filter : public Plugin
37  {
38  protected:
39  //filter created
40  bool created;
41 
42  public:
43  Filter() { created = false; }
44  virtual ~Filter() {}
45  bool isTrained() { return created; }
46 
47 
48  //-----------------------------------------------------------------
49  //Function to override below VVVVV
50 
51  virtual void make(const ublas::matrix<double> &,
52  const std::vector<int> &) = 0;
53 
54  virtual ublas::matrix<double> apply(const ublas::matrix<double> &)
55  const = 0;
56 
57  virtual ublas::matrix<double> extract(const ublas::matrix<double> &) = 0;
58 
59  virtual ublas::matrix<double> getFilterMatrix() = 0;
60  };
61 }
62 
63 #endif