gr::digital::clock_recovery_mm_cc
gr::block
gnuradio/digital/clock_recovery_mm_cc.h
std::shared_ptr< clock_recovery_mm_cc > typedef std::shared_ptr<clock_recovery_mm_cc> gr::digital::clock_recovery_mm_cc::sptr sptr gr::digital::clock_recovery_mm_cc::sptr
sptr static sptr gr::digital::clock_recovery_mm_cc::make (float omega, float gain_omega, float mu, float gain_mu, float omega_relative_limit) make gr::digital::clock_recovery_mm_cc::make float omega float gain_omega float mu float gain_mu float omega_relative_limit

Make a M&M clock recovery block.

omega

Initial estimate of samples per symbol

gain_omega

Gain setting for omega update loop

mu

Initial estimate of phase of sample

gain_mu

Gain setting for mu update loop

omega_relative_limit

limit on omega

gain_mu
gain_omega
mu
omega
float virtual float gr::digital::clock_recovery_mm_cc::mu () const =0 mu gr::digital::clock_recovery_mm_cc::mu make set_mu
float virtual float gr::digital::clock_recovery_mm_cc::omega () const =0 omega gr::digital::clock_recovery_mm_cc::omega make set_omega
float virtual float gr::digital::clock_recovery_mm_cc::gain_mu () const =0 gain_mu gr::digital::clock_recovery_mm_cc::gain_mu make set_gain_mu
float virtual float gr::digital::clock_recovery_mm_cc::gain_omega () const =0 gain_omega gr::digital::clock_recovery_mm_cc::gain_omega make set_gain_omega
void virtual void gr::digital::clock_recovery_mm_cc::set_verbose (bool verbose)=0 set_verbose gr::digital::clock_recovery_mm_cc::set_verbose bool verbose
void virtual void gr::digital::clock_recovery_mm_cc::set_gain_mu (float gain_mu)=0 set_gain_mu gr::digital::clock_recovery_mm_cc::set_gain_mu float gain_mu gain_mu
void virtual void gr::digital::clock_recovery_mm_cc::set_gain_omega (float gain_omega)=0 set_gain_omega gr::digital::clock_recovery_mm_cc::set_gain_omega float gain_omega gain_omega
void virtual void gr::digital::clock_recovery_mm_cc::set_mu (float mu)=0 set_mu gr::digital::clock_recovery_mm_cc::set_mu float mu mu
void virtual void gr::digital::clock_recovery_mm_cc::set_omega (float omega)=0 set_omega gr::digital::clock_recovery_mm_cc::set_omega float omega omega

Mueller and Müller (M&M) based clock recovery block with complex input, complex output.

This implements the Mueller and Müller (M&M) discrete-time error-tracking synchronizer.

The peak to peak input signal amplitude must be symmetrical about zero, as the M&M timing error detector (TED) is a decision directed TED, and this block uses a symbol decision slicer referenced at zero.

The input signal peak amplitude should be controlled to a consistent level (e.g. +/- 1.0) before this block to achieve consistent results for given gain settings; as the TED's output error signal is directly affected by the input amplitude.

The input signal must have peaks in order for the TED to output a correct error signal. If the input signal pulses do not have peaks (e.g. rectangular pulses) the input signal should be conditioned with a matched pulse filter or other appropriate filter to peak the input pulses. For a rectangular base pulse that is N samples wide, the matched filter taps would be [1.0/float(N)]*N, or in other words a moving average over N samples.

This block will output samples at a rate of one sample per recovered symbol, and is thus not outputting at a constant rate.

Output symbols are not a subset of input, but may be interpolated.

The complex version here is based on: Modified Mueller and Muller clock recovery circuit:

G. R. Danesfahani, T.G. Jeans, "Optimisation of modified Mueller and Muller algorithm," Electronics Letters, Vol. 31, no. 13, 22 June 1995, pp. 1032 - 1033.

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