求助!关于matlab中BCH码的弱问题
12-16
自己在编BCH的编码解码程序,用matlab中的BCH码函数检验结果是否正确。
但出现的问题想不明白:
在matlab中对info分别赋值 (info = [0 1 0 0 0 0 0];)
[1 0 0 0 0 0 0],
[0 1 0 0 0 0 0],
[0 0 1 0 0 0 0],
[0 0 0 1 0 0 0],
[0 0 0 0 1 0 0],
[0 0 0 0 0 1 0],
[0 0 0 0 0 0 1],
调用encode函数(code1 = encode(info ,15,7,'bch/binary');)
得到的结果应该是生成多项式的顺次移位才对,为什么结果是
1 0 0 0 1 0 1 1 1 0 0 0 0 0 0,
1 1 0 0 1 1 1 0 0 1 0 0 0 0 0,
0 1 1 0 0 1 1 1 0 0 1 0 0 0 0,
1 0 1 1 1 0 0 0 0 0 0 1 0 0 0,
0 1 0 1 1 1 0 0 0 0 0 0 1 0 0,
0 0 1 0 1 1 1 0 0 0 0 0 0 1 0,
0 0 0 1 0 1 1 1 0 0 0 0 0 0 1,
用genpoly = cyclpoly(15,7);得到的生成多项式为
1 0 0 0 1 0 1 1 1
请教诸位高手,不胜感激!
但出现的问题想不明白:
在matlab中对info分别赋值 (info = [0 1 0 0 0 0 0];)
[1 0 0 0 0 0 0],
[0 1 0 0 0 0 0],
[0 0 1 0 0 0 0],
[0 0 0 1 0 0 0],
[0 0 0 0 1 0 0],
[0 0 0 0 0 1 0],
[0 0 0 0 0 0 1],
调用encode函数(code1 = encode(info ,15,7,'bch/binary');)
得到的结果应该是生成多项式的顺次移位才对,为什么结果是
1 0 0 0 1 0 1 1 1 0 0 0 0 0 0,
1 1 0 0 1 1 1 0 0 1 0 0 0 0 0,
0 1 1 0 0 1 1 1 0 0 1 0 0 0 0,
1 0 1 1 1 0 0 0 0 0 0 1 0 0 0,
0 1 0 1 1 1 0 0 0 0 0 0 1 0 0,
0 0 1 0 1 1 1 0 0 0 0 0 0 1 0,
0 0 0 1 0 1 1 1 0 0 0 0 0 0 1,
用genpoly = cyclpoly(15,7);得到的生成多项式为
1 0 0 0 1 0 1 1 1
请教诸位高手,不胜感激!
后面都是零,没有打出来
为什么是这个结果呢?
根据循环码编码的计算公式,对于([0 0 0 0 0 0 1]
i(x)= x^6;
而生成多项式g(x)= x^8 + x^7 + x^6 + x^4 + 1;
故码值应该为
c(x)= i(x)*g(x)=x^14 + x^13 + x^12 + x^10 + x^6;
即
0 0 0 0 0 0 1 0 0 0 1 0 1 1 1
假设高低位弄反了也不对,从右往左是
1 1 1 0 1 0 0 0 1 0 0 0 0 0 0
而matlab的结果是如你所示的
0 0 0 1 0 1 1 1 0 0 0 0 0 0 1
所以我不能理解阿
明白了,十分感谢你的耐心解答。
相关文章:
- 请问有没有简单的用matlab进行波束形成仿真的程序(05-08)
- 那位高手指点一下OFDM的基本仿真,用MATLAB,谢谢了(05-08)
- 请问有关多用户检测的仿真用matlab行不?(05-08)
- Re: Matlab程序请教:convenc和vitdec!(05-08)
- 请问:在matlab里如何实现删余卷积码的译码?(05-08)
- 急!MATLAB中的./在SIMULINK模块中用什么实现?(05-08)
射频专业培训教程推荐