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 
00039 
00044   class Sine_Source {
00045   public:
00047     Sine_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00049     double operator()() { return sample(); }
00051     vec operator()(int n);
00053     mat operator()(int h, int w);
00054   protected:
00055   private:
00056     double sample();
00057     double m, A, theta, dtheta;
00058   };
00059 
00064   class Square_Source {
00065   public:
00067     Square_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00069     double operator()() { return sample(); }
00071     vec operator()(int n);
00073     mat operator()(int h, int w);
00074   protected:
00075   private:
00076     double sample();
00077     double m, A, theta, dtheta;
00078   };
00079 
00084   class Triangle_Source {
00085   public:
00087     Triangle_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00089     double operator()() { return sample(); }
00091     vec operator()(int n);
00093     mat operator()(int h, int w);
00094   protected:
00095   private:
00096     double sample();
00097     double m, A, theta, dtheta;
00098   };
00099 
00104   class Sawtooth_Source {
00105   public:
00107     Sawtooth_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00109     double operator()() { return sample(); }
00111     vec operator()(int n);
00113     mat operator()(int h, int w);
00114   protected:
00115   private:
00116     double sample();
00117     double m, A, theta, dtheta;
00118   };
00119 
00124   class Impulse_Source {
00125   public:
00127     Impulse_Source(double freq, double ampl=1.0, double inphase=0.0);
00129     double operator()() { return sample(); }
00131     vec operator()(int n);
00133     mat operator()(int h, int w);
00134   protected:
00135   private:
00136     double sample();
00137     double A, pos, dtheta;
00138   };
00139 
00144   class Pattern_Source {
00145   public:
00147     Pattern_Source(const vec &pattern, int start_pos=0);
00149     virtual ~Pattern_Source() { }
00151     double operator()() { return sample(); }
00153     vec operator()(int n);
00155     mat operator()(int h, int w);
00156   protected:
00157   private:
00158     double sample();
00159     int pos;
00160     vec pat;
00161     double mean, var;
00162   };
00163 
00164 } //namespace itpp
00165 
00166 #endif // #ifndef SOURCE_H
SourceForge Logo

Generated on Sat May 3 16:10:44 2008 for IT++ by Doxygen 1.5.5