gr::digital::ofdm_sync_sc_cfb
gr::hier_block2
gnuradio/digital/ofdm_sync_sc_cfb.h
std::shared_ptr< ofdm_sync_sc_cfb > std::shared_ptr<ofdm_sync_sc_cfb> gr::digital::ofdm_sync_sc_cfb::sptr sptr gr::digital::ofdm_sync_sc_cfb::sptr
sptr static sptr gr::digital::ofdm_sync_sc_cfb::make (int fft_len, int cp_len, bool use_even_carriers=false, float threshold=0.9) make gr::digital::ofdm_sync_sc_cfb::make int fft_len int cp_len bool use_even_carriers false float threshold 0.9

fft_len

FFT length

cp_len

Length of the guard interval (cyclic prefix) in samples

use_even_carriers

If true, the carriers in the sync preamble are occupied such that the even carriers are used (0, 2, 4, ...). If you use all carriers, that would include the DC carrier, so be careful.

threshold

detection threshold. Default is 0.9.

void virtual void gr::digital::ofdm_sync_sc_cfb::set_threshold (float threshold)=0 set_threshold gr::digital::ofdm_sync_sc_cfb::set_threshold float threshold
float virtual float gr::digital::ofdm_sync_sc_cfb::threshold () const =0 threshold gr::digital::ofdm_sync_sc_cfb::threshold

Schmidl & Cox synchronisation for OFDM.

Input: complex samples. Output 0: Fine frequency offset, scaled by the OFDM symbol duration. This is $\hat{\varphi}$ in [1]. The normalized frequency offset is then 2.0*output0/fft_len. Output 1: Beginning of the first OFDM symbol after the first (doubled) OFDM symbol. The beginning is marked with a 1 (it's 0 everywhere else).

The evaluation of the coarse frequency offset is not done in this block. Also, the initial equalizer taps are not calculated here.

Note that we use a different normalization factor in the timing metric than the authors do in their original work[1]. If the timing metric (8) is \[ M(d) = \frac{|P(d)|^2}{(R(d))^2}, \] we calculate the normalization as \[ R(d) = \frac{1}{2} \sum_{k=0}^{N-1} |r_{k+d}|^2, \] i.e., we estimate the energy from both half-symbols. This avoids spurious detects at the end of a burst, when the energy level suddenly drops.

[1] Schmidl, T.M. and Cox, D.C., "Robust frequency and timing synchronization for OFDM", Communications, IEEE Transactions on, 1997.

gr::basic_block
gr::digital::ofdm_sync_sc_cfb
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::digital::ofdm_sync_sc_cfb
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::digital::ofdm_sync_sc_cfb
  _post
- gr::digital::ofdm_sync_sc_cfb
  alias
- gr::digital::ofdm_sync_sc_cfb
  alias_pmt
- gr::digital::ofdm_sync_sc_cfb
  alias_set
- gr::digital::ofdm_sync_sc_cfb
  all_max_output_buffer_p
- gr::digital::ofdm_sync_sc_cfb
  all_min_output_buffer_p
- gr::digital::ofdm_sync_sc_cfb
  basic_block
- gr::digital::ofdm_sync_sc_cfb
  basic_block
- gr::digital::ofdm_sync_sc_cfb
  BLACK
- gr::digital::ofdm_sync_sc_cfb
  check_topology
- gr::digital::ofdm_sync_sc_cfb
  color
- gr::digital::ofdm_sync_sc_cfb
  connect
- gr::digital::ofdm_sync_sc_cfb
  connect
- gr::digital::ofdm_sync_sc_cfb
  d_color
- gr::digital::ofdm_sync_sc_cfb
  d_debug_logger
- gr::digital::ofdm_sync_sc_cfb
  d_input_signature
- gr::digital::ofdm_sync_sc_cfb
  d_logger
- gr::digital::ofdm_sync_sc_cfb
  d_message_subscribers
- gr::digital::ofdm_sync_sc_cfb
  d_name
- gr::digital::ofdm_sync_sc_cfb
  d_output_signature
- gr::digital::ofdm_sync_sc_cfb
  d_rpc_set
- gr::digital::ofdm_sync_sc_cfb
  d_rpc_vars
- gr::digital::ofdm_sync_sc_cfb
  d_symbol_alias
- gr::digital::ofdm_sync_sc_cfb
  d_symbol_name
- gr::digital::ofdm_sync_sc_cfb
  d_symbolic_id
- gr::digital::ofdm_sync_sc_cfb
  d_unique_id
- gr::digital::ofdm_sync_sc_cfb
  delete_head_nowait
- gr::digital::ofdm_sync_sc_cfb
  disconnect
- gr::digital::ofdm_sync_sc_cfb
  disconnect
- gr::digital::ofdm_sync_sc_cfb
  disconnect_all
- gr::digital::ofdm_sync_sc_cfb
  dispatch_msg
- gr::digital::ofdm_sync_sc_cfb
  empty_handled_p
- gr::digital::ofdm_sync_sc_cfb
  empty_handled_p
- gr::digital::ofdm_sync_sc_cfb
  empty_p
- gr::digital::ofdm_sync_sc_cfb
  empty_p
- gr::digital::ofdm_sync_sc_cfb
  erase_msg
- gr::digital::ofdm_sync_sc_cfb
  flatten
- gr::digital::ofdm_sync_sc_cfb
  get_iterator
- gr::digital::ofdm_sync_sc_cfb
  get_msg_map
- gr::digital::ofdm_sync_sc_cfb
  GREY
- gr::digital::ofdm_sync_sc_cfb
  has_msg_handler
- gr::digital::ofdm_sync_sc_cfb
  has_msg_port
- gr::digital::ofdm_sync_sc_cfb
  hier_block2
- gr::digital::ofdm_sync_sc_cfb
  hier_block2
- gr::digital::ofdm_sync_sc_cfb
  hier_message_ports_in
- gr::digital::ofdm_sync_sc_cfb
  hier_message_ports_out
- gr::digital::ofdm_sync_sc_cfb
  identifier
- gr::digital::ofdm_sync_sc_cfb
  input_signature
- gr::digital::ofdm_sync_sc_cfb
  insert_tail
- gr::digital::ofdm_sync_sc_cfb
  is_rpc_set
- gr::digital::ofdm_sync_sc_cfb
  lock
- gr::digital::ofdm_sync_sc_cfb
  log_level
- gr::digital::ofdm_sync_sc_cfb
  make
- gr::digital::ofdm_sync_sc_cfb
  max_output_buffer
- gr::digital::ofdm_sync_sc_cfb
  message_port_is_hier
- gr::digital::ofdm_sync_sc_cfb
  message_port_is_hier_in
- gr::digital::ofdm_sync_sc_cfb
  message_port_is_hier_out
- gr::digital::ofdm_sync_sc_cfb
  message_port_pub
- gr::digital::ofdm_sync_sc_cfb
  message_port_register_hier_in
- gr::digital::ofdm_sync_sc_cfb
  message_port_register_hier_out
- gr::digital::ofdm_sync_sc_cfb
  message_port_register_in
- gr::digital::ofdm_sync_sc_cfb
  message_port_register_out
- gr::digital::ofdm_sync_sc_cfb
  message_port_sub
- gr::digital::ofdm_sync_sc_cfb
  message_port_unsub
- gr::digital::ofdm_sync_sc_cfb
  message_ports_in
- gr::digital::ofdm_sync_sc_cfb
  message_ports_out
- gr::digital::ofdm_sync_sc_cfb
  message_subscribers
- gr::digital::ofdm_sync_sc_cfb
  min_output_buffer
- gr::digital::ofdm_sync_sc_cfb
  msg_accepter
- gr::digital::ofdm_sync_sc_cfb
  msg_connect
- gr::digital::ofdm_sync_sc_cfb
  msg_connect
- gr::digital::ofdm_sync_sc_cfb
  msg_disconnect
- gr::digital::ofdm_sync_sc_cfb
  msg_disconnect
- gr::digital::ofdm_sync_sc_cfb
  msg_queue
- gr::digital::ofdm_sync_sc_cfb
  name
- gr::digital::ofdm_sync_sc_cfb
  nmsgs
- gr::digital::ofdm_sync_sc_cfb
  opaque_self
- gr::digital::ofdm_sync_sc_cfb
  output_signature
- gr::digital::ofdm_sync_sc_cfb
  post
- gr::digital::ofdm_sync_sc_cfb
  processor_affinity
- gr::digital::ofdm_sync_sc_cfb
  rpc_set
- gr::digital::ofdm_sync_sc_cfb
  self
- gr::digital::ofdm_sync_sc_cfb
  set_block_alias
- gr::digital::ofdm_sync_sc_cfb
  set_color
- gr::digital::ofdm_sync_sc_cfb
  set_input_signature
- gr::digital::ofdm_sync_sc_cfb
  set_log_level
- gr::digital::ofdm_sync_sc_cfb
  set_max_output_buffer
- gr::digital::ofdm_sync_sc_cfb
  set_max_output_buffer
- gr::digital::ofdm_sync_sc_cfb
  set_min_output_buffer
- gr::digital::ofdm_sync_sc_cfb
  set_min_output_buffer
- gr::digital::ofdm_sync_sc_cfb
  set_msg_handler
- gr::digital::ofdm_sync_sc_cfb
  set_output_signature
- gr::digital::ofdm_sync_sc_cfb
  set_processor_affinity
- gr::digital::ofdm_sync_sc_cfb
  set_threshold
- gr::digital::ofdm_sync_sc_cfb
  setup_rpc
- gr::digital::ofdm_sync_sc_cfb
  shared_from_base
- gr::digital::ofdm_sync_sc_cfb
  sptr
- gr::digital::ofdm_sync_sc_cfb
  symbol_name
- gr::digital::ofdm_sync_sc_cfb
  symbolic_id
- gr::digital::ofdm_sync_sc_cfb
  threshold
- gr::digital::ofdm_sync_sc_cfb
  to_basic_block
- gr::digital::ofdm_sync_sc_cfb
  to_hier_block2
- gr::digital::ofdm_sync_sc_cfb
  unique_id
- gr::digital::ofdm_sync_sc_cfb
  unlock
- gr::digital::ofdm_sync_sc_cfb
  unset_processor_affinity
- gr::digital::ofdm_sync_sc_cfb
  vcolor
- gr::digital::ofdm_sync_sc_cfb
  WHITE
- gr::digital::ofdm_sync_sc_cfb
  ~basic_block
- gr::digital::ofdm_sync_sc_cfb
  ~hier_block2
- gr::digital::ofdm_sync_sc_cfb
  ~msg_accepter