IT++ Logo

source.h

Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SourceForge Logo

Generated on Wed Mar 2 2011 22:05:09 for IT++ by Doxygen 1.7.3