GNU Radio 3.7.1 C++ API
gr::channels::channel_model2 Class Reference

channel model2 More...

#include <channel_model2.h>

Inheritance diagram for gr::channels::channel_model2:

List of all members.

Public Types

typedef boost::shared_ptr
< channel_model2
sptr

Public Member Functions

virtual void set_noise_voltage (double noise_voltage)=0
virtual void set_taps (const std::vector< gr_complex > &taps)=0
virtual void set_timing_offset (double epsilon)=0
virtual double noise_voltage () const =0
virtual std::vector< gr_complextaps () const =0
virtual double timing_offset () const =0

Static Public Member Functions

static sptr make (double noise_voltage=0.0, double epsilon=1.0, const std::vector< gr_complex > &taps=std::vector< gr_complex >(1, 1), double noise_seed=0)
 Build the channel simulator.

Detailed Description

channel model2

This block implements a basic channel model simulator that can be used to help evaluate, design, and test various signals, waveforms, and algorithms.

This model allows the user to set the voltage of an AWGN noise source, an initial timing offset, and a noise seed to randomize the AWGN noise source.

Multipath can be approximated in this model by using a FIR filter representation of a multipath delay profile.

Unlike gr::channels::channel_model, this block is designed to enable time-varying frequency and timing offsets. * Port 0: input signal to be run through the channel. * Port 1: frequency function. A constant value between -0.5 and 0.5 here will turn into a constant frequency offset from -fs/2 to fs/2 (where fs is the sample rate). * Port 2: timing offset function. Sets the resampling rate of the channel model. A constant value here produces that value as the timing offset, so a constant 1.0 input stream is the same as not having a timing offset.

Since the models for frequency and timing offset may vary and what we are trying to model may be different for different simulations, we provide the time-varying nature as an input function that is user-defined. If only constant frequency and timing offsets are required, it is easier and less expensive to use gr::channels::channel_model.


Member Typedef Documentation


Member Function Documentation

static sptr gr::channels::channel_model2::make ( double  noise_voltage = 0.0,
double  epsilon = 1.0,
const std::vector< gr_complex > &  taps = std::vector< gr_complex >(1, 1),
double  noise_seed = 0 
) [static]

Build the channel simulator.

Parameters:
noise_voltageThe AWGN noise level as a voltage (to be calculated externally to meet, say, a desired SNR).
epsilonThe initial sample timing offset to emulate the different rates between the sample clocks of the transmitter and receiver. 1.0 is no difference.
tapsTaps of a FIR filter to emulate a multipath delay profile.
noise_seedA random number generator seed for the noise source.
virtual double gr::channels::channel_model2::noise_voltage ( ) const [pure virtual]
virtual void gr::channels::channel_model2::set_noise_voltage ( double  noise_voltage) [pure virtual]
virtual void gr::channels::channel_model2::set_taps ( const std::vector< gr_complex > &  taps) [pure virtual]
virtual void gr::channels::channel_model2::set_timing_offset ( double  epsilon) [pure virtual]
virtual std::vector<gr_complex> gr::channels::channel_model2::taps ( ) const [pure virtual]
virtual double gr::channels::channel_model2::timing_offset ( ) const [pure virtual]

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