gr::digital::symbol_sync_ff
gr::block
gnuradio/digital/symbol_sync_ff.h
std::shared_ptr< symbol_sync_ff > typedef std::shared_ptr<symbol_sync_ff> gr::digital::symbol_sync_ff::sptr sptr gr::digital::symbol_sync_ff::sptr
sptr static sptr gr::digital::symbol_sync_ff::make (enum ted_type detector_type, float sps, float loop_bw, float damping_factor=1.0f, float ted_gain=1.0f, float max_deviation=1.5f, int osps=1, constellation_sptr slicer=constellation_sptr(), ir_type interp_type=IR_MMSE_8TAP, int n_filters=128, const std::vector< float > &taps=std::vector< float >()) make gr::digital::symbol_sync_ff::make enum ted_type detector_type float sps float loop_bw float damping_factor 1.0f float ted_gain 1.0f float max_deviation 1.5f int osps 1 constellation_sptr slicer constellation_sptr() ir_type interp_type IR_MMSE_8TAP int n_filters 128 const std::vector< float > & taps std::vector< float >()

Make a Symbol Synchronizer block.

This implements a discrete-time error-tracking synchronizer.

For this block to work properly, the input stream must meet the following requirements:

1. if not using the PFB Matched Filter interpolator, and using a non-CPM timing error detector, the input pulses must have peaks (not flat), which usually can be implemented by using a matched filter before this block.

2. for decision directed timing error detectors, the input pulses should nominally match the normalized slicer constellation, which is normalized to an average symbol magnitude of 1.0 over the entire constellation.

detector_type

The enumerated type of timing error detector to use. See enum ted_type for a list of possible types.

sps

User specified nominal clock period in samples per symbol.

loop_bw

Approximate normalized loop bandwidth of the symbol clock tracking loop. It should nominally be close to 0, but greater than 0. If unsure, start with a number around 2*pi*0.040, and experiment to find the value that works best for your situation.

damping_factor

Damping factor of the symbol clock tracking loop. Damping < 1.0f is an under-damped loop. Damping = 1.0f/sqrt(2.0f) is a maximally flat loop response. Damping = 1.0f is a critically-damped loop. Damping > 1.0f is an over-damped loop.

ted_gain

Expected gain of the timing error detector, given the TED in use and the anticipated input amplitude, pulse shape, and Es/No. This value is the slope of the TED's S-curve at timing offset tau = 0. This value is normally computed by the user analytically or by simulation in a tool outside of GNURadio. This value must be correct for the loop filter gains to be computed properly from the desired input loop bandwidth and damping factor.

max_deviation

Maximum absolute deviation of the average clock period estimate from the user specified nominal clock period in samples per symbol.

osps

The number of output samples per symbol (default=1).

slicer

A constellation obj shared pointer that will be used by decision directed timing error detectors to make decisions. I.e. the timing error detector will use this constellation as a slicer, if the particular algorithm needs sliced symbols.

interp_type

The enumerated type of interpolating resampler to use. See the interpolating resampler type enum for a list of possible types.

n_filters

The number of arms in the polyphase filterbank of the interpolating resampler, if using an interpolating resampler that uses a PFB.

taps

The prototype filter for the polyphase filterbank of the interpolating resampler, if using an interpolating resampler that uses a PFB.

damping_factor
gr::digital::IR_MMSE_8TAP
sps
taps
ted_gain
float virtual float gr::digital::symbol_sync_ff::loop_bandwidth () const =0 loop_bandwidth gr::digital::symbol_sync_ff::loop_bandwidth

Returns the normalized approximate loop bandwidth.

See the documentation for set_loop_bandwidth() for more details.

Note that if set_alpha() or set_beta() were called to directly set gains, the value returned by this method will be inaccurate/stale.

float virtual float gr::digital::symbol_sync_ff::damping_factor () const =0 damping_factor gr::digital::symbol_sync_ff::damping_factor

Returns the loop damping factor.

See the documentation for set_damping_factor() for more details.

Note that if set_alpha() or set_beta() were called to directly set gains, the value returned by this method will be inaccurate/stale.

make
float virtual float gr::digital::symbol_sync_ff::ted_gain () const =0 ted_gain gr::digital::symbol_sync_ff::ted_gain

Returns the user provided expected gain of the Timing Error Detector.

See the documentation for set_ted_gain() for more details.

make
set_ted_gain
float virtual float gr::digital::symbol_sync_ff::alpha () const =0 alpha gr::digital::symbol_sync_ff::alpha

Returns the PI filter proportional gain, alpha.

See the documentation for set_alpha() for more details.

set_alpha
float virtual float gr::digital::symbol_sync_ff::beta () const =0 beta gr::digital::symbol_sync_ff::beta

Returns the PI filter integral gain, beta.

See the documentation for set_beta() for more details.

set_beta
float virtual float gr::digital::symbol_sync_ff::sps () const =0 sps gr::digital::symbol_sync_ff::sps

Returns the nominal clock period in samples per symbol.

See the doecumentation for set_sps() for more details.

make
set_sps
void virtual void gr::digital::symbol_sync_ff::set_loop_bandwidth (float omega_n_norm)=0 set_loop_bandwidth gr::digital::symbol_sync_ff::set_loop_bandwidth float omega_n_norm

Set the normalized approximate loop bandwidth.

Set the normalized approximate loop bandwidth. Useful values are usually close to 0.0, e.g. 2*pi*0.045.

It should be a small positive number, corresponding to the normalized natural radian frequency of the loop as digital low-pass filter that is filtering the clock phase/timing error.

Technically this parameter corresponds to the natural radian frequency of the 2nd order loop transfer function (scaled by Fs), which is the radius of the pole locations in the s-plane of an underdamped analog 2nd order system.

The input parameter corresponds to omega_n_norm in the following relation: omega_n_norm = omega_n*T = 2*pi*f_n*T = 2*pi*f_n_norm

where T is the period of the clock being estimated by this clock tracking loop, and omega_n is the natural radian frequency of the 2nd order loop transfer function.

When a new loop bandwidth is set, the gains, alpha and beta, of the loop are automatically recalculated.

omega_n_norm

normalized approximate loop bandwidth

void virtual void gr::digital::symbol_sync_ff::set_damping_factor (float zeta)=0 set_damping_factor gr::digital::symbol_sync_ff::set_damping_factor float zeta

Set the loop damping factor.

Set the damping factor of the loop. Damping in the range (0.0, 1.0) yields an under-damped loop. Damping in the range (1.0, Inf) yields an over-damped loop. Damping equal to 1.0 yields a crtically-damped loop. Damping equal to 1.0/sqrt(2.0) yields a maximally flat loop filter response.

Damping factor of the 2nd order loop transfer function. When a new damping factor is set, the gains, alpha and beta, of the loop are automatically recalculated.

zeta

loop damping factor

void virtual void gr::digital::symbol_sync_ff::set_ted_gain (float ted_gain)=0 set_ted_gain gr::digital::symbol_sync_ff::set_ted_gain float ted_gain

Set the expected gain of the Timing Error Detector.

Sets the expected gain of the timing error detector, given the TED in use and the anticipated input amplitude, pulse shape, and Es/No. This value is the slope of the TED's S-curve at timing offset tau = 0. This value is normally computed by the user analytically or by simulation in a tool outside of GNURadio. This value must be correct for the loop filter gains to be computed properly from the desired input loop bandwidth and damping factor.

When a new ted_gain is set, the gains, alpha and beta, of the loop are automatically recalculated.

ted_gain

expected gain of the timing error detector

ted_gain
void virtual void gr::digital::symbol_sync_ff::set_alpha (float alpha)=0 set_alpha gr::digital::symbol_sync_ff::set_alpha float alpha

Set the PI filter proportional gain, alpha.

Sets the PI filter proportional gain, alpha. This gain directly multiplies the clock phase/timing error term in the PI filter when advancing the loop. It most directly affects the instantaneous clock period estimate, T_inst, and instantaneous clock phase estimate, tau.

This value would normally be adjusted by setting the loop bandwidth and damping factor. However, it can be set here directly if desired.

Setting this parameter directly is probably only feasible if the user is directly observing the estimates of average clock period and instantaneous clock period over time in response to an impulsive change in the input stream (i.e. watching the loop transient behavior at the start of a data burst).

alpha

PI filter proportional gain

alpha
void virtual void gr::digital::symbol_sync_ff::set_beta (float beta)=0 set_beta gr::digital::symbol_sync_ff::set_beta float beta

Set the PI filter integral gain, beta.

Sets the PI filter integral gain, beta. This gain is used when integrating the clock phase/timing error term in the PI filter when advancing the loop. It most directly affects the average clock period estimate, T_avg.

This value would normally be adjusted by setting the loop bandwidth and damping factor. However, it can be set here directly if desired.

Setting this parameter directly is probably only feasible if the user is directly observing the estimates of average clock period and instantaneous clock period over time in response to an impulsive change in the input stream (i.e. watching the loop transient behavior at the start of a data burst).

beta

PI filter integral gain

beta
void virtual void gr::digital::symbol_sync_ff::set_sps (float sps)=0 set_sps gr::digital::symbol_sync_ff::set_sps float sps

Set the nominal clock period in samples per symbol.

Sets the nominal clock period, resetting some of the tracking loop variables to adjust to the new clock period.

sps

User specified nominal clock period in samples per symbol.

sps

Symbol Synchronizer block with float input, float output.

This implements a discrete-time error-tracking synchronizer.

For this block to work properly, the input stream must meet the following requirements:

1. if not using the PFB Matched Filter interpolator, and using a non-CPM timing error detector, the input pulses must have peaks (not flat), which usually can be implemented by using a matched filter before this block.

2. for decision directed timing error detectors, the input pulses should nominally match the normalized slicer constellation, which is normalized to an average symbol magnitude of 1.0 over the entire constellation.

gr::basic_block
gr::block
gr::digital::symbol_sync_ff
gr::messages::msg_accepter
gr::msg_accepter
std::enable_shared_from_this< basic_block >
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::block
d_max_output_buffer
d_min_output_buffer
d_pmt_done
d_system_port
gr::digital::symbol_sync_ff
gr::messages::msg_accepter
gr::msg_accepter
std::basic_string< Char >
std::enable_shared_from_this< basic_block >
std::map< pmt::pmt_t, msg_queue_t, msg_queue_comparator >
std::shared_ptr< io_signature >
std::shared_ptr< logger >
std::shared_ptr< pmt_base >
std::shared_ptr< rpcbasic_base >
std::string
std::vector< long >
std::vector< rpcbasic_sptr >
elements
p
- gr::digital::symbol_sync_ff
  _post
- gr::digital::symbol_sync_ff
  active_thread_priority
- gr::digital::symbol_sync_ff
  add_item_tag
- gr::digital::symbol_sync_ff
  add_item_tag
- gr::digital::symbol_sync_ff
  alias
- gr::digital::symbol_sync_ff
  alias_pmt
- gr::digital::symbol_sync_ff
  alias_set
- gr::digital::symbol_sync_ff
  alignment
- gr::digital::symbol_sync_ff
  allocate_buffer
- gr::digital::symbol_sync_ff
  allocate_detail
- gr::digital::symbol_sync_ff
  alpha
- gr::digital::symbol_sync_ff
  basic_block
- gr::digital::symbol_sync_ff
  basic_block
- gr::digital::symbol_sync_ff
  beta
- gr::digital::symbol_sync_ff
  BLACK
- gr::digital::symbol_sync_ff
  blkd_input_timer_value
- gr::digital::symbol_sync_ff
  block
- gr::digital::symbol_sync_ff
  block
- gr::digital::symbol_sync_ff
  check_topology
- gr::digital::symbol_sync_ff
  clear_finished
- gr::digital::symbol_sync_ff
  color
- gr::digital::symbol_sync_ff
  consume
- gr::digital::symbol_sync_ff
  consume_each
- gr::digital::symbol_sync_ff
  d_blkd_input_timer_value
- gr::digital::symbol_sync_ff
  d_color
- gr::digital::symbol_sync_ff
  d_debug_logger
- gr::digital::symbol_sync_ff
  d_input_signature
- gr::digital::symbol_sync_ff
  d_logger
- gr::digital::symbol_sync_ff
  d_max_output_buffer
- gr::digital::symbol_sync_ff
  d_message_subscribers
- gr::digital::symbol_sync_ff
  d_min_output_buffer
- gr::digital::symbol_sync_ff
  d_name
- gr::digital::symbol_sync_ff
  d_output_signature
- gr::digital::symbol_sync_ff
  d_pmt_done
- gr::digital::symbol_sync_ff
  d_rpc_set
- gr::digital::symbol_sync_ff
  d_rpc_vars
- gr::digital::symbol_sync_ff
  d_setlock
- gr::digital::symbol_sync_ff
  d_symbol_alias
- gr::digital::symbol_sync_ff
  d_symbol_name
- gr::digital::symbol_sync_ff
  d_symbolic_id
- gr::digital::symbol_sync_ff
  d_system_port
- gr::digital::symbol_sync_ff
  d_unique_id
- gr::digital::symbol_sync_ff
  damping_factor
- gr::digital::symbol_sync_ff
  declare_sample_delay
- gr::digital::symbol_sync_ff
  declare_sample_delay
- gr::digital::symbol_sync_ff
  delete_head_nowait
- gr::digital::symbol_sync_ff
  detail
- gr::digital::symbol_sync_ff
  dispatch_msg
- gr::digital::symbol_sync_ff
  empty_handled_p
- gr::digital::symbol_sync_ff
  empty_handled_p
- gr::digital::symbol_sync_ff
  empty_p
- gr::digital::symbol_sync_ff
  empty_p
- gr::digital::symbol_sync_ff
  enable_update_rate
- gr::digital::symbol_sync_ff
  erase_msg
- gr::digital::symbol_sync_ff
  expand_minmax_buffer
- gr::digital::symbol_sync_ff
  finished
- gr::digital::symbol_sync_ff
  fixed_rate
- gr::digital::symbol_sync_ff
  fixed_rate_ninput_to_noutput
- gr::digital::symbol_sync_ff
  fixed_rate_noutput_to_ninput
- gr::digital::symbol_sync_ff
  forecast
- gr::digital::symbol_sync_ff
  general_work
- gr::digital::symbol_sync_ff
  get_iterator
- gr::digital::symbol_sync_ff
  get_msg_map
- gr::digital::symbol_sync_ff
  get_tags_in_range
- gr::digital::symbol_sync_ff
  get_tags_in_range
- gr::digital::symbol_sync_ff
  get_tags_in_window
- gr::digital::symbol_sync_ff
  get_tags_in_window
- gr::digital::symbol_sync_ff
  GREY
- gr::digital::symbol_sync_ff
  has_msg_handler
- gr::digital::symbol_sync_ff
  has_msg_port
- gr::digital::symbol_sync_ff
  history
- gr::digital::symbol_sync_ff
  identifier
- gr::digital::symbol_sync_ff
  input_signature
- gr::digital::symbol_sync_ff
  insert_tail
- gr::digital::symbol_sync_ff
  is_pc_rpc_set
- gr::digital::symbol_sync_ff
  is_rpc_set
- gr::digital::symbol_sync_ff
  is_set_max_noutput_items
- gr::digital::symbol_sync_ff
  is_unaligned
- gr::digital::symbol_sync_ff
  log_level
- gr::digital::symbol_sync_ff
  loop_bandwidth
- gr::digital::symbol_sync_ff
  make
- gr::digital::symbol_sync_ff
  max_noutput_items
- gr::digital::symbol_sync_ff
  max_output_buffer
- gr::digital::symbol_sync_ff
  message_port_is_hier
- gr::digital::symbol_sync_ff
  message_port_is_hier_in
- gr::digital::symbol_sync_ff
  message_port_is_hier_out
- gr::digital::symbol_sync_ff
  message_port_pub
- gr::digital::symbol_sync_ff
  message_port_register_in
- gr::digital::symbol_sync_ff
  message_port_register_out
- gr::digital::symbol_sync_ff
  message_port_sub
- gr::digital::symbol_sync_ff
  message_port_unsub
- gr::digital::symbol_sync_ff
  message_ports_in
- gr::digital::symbol_sync_ff
  message_ports_out
- gr::digital::symbol_sync_ff
  message_subscribers
- gr::digital::symbol_sync_ff
  min_noutput_items
- gr::digital::symbol_sync_ff
  min_output_buffer
- gr::digital::symbol_sync_ff
  mp_relative_rate
- gr::digital::symbol_sync_ff
  msg_accepter
- gr::digital::symbol_sync_ff
  msg_queue
- gr::digital::symbol_sync_ff
  name
- gr::digital::symbol_sync_ff
  nitems_read
- gr::digital::symbol_sync_ff
  nitems_written
- gr::digital::symbol_sync_ff
  nmsgs
- gr::digital::symbol_sync_ff
  no_pc_rpc
- gr::digital::symbol_sync_ff
  notify_msg_neighbors
- gr::digital::symbol_sync_ff
  output_multiple
- gr::digital::symbol_sync_ff
  output_multiple_set
- gr::digital::symbol_sync_ff
  output_signature
- gr::digital::symbol_sync_ff
  pc_input_buffers_full
- gr::digital::symbol_sync_ff
  pc_input_buffers_full
- gr::digital::symbol_sync_ff
  pc_input_buffers_full_avg
- gr::digital::symbol_sync_ff
  pc_input_buffers_full_avg
- gr::digital::symbol_sync_ff
  pc_input_buffers_full_var
- gr::digital::symbol_sync_ff
  pc_input_buffers_full_var
- gr::digital::symbol_sync_ff
  pc_noutput_items
- gr::digital::symbol_sync_ff
  pc_noutput_items_avg
- gr::digital::symbol_sync_ff
  pc_noutput_items_var
- gr::digital::symbol_sync_ff
  pc_nproduced
- gr::digital::symbol_sync_ff
  pc_nproduced_avg
- gr::digital::symbol_sync_ff
  pc_nproduced_var
- gr::digital::symbol_sync_ff
  pc_output_buffers_full
- gr::digital::symbol_sync_ff
  pc_output_buffers_full
- gr::digital::symbol_sync_ff
  pc_output_buffers_full_avg
- gr::digital::symbol_sync_ff
  pc_output_buffers_full_avg
- gr::digital::symbol_sync_ff
  pc_output_buffers_full_var
- gr::digital::symbol_sync_ff
  pc_output_buffers_full_var
- gr::digital::symbol_sync_ff
  pc_throughput_avg
- gr::digital::symbol_sync_ff
  pc_work_time
- gr::digital::symbol_sync_ff
  pc_work_time_avg
- gr::digital::symbol_sync_ff
  pc_work_time_total
- gr::digital::symbol_sync_ff
  pc_work_time_var
- gr::digital::symbol_sync_ff
  post
- gr::digital::symbol_sync_ff
  processor_affinity
- gr::digital::symbol_sync_ff
  produce
- gr::digital::symbol_sync_ff
  relative_rate
- gr::digital::symbol_sync_ff
  relative_rate_d
- gr::digital::symbol_sync_ff
  relative_rate_i
- gr::digital::symbol_sync_ff
  remove_item_tag
- gr::digital::symbol_sync_ff
  remove_item_tag
- gr::digital::symbol_sync_ff
  replace_buffer
- gr::digital::symbol_sync_ff
  reset_perf_counters
- gr::digital::symbol_sync_ff
  rpc_set
- gr::digital::symbol_sync_ff
  sample_delay
- gr::digital::symbol_sync_ff
  set_alignment
- gr::digital::symbol_sync_ff
  set_alpha
- gr::digital::symbol_sync_ff
  set_beta
- gr::digital::symbol_sync_ff
  set_blkd_input_timer_value
- gr::digital::symbol_sync_ff
  set_block_alias
- gr::digital::symbol_sync_ff
  set_color
- gr::digital::symbol_sync_ff
  set_damping_factor
- gr::digital::symbol_sync_ff
  set_detail
- gr::digital::symbol_sync_ff
  set_fixed_rate
- gr::digital::symbol_sync_ff
  set_history
- gr::digital::symbol_sync_ff
  set_input_signature
- gr::digital::symbol_sync_ff
  set_inverse_relative_rate
- gr::digital::symbol_sync_ff
  set_is_unaligned
- gr::digital::symbol_sync_ff
  set_log_level
- gr::digital::symbol_sync_ff
  set_loop_bandwidth
- gr::digital::symbol_sync_ff
  set_max_noutput_items
- gr::digital::symbol_sync_ff
  set_max_output_buffer
- gr::digital::symbol_sync_ff
  set_max_output_buffer
- gr::digital::symbol_sync_ff
  set_min_noutput_items
- gr::digital::symbol_sync_ff
  set_min_output_buffer
- gr::digital::symbol_sync_ff
  set_min_output_buffer
- gr::digital::symbol_sync_ff
  set_msg_handler
- gr::digital::symbol_sync_ff
  set_output_multiple
- gr::digital::symbol_sync_ff
  set_output_signature
- gr::digital::symbol_sync_ff
  set_processor_affinity
- gr::digital::symbol_sync_ff
  set_relative_rate
- gr::digital::symbol_sync_ff
  set_relative_rate
- gr::digital::symbol_sync_ff
  set_sps
- gr::digital::symbol_sync_ff
  set_tag_propagation_policy
- gr::digital::symbol_sync_ff
  set_ted_gain
- gr::digital::symbol_sync_ff
  set_thread_priority
- gr::digital::symbol_sync_ff
  set_unaligned
- gr::digital::symbol_sync_ff
  setup_pc_rpc
- gr::digital::symbol_sync_ff
  setup_rpc
- gr::digital::symbol_sync_ff
  shared_from_base
- gr::digital::symbol_sync_ff
  sps
- gr::digital::symbol_sync_ff
  sptr
- gr::digital::symbol_sync_ff
  start
- gr::digital::symbol_sync_ff
  stop
- gr::digital::symbol_sync_ff
  symbol_name
- gr::digital::symbol_sync_ff
  symbolic_id
- gr::digital::symbol_sync_ff
  system_handler
- gr::digital::symbol_sync_ff
  tag_propagation_policy
- gr::digital::symbol_sync_ff
  tag_propagation_policy_t
- gr::digital::symbol_sync_ff
  ted_gain
- gr::digital::symbol_sync_ff
  thread_priority
- gr::digital::symbol_sync_ff
  to_basic_block
- gr::digital::symbol_sync_ff
  TPP_ALL_TO_ALL
- gr::digital::symbol_sync_ff
  TPP_CUSTOM
- gr::digital::symbol_sync_ff
  TPP_DONT
- gr::digital::symbol_sync_ff
  TPP_ONE_TO_ONE
- gr::digital::symbol_sync_ff
  unaligned
- gr::digital::symbol_sync_ff
  unique_id
- gr::digital::symbol_sync_ff
  unset_max_noutput_items
- gr::digital::symbol_sync_ff
  unset_processor_affinity
- gr::digital::symbol_sync_ff
  update_rate
- gr::digital::symbol_sync_ff
  vcolor
- gr::digital::symbol_sync_ff
  WHITE
- gr::digital::symbol_sync_ff
  WORK_CALLED_PRODUCE
- gr::digital::symbol_sync_ff
  WORK_DONE
- gr::digital::symbol_sync_ff
  work_return_t
- gr::digital::symbol_sync_ff
  ~basic_block
- gr::digital::symbol_sync_ff
  ~block
- gr::digital::symbol_sync_ff
  ~msg_accepter