IT++ Logo Newcom Logo

itpp::Spread_1d Class Reference
[Digital Modulation]

Spreading of float symbols to float output. More...

#include <itpp/comm/spread.h>

List of all members.

Public Member Functions

 Spread_1d ()
 Constructor.
 Spread_1d (const vec &incode)
 Constructor.
void spread (const vec &symbols, vec &out)
 Spreading of signal return i out.
vec spread (const vec &symbols)
 Spreading of signal.
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.
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.
void set_code (const vec &incode)
 Set the spreading code used for spreading.
vec get_code ()
 Returns the spreading code used.
short get_period ()
 Get the period of the code (length of code vector).

Protected Attributes

vec code
 The spreading code.
short N
 The spreading factor.


Detailed Description

Spreading of float symbols to float output.

Spreading block for generation of 1-dimensional DS-CDMA signals Useful in the simulation of DS-CDMA systems on chip level or upsampled chip level.

Obeserve that the spreading is normalized so that the energy per bit is preserved before and after spreading (that is each symbol is multiplied with 1/sqrt(N)). Hence, for the multicode case the energy is normalized for one symbol (code) but the transmitted signal consist of a sum of several signals.

Four different classes exist:

For multicode transmission, that is each user uses several codes in parallel to transmit data, there exist

Example:

    #include "itpp/itcomm.h"

    int main() {
  
    //Generate the spreading code you want to use.
    vec spreading_code = "-1 1 -1 1";

    //Initiate th Spreading class
    Spread_1d spread_1d(spreading_code);

    //Generate the symbols to transmitt
    bvec transmitted_bits = randb(10);
    BPSK bpsk;
    vec transmitted_symbols = bpsk.modulate_bits(transmitted_bits);

    //Spread the symbols
    vec transmitted_signal = spread_1d.spread(transmitted_symbols);

    //Generate the received signal
    vec received_signal = transmitted_signal;
    
    //Despread the received signal
    vec received_symbols  = spread_1d.despread(received_signal,0);

    //demodulate the bits
    bvec received_bits = bpsk.demodulate_bits(received_symbols);
    
    }

Definition at line 102 of file spread.h.


Constructor & Destructor Documentation

itpp::Spread_1d::Spread_1d  )  [inline]
 

Constructor.

Definition at line 105 of file spread.h.

itpp::Spread_1d::Spread_1d const vec incode  ) 
 

Constructor.

Definition at line 41 of file spread.cpp.

References set_code().


Member Function Documentation

void itpp::Spread_1d::spread const vec symbols,
vec out
 

Spreading of signal return i out.

Definition at line 58 of file spread.cpp.

References code, and N.

Referenced by spread(), and itpp::Spread_2d::spread().

vec itpp::Spread_1d::spread const vec symbols  )  [inline]
 

Spreading of signal.

Definition at line 111 of file spread.h.

References spread().

void itpp::Spread_1d::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 at line 66 of file spread.cpp.

References code, itpp::floor(), and N.

Referenced by despread(), and itpp::Spread_2d::despread().

vec itpp::Spread_1d::despread const vec rec_signal,
int  timing
[inline]
 

Despreading of signal. timing is the start position of the first symbol, given in number of samples.

Definition at line 119 of file spread.h.

References despread().

void itpp::Spread_1d::set_code const vec incode  ) 
 

Set the spreading code used for spreading.

Definition at line 46 of file spread.cpp.

References code, N, and itpp::norm().

Referenced by itpp::Spread_2d::set_code(), and Spread_1d().

vec itpp::Spread_1d::get_code  ) 
 

Returns the spreading code used.

Definition at line 53 of file spread.cpp.

References code.

Referenced by itpp::Spread_2d::get_codeI(), and itpp::Spread_2d::get_codeQ().

short itpp::Spread_1d::get_period  )  [inline]
 

Get the period of the code (length of code vector).

Definition at line 126 of file spread.h.

References N.

Referenced by itpp::Spread_2d::get_period().


Member Data Documentation

vec itpp::Spread_1d::code [protected]
 

The spreading code.

Definition at line 129 of file spread.h.

Referenced by despread(), get_code(), set_code(), and spread().

short itpp::Spread_1d::N [protected]
 

The spreading factor.

Definition at line 131 of file spread.h.

Referenced by despread(), get_period(), set_code(), and spread().


The documentation for this class was generated from the following files:
SourceForge Logo

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