CodewordLength for BCH encoder

7 views (last 30 days)
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?

Accepted Answer

Chidvi Modala
Chidvi Modala on 13 Mar 2020
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)
  1 Comment
Igor Poloyko
Igor Poloyko on 13 Mar 2020
Thanks Chidvi!
I first though about shortened codes, but my mistake was conclusion that if the comm.BCHEncoder is called in demo example just with message-argument (without ShortMessageLength argument) so, no shortening occures.
Now I see that this is not true.
Thanks a lot again.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!