IT++ Logo
spread.h
Go to the documentation of this file.
1
29#ifndef SPREAD_H
30#define SPREAD_H
31
32#include <itpp/base/vec.h>
33#include <itpp/base/mat.h>
34#include <itpp/itexports.h>
35
36namespace itpp
37{
38
100{
101public:
105 Spread_1d(const vec &incode);
107 void spread(const vec &symbols, vec &out);
109 vec spread(const vec &symbols) { vec out; spread(symbols, out); return out; }
113 void despread(const vec &rec_signal, vec &out, int timing);
117 vec despread(const vec &rec_signal, int timing)
118 { vec out; despread(rec_signal, out, timing); return out; }
120 void set_code(const vec &incode);
122 vec get_code();
124 int get_period() { return N; }
125protected:
127 vec code;
129 int N;
130};
131
153{
154public:
158 Spread_2d(const vec &incodeI, const vec &incodeQ);
160 void spread(const cvec &symbols, cvec &out);
162 cvec spread(const cvec &symbols) { cvec out; spread(symbols, out); return out; }
166 void despread(const cvec &rec_signal, cvec &out, int timing);
170 cvec despread(const cvec &rec_signal, int timing)
171 { cvec out; despread(rec_signal, out, timing); return out; }
173 void set_code(const vec &incodeI, const vec &incodeQ);
175 vec get_codeI();
177 vec get_codeQ();
179 int get_period() { return spreadI.get_period(); }
180protected:
185};
186
200{
201public:
205 Multicode_Spread_1d(const mat &incodes);
207 vec spread(const vec &symbols);
209 vec despread(const vec &receivedsignal, int timing);
211 void set_codes(const mat &incodes);
213 mat get_codes();
215 int get_period() { return N; }
217 int get_nocodes() { return L; }
218protected:
220 mat codes;
222 int L;
224 int N;
225};
226
248{
249public:
253 Multicode_Spread_2d(const mat &incodesI, const mat &incodesQ);
255 cvec spread(const cvec &symbols);
257 cvec despread(const cvec &receivedsignal, int timing);
264 void set_codes(const mat &incodesI, const mat &incodesQ);
266 mat get_codesI();
268 mat get_codesQ();
270 int get_period() { return mcspreadI.get_period(); }
271protected:
276};
277
278} // namespace itpp
279
280#endif // #ifndef SPREAD_H
General array class.
Definition array.h:105
Multicode spreading of float symbols.
Definition spread.h:200
int get_period()
Returns the spreading factor.
Definition spread.h:215
int L
The number of multi-codes.
Definition spread.h:222
int N
The spreading factor.
Definition spread.h:224
Multicode_Spread_1d()
Constructor.
Definition spread.h:203
int get_nocodes()
Returns the number of multi-codes used.
Definition spread.h:217
mat codes
The spreading codes used size ( )
Definition spread.h:220
Multicode spreading of complex symbols to complex output.
Definition spread.h:248
Multicode_Spread_1d mcspreadI
Definition spread.h:274
Multicode_Spread_2d()
Constructor.
Definition spread.h:251
int get_period()
Returns the spreading factor.
Definition spread.h:270
Spreading of float symbols to float output.
Definition spread.h:100
vec despread(const vec &rec_signal, int timing)
Despreading of signal. timing is the start position of the first symbol, given in number of samples.
Definition spread.h:117
int N
The spreading factor.
Definition spread.h:129
vec code
The spreading code.
Definition spread.h:127
Spread_1d()
Constructor.
Definition spread.h:103
int get_period()
Get the period of the code (length of code vector).
Definition spread.h:124
vec spread(const vec &symbols)
Spreading of signal.
Definition spread.h:109
Spreading of complex symbols to complex output.
Definition spread.h:153
Spread_1d spreadI
Definition spread.h:183
cvec spread(const cvec &symbols)
Spreading of signal.
Definition spread.h:162
Spread_2d()
Constructor.
Definition spread.h:156
int get_period()
Get the period of the code (length of code vector).
Definition spread.h:179
cvec despread(const cvec &rec_signal, int timing)
Despreading of signal. timing is the start position of the first symbol, given in number of samples.
Definition spread.h:170
Matrix Class Definitions.
itpp namespace
Definition itmex.h:37
Templated Vector Class Definitions.
SourceForge Logo

Generated on Mon Jun 10 2024 11:49:22 for IT++ by Doxygen 1.9.8