MATLAB: CodewordLength for BCH encoder

bchcodewordlengthdvb-s2

Hi colleagues,
The bch-encoder (Communication Tool box, https://www.mathworks.com/help/comm/ref/comm.bchencoder-system-object.html) accepts two main integer parameters, CodewordLength and MessageLength which can not be arbitrary.
CodewordLength must satisfy 2^M-1 (2<M<17) and MessageLength can take on several possible values depending on error correction capability of the code.
uses CodewordLength=43200 and MessageLength=43040 which are not compliant with the above mentioned requirements.
How is it possible?

Best Answer

Hi,
Here are few points which may be of help to you
  • According to the documentation of comm.BCHEncoder default value of M is 15. But in this case, the value of M (the degree of the primitive polynomial) is calculated using the following relation
M=ceil(log2(CodewordLength+1)).
  • In addition to the above, "BCHPrimitivePoly" property of dvb object is set to a binary vector of length 17 which results in the value of M being 16.
  • The documentation page for comm.BCHEncoder mentions that the codeword length must use the form (2^M-1) for full-length BCH codes. The one which we use in DVBS2 is shortened so the codeword length(43200) should be less than or equal to 65535(2^16-1)
Related Question