CodewordLength for BCH encoder

4 次查看(过去 30 天)
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?

采纳的回答

Chidvi Modala
Chidvi Modala 2020-3-13
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 个评论
Igor Poloyko
Igor Poloyko 2020-3-13
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Error Detection and Correction 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by