CCSDS Encoder Definition: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...") |
No edit summary |
||
(4 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
[ | CCSDS Encoding class for convolutional encoding with rate 1/2, K=7, and polynomials [109, 79]. | ||
Uses Phil Karn's (KA9Q) implementation of the CCSDS encoder for rate 1/2, K=7, and CC polynomial [109, 79]. These are non-adjustable in this encoder. For an adjustable CC encoder where we can set the rate, constraint length, and polynomial, see [[CC Encoder Definition]]. | |||
== Parameters == | == Parameters == | ||
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span> | (''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span> | ||
; | ; Parallelism | ||
: | : It seems that one can create a tensor of one or two dimensions of encoders. More info is needed on this. | ||
; Dimension 1 | |||
: Active when parallelism > 0 | |||
; Dimension 2 | |||
: Active when parallelism > 1 | |||
; Frame bits | |||
: When not being used in a tagged stream mode, this encoder will only process frames of the length provided here. If used in a tagged stream block, this setting becomes the maximum allowable frame size that the block may process. | |||
; | ; Start state | ||
: | : Initialization state of the shift register. | ||
; Streaming behaviour | |||
: Specifies how the convolutional encoder will behave and under what conditions. | |||
:; Streaming: This mode expects an uninterrupted flow of samples into the encoder, and the output stream is continually encoded. | |||
:; Terminated: Mode designed for packet-based systems. This mode adds rate*(k-1) bits to the output as a way to help flush the decoder. | |||
:; Tailbiting: Another packet-based method. Instead of adding bits onto the end of the packet, this mode will continue the code between the payloads of packets by pre-initializing the state of the new packet based on the state of the last packet for (k-1) bits. | |||
:; Truncated: A truncated code always resets the registers to the start state between frames. | |||
== Example Flowgraph == | == Example Flowgraph == | ||
This flowgraph can be found at [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/examples/fecapi_async_decoders.grc] | |||
[[File:Fecapi_async_decoders_fg.png|800px]] | |||
== Source Files == | == Source Files == | ||
; C++ files | ; C++ files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ccsds_encoder_impl.cc ccsds_encoder_impl.cc] | ||
; Header files | ; Header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ccsds_encoder_impl.h ccsds_encoder_impl.h] | ||
; Public header files | ; Public header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/include/gnuradio/fec/ccsds_encoder.h ccsds_encoder.h] | ||
; Block definition | ; Block definition | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/grc/variable_ccsds_encoder_def_list.block.yml variable_ccsds_encoder_def_list.block.yml] |
Latest revision as of 15:42, 5 May 2025
CCSDS Encoding class for convolutional encoding with rate 1/2, K=7, and polynomials [109, 79].
Uses Phil Karn's (KA9Q) implementation of the CCSDS encoder for rate 1/2, K=7, and CC polynomial [109, 79]. These are non-adjustable in this encoder. For an adjustable CC encoder where we can set the rate, constraint length, and polynomial, see CC Encoder Definition.
Parameters
(R): Run-time adjustable
- Parallelism
- It seems that one can create a tensor of one or two dimensions of encoders. More info is needed on this.
- Dimension 1
- Active when parallelism > 0
- Dimension 2
- Active when parallelism > 1
- Frame bits
- When not being used in a tagged stream mode, this encoder will only process frames of the length provided here. If used in a tagged stream block, this setting becomes the maximum allowable frame size that the block may process.
- Start state
- Initialization state of the shift register.
- Streaming behaviour
- Specifies how the convolutional encoder will behave and under what conditions.
- Streaming
- This mode expects an uninterrupted flow of samples into the encoder, and the output stream is continually encoded.
- Terminated
- Mode designed for packet-based systems. This mode adds rate*(k-1) bits to the output as a way to help flush the decoder.
- Tailbiting
- Another packet-based method. Instead of adding bits onto the end of the packet, this mode will continue the code between the payloads of packets by pre-initializing the state of the new packet based on the state of the last packet for (k-1) bits.
- Truncated
- A truncated code always resets the registers to the start state between frames.
Example Flowgraph
This flowgraph can be found at [1]
Source Files
- C++ files
- ccsds_encoder_impl.cc
- Header files
- ccsds_encoder_impl.h
- Public header files
- ccsds_encoder.h
- Block definition
- variable_ccsds_encoder_def_list.block.yml