IT++ Logo Newcom Logo

source.h

Go to the documentation of this file.
00001 
00033 #ifndef SOURCE_H
00034 #define SOURCE_H
00035 
00036 #include <itpp/base/vec.h>
00037 
00038 
00039 namespace itpp {
00040 
00049   class Sine_Source {
00050   public:
00052     Sine_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00054     double operator()() { return sample(); }
00056     vec operator()(int n);
00058     mat operator()(int h, int w);
00059   protected:
00060   private:
00061     double sample();
00062     double m, A, theta, dtheta;
00063   };
00064 
00069   class Square_Source {
00070   public: 
00072     Square_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00074     double operator()() { return sample(); }
00076     vec operator()(int n);
00078     mat operator()(int h, int w);
00079   protected:
00080   private:
00081     double sample();
00082     double m, A, theta, dtheta;
00083   };
00084 
00089   class Triangle_Source {
00090   public:
00092     Triangle_Source(double freq, double mean=0.0, double ampl=1.0, double inphase=0.0);
00094     double operator()() { return sample(); }
00096     vec operator()(int n);
00098     mat operator()(int h, int w);
00099   protected:
00100   private:
00101     double sample();
00102     double m, A, theta, dtheta;
00103   };
00104 
00109   class Sawtooth_Source {
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   public:
00132     Impulse_Source(double freq, double ampl=1.0, double inphase=0.0);
00134     double operator()() { return sample(); }
00136     vec operator()(int n);
00138     mat operator()(int h, int w);
00139   protected:
00140   private:
00141     double sample();
00142     double A, pos, dtheta;
00143   };
00144 
00149   class Pattern_Source {
00150   public:
00152     Pattern_Source(const vec &pattern, int start_pos=0);
00154     virtual ~Pattern_Source() { }
00156     double operator()() { return sample(); }
00158     vec operator()(int n);
00160     mat operator()(int h, int w);
00161   protected:
00162   private:
00163     double sample();
00164     int pos;
00165     vec pat;
00166     double mean, var;
00167   };
00168 
00169 } //namespace itpp
00170 
00171 #endif // #ifndef SOURCE_H
SourceForge Logo

Generated on Thu Apr 19 14:20:36 2007 for IT++ by Doxygen 1.4.6