gr::fec::puncture_ff
gr::block
gnuradio/fec/puncture_ff.h
std::shared_ptr< puncture_ff > typedef std::shared_ptr<puncture_ff> gr::fec::puncture_ff::sptr sptr gr::fec::puncture_ff::sptr
sptr static sptr gr::fec::puncture_ff::make (int puncsize, int puncpat, int delay) make gr::fec::puncture_ff::make int puncsize int puncpat int delay

Constructs a puncture block for floats.

puncsize

Size of block of bits to puncture

puncpat

The puncturing pattern

delay

Delayed the puncturing pattern by shifting it

Puncture a stream of floats.

For a given block of input samples of `puncsize`, the items produced is based on `puncpat`. Basically, if:

    k=0
    if_puncpat[i]==1:
    out[k++]=input[i]

This block is designed for floats, generally 1's and -1's. It's possible to use other float values as symbols, but this is not the expected operation.

`puncpat` is specified as a 32-bit integer that we can convert into the vector _puncpat used in the algorithm above:

    _puncpat=[0,...]
    foriinpuncsize:
    _puncpat[i]=puncpat>>(puncsize-1-i)

Example:

    puncsize=8
    puncpat=0xEF-->[1,1,1,0,1,1,1,1]
    input=[a,b,c,d,e,f,g,h]
    output=[a,b,c,e,f,g,h]

The gr.fec Python module provides a read_bitlist function that can turn a string of a puncture pattern into the correct integer form. The pattern of 0xEF could be specified as fec.readbitlist("11101111"). Also, this allows us to use puncsize=len("11101111") to make sure that our sizes are set up correctly for the pattern we want.

The fec.extended_encoder takes in the puncture pattern directly as a string and uses the readbitlist inside to do the conversion.

Note that due to the above concept, the default setting in the extended encoder of '11' translates into no puncturing.

The `delay` parameter delays the application of the puncture pattern. This is equivalent to circularly rotating the `puncpat` by `delay`. Note that because of the circular shift, the delay should be between 0 and `puncsize`, but this is not enforced; the effective delay will simply be `delay` mod `puncsize`. A negative value here is ignored.

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