IT++ Logo
source.h
Go to the documentation of this file.
1
29#ifndef SOURCE_H
30#define SOURCE_H
31
32#include <itpp/base/vec.h>
33#include <itpp/itexports.h>
34
35namespace itpp
36{
37
39
44class ITPP_EXPORT Sine_Source
45{
46public:
48 Sine_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0);
50 double operator()() { return sample(); }
52 vec operator()(int n);
54 mat operator()(int h, int w);
55protected:
56private:
57 double sample();
58 double m, A, theta, dtheta;
59};
60
65class ITPP_EXPORT Square_Source
66{
67public:
69 Square_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0);
71 double operator()() { return sample(); }
73 vec operator()(int n);
75 mat operator()(int h, int w);
76protected:
77private:
78 double sample();
79 double m, A, theta, dtheta;
80};
81
86class ITPP_EXPORT Triangle_Source
87{
88public:
90 Triangle_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0);
92 double operator()() { return sample(); }
94 vec operator()(int n);
96 mat operator()(int h, int w);
97protected:
98private:
99 double sample();
100 double m, A, theta, dtheta;
101};
102
107class ITPP_EXPORT Sawtooth_Source
108{
109public:
111 Sawtooth_Source(double freq, double mean = 0.0, double ampl = 1.0, double inphase = 0.0);
113 double operator()() { return sample(); }
115 vec operator()(int n);
117 mat operator()(int h, int w);
118protected:
119private:
120 double sample();
121 double m, A, theta, dtheta;
122};
123
128class ITPP_EXPORT Impulse_Source
129{
130public:
132 Impulse_Source(double freq, double ampl = 1.0, double inphase = 0.0);
134 double operator()() { return sample(); }
136 vec operator()(int n);
138 mat operator()(int h, int w);
139protected:
140private:
141 double sample();
142 double A, pos, dtheta;
143};
144
149class ITPP_EXPORT Pattern_Source
150{
151public:
153 Pattern_Source(const vec &pattern, int start_pos = 0);
155 virtual ~Pattern_Source() { }
157 double operator()() { return sample(); }
159 vec operator()(int n);
161 mat operator()(int h, int w);
162protected:
163private:
164 double sample();
165 int pos;
166 vec pat;
167 double mean, var;
168};
169
170} //namespace itpp
171
172#endif // #ifndef SOURCE_H
Impulse source.
Definition: source.h:129
double operator()()
Return a single sample.
Definition: source.h:134
Pattern source.
Definition: source.h:150
double operator()()
Return a single sample.
Definition: source.h:157
virtual ~Pattern_Source()
Destructor.
Definition: source.h:155
Sawtooth-wave source.
Definition: source.h:108
double operator()()
Return a single sample.
Definition: source.h:113
Sine-wave source.
Definition: source.h:45
double operator()()
Return a single sample.
Definition: source.h:50
Square-wave source.
Definition: source.h:66
double operator()()
Return a single sample.
Definition: source.h:71
Triangle-wave source.
Definition: source.h:87
double operator()()
Return a single sample.
Definition: source.h:92
double mean(const vec &v)
The mean value.
Definition: misc_stat.cpp:36
itpp namespace
Definition: itmex.h:37
Templated Vector Class Definitions.
SourceForge Logo

Generated on Sun Jun 5 2022 21:26:42 for IT++ by Doxygen 1.9.3