Reed-Solomon Encoder DVBT: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Block Docs]]
[[Category:Block Docs]]
Reed Solomon encoder
[https://www.cs.cmu.edu/~guyb/realworld/reedsolomon/reed_solomon_codes.html Reed Solomon Encoder]
 
A Reed-Solomon code is specified as RS(N, K) with s-bit symbols. Here symbol size (s) = 8, since the input and output type is in bytes.


ETSI EN 300 744 Clause 4.3.2
ETSI EN 300 744 Clause 4.3.2


RS(N=204,K=239,T=8).
This block supports an input and output as vector bytes (instead of streamed bytes) where input size = (Blocks * (K - S)) and output size = (Blocks * (N - S)). S is the shortening size.


== Parameters ==
== Parameters ==


; p
; p
: characteristic of GF(p^m).
: Default value = 2
: characteristic of GF(p^m)


; m
; m
: Default value = 8
: we use GF(p^m).
: we use GF(p^m).


; GF polynomial
; GF polynomial
: Generator Polynomial.
: Default value = 0x11d
: Generator Polynomial


; N
; N
: length of codeword of RS coder.
: Default value = 255
: Total length of a Reed Solomon Codeword. It contains data symbols (K) and parity symbols (2t).
: N = K + 2t
: The maximum codeword length can be N(max) = 2^s - 1


; K
; K
: length of information sequence of RS decoder.
: Default value = 239
: Length of data symbols in a Reed Solomon Codeword


; t
; t
: number of corrected errors.
: Default value = 8
: Number of error-containing symbols whose errors can be corrected by a Reed-Solomon decoder i.e. i.e. errors in up to t bytes anywhere in the codeword can be automatically corrected. The parity bits in a RS codeword are 2t where 2t = N - K.


; Shortening size
; Shortening size (S)
: shortened length.
: Default value = 51
: The number of zeroes that are added to the RS codeword to get the required codeword length. The actual transmitted data bytes are K - S.


; Blocks
; Blocks
: Default value = 8
: number of blocks to process at once.
: number of blocks to process at once.


Line 41: Line 53:


; C++ files
; C++ files
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/lib/dvbt/dvbt_reed_solomon_enc_impl.cc]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/lib/dvbt/dvbt_reed_solomon_enc_impl.cc dvbt_reed_solomon_enc_impl.cc]


; Header files
; Header files
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/lib/dvbt/dvbt_reed_solomon_enc_impl.h]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/lib/dvbt/dvbt_reed_solomon_enc_impl.h dvbt_reed_solomon_enc_impl.h]


; Public header files
; Public header files
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/include/gnuradio/dtv/dvbt_reed_solomon_enc.h]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/include/gnuradio/dtv/dvbt_reed_solomon_enc.h dvbt_reed_solomon_enc.h]


; Block definition
; Block definition
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml dtv_dvbt_reed_solomon_enc.block.yml]

Latest revision as of 07:09, 31 May 2022

Reed Solomon Encoder

A Reed-Solomon code is specified as RS(N, K) with s-bit symbols. Here symbol size (s) = 8, since the input and output type is in bytes.

ETSI EN 300 744 Clause 4.3.2

This block supports an input and output as vector bytes (instead of streamed bytes) where input size = (Blocks * (K - S)) and output size = (Blocks * (N - S)). S is the shortening size.

Parameters

p
Default value = 2
characteristic of GF(p^m)
m
Default value = 8
we use GF(p^m).
GF polynomial
Default value = 0x11d
Generator Polynomial
N
Default value = 255
Total length of a Reed Solomon Codeword. It contains data symbols (K) and parity symbols (2t).
N = K + 2t
The maximum codeword length can be N(max) = 2^s - 1
K
Default value = 239
Length of data symbols in a Reed Solomon Codeword
t
Default value = 8
Number of error-containing symbols whose errors can be corrected by a Reed-Solomon decoder i.e. i.e. errors in up to t bytes anywhere in the codeword can be automatically corrected. The parity bits in a RS codeword are 2t where 2t = N - K.
Shortening size (S)
Default value = 51
The number of zeroes that are added to the RS codeword to get the required codeword length. The actual transmitted data bytes are K - S.
Blocks
Default value = 8
number of blocks to process at once.

Example Flowgraph

This flowgraph can be found at [1].

Dvbt tx 8k fg.png

Source Files

C++ files
dvbt_reed_solomon_enc_impl.cc
Header files
dvbt_reed_solomon_enc_impl.h
Public header files
dvbt_reed_solomon_enc.h
Block definition
dtv_dvbt_reed_solomon_enc.block.yml