(Square) Root Raised Cosine (RRC) Pulse Shaper More...
#include <itpp/comm/pulse_shape.h>
Public Member Functions  
Root_Raised_Cosine ()  
Constructor.  
Root_Raised_Cosine (double roll_off_factor, int filter_length=6, int upsampling_factor=8)  
Constructor.  
virtual  ~Root_Raised_Cosine () 
Destructor.  
void  set_pulse_shape (double roll_off_factor, int filter_length=6, int upsampling_factor=8) 
Set pulse_shape, roll_off_factor between 0 and 1, filter_length even.  
double  get_roll_off (void) const 
Get the Rolloff factor.  
void  set_pulse_shape (const Vec< double > &impulse_response, int upsampling_factor) 
Set the general impulse response of the FIR filter.  
Vec< double >  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< T1 > &output) 
Shape the input symbols performing upsampling.  
Vec< T1 >  shape_symbols (const Vec< T1 > &input) 
Shape the input symbols performing upsampling.  
void  shape_samples (const Vec< T1 > &input, Vec< T1 > &output) 
Shape the input samples already upsampled.  
Vec< T1 >  shape_samples (const Vec< T1 > &input) 
Shape the input symbols already upsampled.  
void  clear (void) 
Clear internal states.  
Protected Attributes  
double  roll_off_factor 
The roll off factor (i.e. alpha)  
Vec< double >  impulse_response 
The impulse resounse of the pulse shaping filter.  
MA_Filter< T1, double, T1 >  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.  
(Square) Root Raised Cosine (RRC) Pulse Shaper
Upsamples and shapes symbols as square root raised cosine pulses with a given rolloff factor (zero is not allowed
It is called square root raised cosine since it is defined as the square root of the raised cosine pulse in the frequency domain. Thus with a transmitter pulse shape of root raised cosine and a receiver filter that is root raised cosine, the overall response will be a raised cosine.
For more details see e.g. Lee & Messerschmitt, p. 228. Observe that the shaping is done with a FIR filter where the size is given by filter_length * over_sample_factor + 1. The first samples in the output will therefore be zero or small before the memory of the filter is filled.
What is important, when using RRC shaping in a transmission system with the AWGN channel, the mean power of the output samples is not normalised, so the channel noise variance (or shaped signal) should be scaled appropriately.
The class is templated as follows: T1
is the type of the input and the output samples. An example of usage is:
Definition at line 226 of file pulse_shape.h.

inherited 
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 response1 modulo over sampling is an integer.
Generated on Sat Jul 6 2013 10:54:33 for IT++ by Doxygen 1.8.2