gr::fec::depuncture_bb
gr::block
gnuradio/fec/depuncture_bb.h
std::shared_ptr< depuncture_bb > typedef std::shared_ptr<depuncture_bb> gr::fec::depuncture_bb::sptr sptr gr::fec::depuncture_bb::sptr
sptr static sptr gr::fec::depuncture_bb::make (int puncsize, int puncpat, int delay=0, uint8_t symbol=127) make gr::fec::depuncture_bb::make int puncsize int puncpat int delay 0 uint8_t symbol 127

Constructs a depuncture block.

puncsize

Size of block of bits to puncture

puncpat

The puncturing pattern

delay

Delayed the puncturing pattern by shifting it

symbol

The symbol to reinsert into the stream (def=127)

Depuncture a stream of samples.

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

    k=0
    if_puncpat[i]==1:
    out[i]=input[k++]
    else:
    out[i]=symbol#defaultsym=127

This block is designed for unpacked bits - that is, every input sample is a bit, either a 1 or 0. It's possible to use packed bits as symbols, but the depuncturing will be done on the symbol level, not the bit level.

`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,127,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_decoder takes in the puncture pattern directly as a string and uses the readbitlist inside to do the conversion.

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