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 日

0 投票

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 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by