GNU Radio 3.7.1 C++ API
|
channel model2 More...
#include <channel_model2.h>
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_complex > | taps () 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. |
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.
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.
noise_voltage | The AWGN noise level as a voltage (to be calculated externally to meet, say, a desired SNR). |
epsilon | The initial sample timing offset to emulate the different rates between the sample clocks of the transmitter and receiver. 1.0 is no difference. |
taps | Taps of a FIR filter to emulate a multipath delay profile. |
noise_seed | A 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] |