IT++ Logo
Public Member Functions | Protected Attributes | List of all members
itpp::Pulse_Shape< T1, T2, T3 > Class Template Reference

General FIR Pulse Shape. More...

#include <itpp/comm/pulse_shape.h>

Public Member Functions

 Pulse_Shape ()
 Constructor.
 
 Pulse_Shape (const Vec< T2 > &impulse_response, int upsampling_factor)
 Constructor.
 
virtual ~Pulse_Shape ()
 Destructor.
 
void set_pulse_shape (const Vec< T2 > &impulse_response, int upsampling_factor)
 Set the general impulse response of the FIR filter.
 
Vec< T2 > get_pulse_shape (void) const
 Get the pulse shape.
 
int get_upsampling_factor () const
 Get the over sampling factor.
 
int get_pulse_length () const
 Get the length of the pulse in number of symbols.
 
int get_filter_length () const
 Get the length of the internal FIR filter.
 
void shape_symbols (const Vec< T1 > &input, Vec< T3 > &output)
 Shape the input symbols performing upsampling.
 
Vec< T3 > shape_symbols (const Vec< T1 > &input)
 Shape the input symbols performing upsampling.
 
void shape_samples (const Vec< T1 > &input, Vec< T3 > &output)
 Shape the input samples already upsampled.
 
Vec< T3 > shape_samples (const Vec< T1 > &input)
 Shape the input symbols already upsampled.
 
void clear (void)
 Clear internal states.
 

Protected Attributes

Vec< T2 > impulse_response
 The impulse resounse of the pulse shaping filter.
 
MA_Filter< T1, T2, T3 > shaping_filter
 The pulse shaping filter.
 
int pulse_length
 Length in symbols.
 
int upsampling_factor
 Samples per input symbol.
 
bool setup_done
 Ensures that setup is called before any other member function.
 

Detailed Description

template<class T1, class T2, class T3>
class itpp::Pulse_Shape< T1, T2, T3 >

General FIR Pulse Shape.

Upsamples and shapes symbols according to a given FIR filter. Observe that since the shaping is done with a FIR filter, the first samples in the output are zero or small before the memory of the filter is filled.

The class is templated as follows:

An example of usage is:

#include "itpp/itcomm.h"
vec filter_response;
filter_response ="0.7 0.3 0.6";
Pulse_Shape<double,double,double> shaper(filter_response, 4);
BPSK bpsk;
vec symbols, samples;
symbols = bpsk.modulate_bits(randb(20));
samples = shaper.shape_symbols(symbols);

Definition at line 73 of file pulse_shape.h.

Member Function Documentation

template<class T1 , class T2, class T3 >
void itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape ( const Vec< T2 > &  impulse_response,
int  upsampling_factor 
)

Set the general impulse response of the FIR filter.

Observe that the pulse shape must have a duration of an integer number of symbols. Thus the length of the impulse response-1 modulo over sampling is an integer.

Definition at line 267 of file pulse_shape.h.

References itpp::Vec< Num_T >::clear(), it_error_if, and itpp::Vec< Num_T >::size().


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

Generated on Sat May 25 2013 16:32:32 for IT++ by Doxygen 1.8.2