#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. |
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:
T1
is the type of the input samples T2
is the type of the filter coefficients T3
is the type of the output samples 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 74 of file pulse_shape.h.
itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape | ( | ) | [inline] |
Constructor.
Definition at line 250 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::pulse_length, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, and itpp::Pulse_Shape< T1, T2, T3 >::upsampling_factor.
itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape | ( | const Vec< T2 > & | impulse_response, | |
int | upsampling_factor | |||
) | [inline] |
Constructor.
Definition at line 258 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::impulse_response, and itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape().
virtual itpp::Pulse_Shape< T1, T2, T3 >::~Pulse_Shape | ( | ) | [inline, virtual] |
void itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape | ( | const Vec< T2 > & | impulse_response, | |
int | upsampling_factor | |||
) | [inline] |
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 263 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::impulse_response, it_error_if, itpp::Pulse_Shape< T1, T2, T3 >::pulse_length, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, itpp::Pulse_Shape< T1, T2, T3 >::shaping_filter, itpp::Vec< Num_T >::size(), and itpp::Pulse_Shape< T1, T2, T3 >::upsampling_factor.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape().
Vec< T2 > itpp::Pulse_Shape< T1, T2, T3 >::get_pulse_shape | ( | void | ) | const [inline] |
Get the pulse shape.
Definition at line 277 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::impulse_response.
int itpp::Pulse_Shape< T1, T2, T3 >::get_upsampling_factor | ( | ) | const [inline] |
Get the over sampling factor.
Definition at line 282 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::upsampling_factor.
int itpp::Pulse_Shape< T1, T2, T3 >::get_pulse_length | ( | ) | const [inline] |
Get the length of the pulse in number of symbols.
Definition at line 287 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::pulse_length.
int itpp::Pulse_Shape< T1, T2, T3 >::get_filter_length | ( | ) | const [inline] |
Get the length of the internal FIR filter.
Definition at line 292 of file pulse_shape.h.
References itpp::Pulse_Shape< T1, T2, T3 >::impulse_response, and itpp::Vec< Num_T >::size().
void itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols | ( | const Vec< T1 > & | input, | |
Vec< T3 > & | output | |||
) | [inline] |
Shape the input symbols performing upsampling.
Definition at line 297 of file pulse_shape.h.
References it_assert, it_error_if, itpp::Pulse_Shape< T1, T2, T3 >::pulse_length, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, itpp::Pulse_Shape< T1, T2, T3 >::shaping_filter, itpp::Vec< Num_T >::size(), itpp::upsample(), and itpp::Pulse_Shape< T1, T2, T3 >::upsampling_factor.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols().
Vec< T3 > itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols | ( | const Vec< T1 > & | input | ) | [inline] |
Shape the input symbols performing upsampling.
Definition at line 309 of file pulse_shape.h.
References it_assert, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, and itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols().
void itpp::Pulse_Shape< T1, T2, T3 >::shape_samples | ( | const Vec< T1 > & | input, | |
Vec< T3 > & | output | |||
) | [inline] |
Shape the input samples already upsampled.
Definition at line 317 of file pulse_shape.h.
References it_assert, it_error_if, itpp::Pulse_Shape< T1, T2, T3 >::pulse_length, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, itpp::Pulse_Shape< T1, T2, T3 >::shaping_filter, itpp::Vec< Num_T >::size(), and itpp::Pulse_Shape< T1, T2, T3 >::upsampling_factor.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::shape_samples().
Vec< T3 > itpp::Pulse_Shape< T1, T2, T3 >::shape_samples | ( | const Vec< T1 > & | input | ) | [inline] |
Shape the input symbols already upsampled.
Definition at line 329 of file pulse_shape.h.
References it_assert, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, and itpp::Pulse_Shape< T1, T2, T3 >::shape_samples().
void itpp::Pulse_Shape< T1, T2, T3 >::clear | ( | void | ) | [inline] |
Clear internal states.
Definition at line 337 of file pulse_shape.h.
References it_assert, itpp::Pulse_Shape< T1, T2, T3 >::setup_done, and itpp::Pulse_Shape< T1, T2, T3 >::shaping_filter.
Vec<T2> itpp::Pulse_Shape< T1, T2, T3 >::impulse_response [protected] |
The impulse resounse of the pulse shaping filter.
Definition at line 114 of file pulse_shape.h.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::get_filter_length(), itpp::Pulse_Shape< T1, T2, T3 >::get_pulse_shape(), itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape(), and itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape().
MA_Filter<T1,T2,T3> itpp::Pulse_Shape< T1, T2, T3 >::shaping_filter [protected] |
The pulse shaping filter.
Definition at line 116 of file pulse_shape.h.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::clear(), itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape(), itpp::Pulse_Shape< T1, T2, T3 >::shape_samples(), and itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols().
int itpp::Pulse_Shape< T1, T2, T3 >::pulse_length [protected] |
Length in symbols.
Definition at line 118 of file pulse_shape.h.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::get_pulse_length(), itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape(), itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape(), itpp::Pulse_Shape< T1, T2, T3 >::shape_samples(), and itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols().
int itpp::Pulse_Shape< T1, T2, T3 >::upsampling_factor [protected] |
Samples per input symbol.
Definition at line 120 of file pulse_shape.h.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::get_upsampling_factor(), itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape(), itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape(), itpp::Pulse_Shape< T1, T2, T3 >::shape_samples(), and itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols().
bool itpp::Pulse_Shape< T1, T2, T3 >::setup_done [protected] |
Ensures that setup is called before any other member function.
Definition at line 122 of file pulse_shape.h.
Referenced by itpp::Pulse_Shape< T1, T2, T3 >::clear(), itpp::Pulse_Shape< T1, T2, T3 >::Pulse_Shape(), itpp::Pulse_Shape< T1, T2, T3 >::set_pulse_shape(), itpp::Pulse_Shape< T1, T2, T3 >::shape_samples(), and itpp::Pulse_Shape< T1, T2, T3 >::shape_symbols().
Generated on Sat Aug 25 23:40:36 2007 for IT++ by Doxygen 1.5.2