gr::channels::channel_model2
gr::hier_block2
gnuradio/channels/channel_model2.h
std::shared_ptr< channel_model2 > std::shared_ptr<channel_model2> gr::channels::channel_model2::sptr sptr gr::channels::channel_model2::sptr
sptr 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, 0), double noise_seed=0, bool block_tags=false) make 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, 0) double noise_seed 0 bool block_tags false

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.

block_tags

If true, tags will not be able to propagate through this block.

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

Basic channel simulator allowing time-varying frequency and timing inputs.

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 (`noise_voltage`), an initial timing offset (`epsilon`), and a seed (`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 with the parameter `taps`.

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.

gr::basic_block
gr::channels::channel_model2
gr::hier_block2
gr::messages::msg_accepter
gr::msg_accepter
std::enable_shared_from_this< basic_block >
T
gr::basic_block
d_name
d_symbol_alias
d_symbol_name
d_input_signature
d_output_signature
d_debug_logger
d_logger
msg_queue
d_rpc_vars
d_message_subscribers
gr::channels::channel_model2
gr::hier_block2
hier_message_ports_in
hier_message_ports_out
gr::io_signature
gr::messages::msg_accepter
gr::msg_accepter
std::basic_string< Char >
std::deque< T >
elements
std::enable_shared_from_this< basic_block >
std::map< pmt::pmt_t, msg_queue_t, msg_queue_comparator >
keys
elements
std::shared_ptr< T >
ptr
std::shared_ptr< io_signature >
ptr
std::shared_ptr< logger >
std::shared_ptr< pmt_base >
std::string
std::vector< rpcbasic_sptr >
elements
p
- gr::channels::channel_model2
  _post
- gr::channels::channel_model2
  alias
- gr::channels::channel_model2
  alias_pmt
- gr::channels::channel_model2
  alias_set
- gr::channels::channel_model2
  all_max_output_buffer_p
- gr::channels::channel_model2
  all_min_output_buffer_p
- gr::channels::channel_model2
  basic_block
- gr::channels::channel_model2
  basic_block
- gr::channels::channel_model2
  BLACK
- gr::channels::channel_model2
  check_topology
- gr::channels::channel_model2
  color
- gr::channels::channel_model2
  connect
- gr::channels::channel_model2
  connect
- gr::channels::channel_model2
  d_color
- gr::channels::channel_model2
  d_debug_logger
- gr::channels::channel_model2
  d_input_signature
- gr::channels::channel_model2
  d_logger
- gr::channels::channel_model2
  d_message_subscribers
- gr::channels::channel_model2
  d_name
- gr::channels::channel_model2
  d_output_signature
- gr::channels::channel_model2
  d_rpc_set
- gr::channels::channel_model2
  d_rpc_vars
- gr::channels::channel_model2
  d_symbol_alias
- gr::channels::channel_model2
  d_symbol_name
- gr::channels::channel_model2
  d_symbolic_id
- gr::channels::channel_model2
  d_unique_id
- gr::channels::channel_model2
  delete_head_nowait
- gr::channels::channel_model2
  disconnect
- gr::channels::channel_model2
  disconnect
- gr::channels::channel_model2
  disconnect_all
- gr::channels::channel_model2
  dispatch_msg
- gr::channels::channel_model2
  empty_handled_p
- gr::channels::channel_model2
  empty_handled_p
- gr::channels::channel_model2
  empty_p
- gr::channels::channel_model2
  empty_p
- gr::channels::channel_model2
  erase_msg
- gr::channels::channel_model2
  flatten
- gr::channels::channel_model2
  get_iterator
- gr::channels::channel_model2
  get_msg_map
- gr::channels::channel_model2
  GREY
- gr::channels::channel_model2
  has_msg_handler
- gr::channels::channel_model2
  has_msg_port
- gr::channels::channel_model2
  hier_block2
- gr::channels::channel_model2
  hier_block2
- gr::channels::channel_model2
  hier_message_ports_in
- gr::channels::channel_model2
  hier_message_ports_out
- gr::channels::channel_model2
  identifier
- gr::channels::channel_model2
  input_signature
- gr::channels::channel_model2
  insert_tail
- gr::channels::channel_model2
  is_rpc_set
- gr::channels::channel_model2
  lock
- gr::channels::channel_model2
  log_level
- gr::channels::channel_model2
  make
- gr::channels::channel_model2
  max_output_buffer
- gr::channels::channel_model2
  message_port_is_hier
- gr::channels::channel_model2
  message_port_is_hier_in
- gr::channels::channel_model2
  message_port_is_hier_out
- gr::channels::channel_model2
  message_port_pub
- gr::channels::channel_model2
  message_port_register_hier_in
- gr::channels::channel_model2
  message_port_register_hier_out
- gr::channels::channel_model2
  message_port_register_in
- gr::channels::channel_model2
  message_port_register_out
- gr::channels::channel_model2
  message_port_sub
- gr::channels::channel_model2
  message_port_unsub
- gr::channels::channel_model2
  message_ports_in
- gr::channels::channel_model2
  message_ports_out
- gr::channels::channel_model2
  message_subscribers
- gr::channels::channel_model2
  min_output_buffer
- gr::channels::channel_model2
  msg_accepter
- gr::channels::channel_model2
  msg_connect
- gr::channels::channel_model2
  msg_connect
- gr::channels::channel_model2
  msg_disconnect
- gr::channels::channel_model2
  msg_disconnect
- gr::channels::channel_model2
  msg_queue
- gr::channels::channel_model2
  name
- gr::channels::channel_model2
  nmsgs
- gr::channels::channel_model2
  noise_voltage
- gr::channels::channel_model2
  opaque_self
- gr::channels::channel_model2
  output_signature
- gr::channels::channel_model2
  post
- gr::channels::channel_model2
  processor_affinity
- gr::channels::channel_model2
  rpc_set
- gr::channels::channel_model2
  self
- gr::channels::channel_model2
  set_block_alias
- gr::channels::channel_model2
  set_color
- gr::channels::channel_model2
  set_input_signature
- gr::channels::channel_model2
  set_log_level
- gr::channels::channel_model2
  set_max_output_buffer
- gr::channels::channel_model2
  set_max_output_buffer
- gr::channels::channel_model2
  set_min_output_buffer
- gr::channels::channel_model2
  set_min_output_buffer
- gr::channels::channel_model2
  set_msg_handler
- gr::channels::channel_model2
  set_noise_voltage
- gr::channels::channel_model2
  set_output_signature
- gr::channels::channel_model2
  set_processor_affinity
- gr::channels::channel_model2
  set_taps
- gr::channels::channel_model2
  set_timing_offset
- gr::channels::channel_model2
  setup_rpc
- gr::channels::channel_model2
  shared_from_base
- gr::channels::channel_model2
  sptr
- gr::channels::channel_model2
  symbol_name
- gr::channels::channel_model2
  symbolic_id
- gr::channels::channel_model2
  taps
- gr::channels::channel_model2
  timing_offset
- gr::channels::channel_model2
  to_basic_block
- gr::channels::channel_model2
  to_hier_block2
- gr::channels::channel_model2
  unique_id
- gr::channels::channel_model2
  unlock
- gr::channels::channel_model2
  unset_processor_affinity
- gr::channels::channel_model2
  vcolor
- gr::channels::channel_model2
  WHITE
- gr::channels::channel_model2
  ~basic_block
- gr::channels::channel_model2
  ~hier_block2
- gr::channels::channel_model2
  ~msg_accepter