00001 00030 #ifndef SOURCE_H 00031 #define SOURCE_H 00032 00033 #include <itpp/base/vec.h> 00034 00035 00036 namespace itpp 00037 { 00038 00040 00045 class Sine_Source 00046 { 00047 public: 00049 Sine_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0); 00051 double operator()() { return sample(); } 00053 vec operator()(int n); 00055 mat operator()(int h, int w); 00056 protected: 00057 private: 00058 double sample(); 00059 double m, A, theta, dtheta; 00060 }; 00061 00066 class Square_Source 00067 { 00068 public: 00070 Square_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0); 00072 double operator()() { return sample(); } 00074 vec operator()(int n); 00076 mat operator()(int h, int w); 00077 protected: 00078 private: 00079 double sample(); 00080 double m, A, theta, dtheta; 00081 }; 00082 00087 class Triangle_Source 00088 { 00089 public: 00091 Triangle_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0); 00093 double operator()() { return sample(); } 00095 vec operator()(int n); 00097 mat operator()(int h, int w); 00098 protected: 00099 private: 00100 double sample(); 00101 double m, A, theta, dtheta; 00102 }; 00103 00108 class Sawtooth_Source 00109 { 00110 public: 00112 Sawtooth_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0); 00114 double operator()() { return sample(); } 00116 vec operator()(int n); 00118 mat operator()(int h, int w); 00119 protected: 00120 private: 00121 double sample(); 00122 double m, A, theta, dtheta; 00123 }; 00124 00129 class Impulse_Source 00130 { 00131 public: 00133 Impulse_Source(double freq, double ampl = 1.0, double inphase = 0.0); 00135 double operator()() { return sample(); } 00137 vec operator()(int n); 00139 mat operator()(int h, int w); 00140 protected: 00141 private: 00142 double sample(); 00143 double A, pos, dtheta; 00144 }; 00145 00150 class Pattern_Source 00151 { 00152 public: 00154 Pattern_Source(const vec &pattern, int start_pos = 0); 00156 virtual ~Pattern_Source() { } 00158 double operator()() { return sample(); } 00160 vec operator()(int n); 00162 mat operator()(int h, int w); 00163 protected: 00164 private: 00165 double sample(); 00166 int pos; 00167 vec pat; 00168 double mean, var; 00169 }; 00170 00171 } //namespace itpp 00172 00173 #endif // #ifndef SOURCE_H
Generated on Tue Dec 6 2011 16:52:01 for IT++ by Doxygen 1.7.4