IT++
4.3.1
Toggle main menu visibility
itpp
comm
spread.h
Go to the documentation of this file.
1
28
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
36
namespace
itpp
37
{
38
99
class
ITPP_EXPORT
Spread_1d
100
{
101
public
:
103
Spread_1d
() { }
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; }
119
120
void
set_code(
const
vec &incode);
122
vec get_code();
124
int
get_period
() {
return
N
; }
125
protected
:
127
vec
code
;
129
int
N
;
130
};
131
152
class
ITPP_EXPORT
Spread_2d
153
{
154
public
:
156
Spread_2d
() { }
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; }
172
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(); }
180
protected
:
183
Spread_1d
spreadI
,
spreadQ
;
185
};
186
199
class
ITPP_EXPORT
Multicode_Spread_1d
200
{
201
public
:
203
Multicode_Spread_1d
() { }
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
; }
218
protected
:
220
mat
codes
;
222
int
L
;
224
int
N
;
225
};
226
247
class
ITPP_EXPORT
Multicode_Spread_2d
248
{
249
public
:
251
Multicode_Spread_2d
() { }
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(); }
271
protected
:
274
Multicode_Spread_1d
mcspreadI
,
mcspreadQ
;
276
};
277
278
}
// namespace itpp
279
280
#endif
// #ifndef SPREAD_H
itpp::Multicode_Spread_1d
Multicode spreading of float symbols.
Definition
spread.h:200
itpp::Multicode_Spread_1d::get_period
int get_period()
Returns the spreading factor.
Definition
spread.h:215
itpp::Multicode_Spread_1d::L
int L
The number of multi-codes.
Definition
spread.h:222
itpp::Multicode_Spread_1d::N
int N
The spreading factor.
Definition
spread.h:224
itpp::Multicode_Spread_1d::Multicode_Spread_1d
Multicode_Spread_1d()
Constructor.
Definition
spread.h:203
itpp::Multicode_Spread_1d::get_nocodes
int get_nocodes()
Returns the number of multi-codes used.
Definition
spread.h:217
itpp::Multicode_Spread_1d::codes
mat codes
The spreading codes used size ( ).
Definition
spread.h:220
itpp::Multicode_Spread_2d
Multicode spreading of complex symbols to complex output.
Definition
spread.h:248
itpp::Multicode_Spread_2d::mcspreadI
Multicode_Spread_1d mcspreadI
Definition
spread.h:274
itpp::Multicode_Spread_2d::Multicode_Spread_2d
Multicode_Spread_2d()
Constructor.
Definition
spread.h:251
itpp::Multicode_Spread_2d::get_period
int get_period()
Returns the spreading factor.
Definition
spread.h:270
itpp::Multicode_Spread_2d::mcspreadQ
Multicode_Spread_1d mcspreadQ
Definition
spread.h:274
itpp::Spread_1d
Spreading of float symbols to float output.
Definition
spread.h:100
itpp::Spread_1d::despread
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
itpp::Spread_1d::N
int N
The spreading factor.
Definition
spread.h:129
itpp::Spread_1d::despread
void despread(const vec &rec_signal, vec &out, int timing)
Despreading of signal. timing is the start position of the first symbol, given in number of samples.
Definition
spread.cpp:64
itpp::Spread_1d::code
vec code
The spreading code.
Definition
spread.h:127
itpp::Spread_1d::Spread_1d
Spread_1d()
Constructor.
Definition
spread.h:103
itpp::Spread_1d::get_period
int get_period()
Get the period of the code (length of code vector).
Definition
spread.h:124
itpp::Spread_1d::spread
vec spread(const vec &symbols)
Spreading of signal.
Definition
spread.h:109
itpp::Spread_2d
Spreading of complex symbols to complex output.
Definition
spread.h:153
itpp::Spread_2d::spreadI
Spread_1d spreadI
Definition
spread.h:183
itpp::Spread_2d::despread
void despread(const cvec &rec_signal, cvec &out, int timing)
Despreading of signal. timing is the start position of the first symbol, given in number of samples.
Definition
spread.cpp:103
itpp::Spread_2d::spread
cvec spread(const cvec &symbols)
Spreading of signal.
Definition
spread.h:162
itpp::Spread_2d::Spread_2d
Spread_2d()
Constructor.
Definition
spread.h:156
itpp::Spread_2d::get_period
int get_period()
Get the period of the code (length of code vector).
Definition
spread.h:179
itpp::Spread_2d::despread
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
itpp::Spread_2d::spreadQ
Spread_1d spreadQ
Definition
spread.h:183
mat.h
Matrix Class Definitions.
itpp
itpp namespace
Definition
itmex.h:37
vec.h
Templated Vector Class Definitions.
Generated by
1.17.0