预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、实验目的 1、掌握循环码的编码原理 2、掌握BCH码的编码方法 3、了解编码与对误码性能的改善 二、实验内容 1、自行设置BCH码的参数,给出生成的BCH码; 2、利用encode库函数实现编码; 3、搭建一个通信仿真模块,并给出运行结果,分析BCH码对通信性能的影响; 3、整理好所有的程序清单,并作注释。 三、实验结果 本原多项式,可纠正2位错误时,生成多项式为,写出生成矩阵,给出产生(15,7,2)BCH码的源程序,并给出运行结果。 (1)生成矩阵 由(15,7,2)BCH码的生成多项式 可知其生成矩阵 则可知其生成矩阵 (2)源程序: functionf=bchencod(a)%对信息元a进行编码 G=[111010001000000; 011101000100000; 001110100010000; 000111010001000; 000011101000100; 000001110100010; 000000111010001];%(15,7,2)的生成矩阵 t=input('输入0或者1');%t=0时产生(3,1),汉明编码所有码字t=1时对输入序列进行编码 ift==1 a=input('输入信息元序列:');%当t=0时,则用户手动输入信息元序列 c=mod(a*G,2);%对应码字 disp('(编码后的序列为:)'); disp(c);%显示编码后的结果 else disp('(15,7,2)BCH码为:');%当t=0时,对for循环得到的信息元序列进行编码 fori=0:1:(2^7-2)%进行for循环,得到信息元序列 a=dec2bin(i,7);%限定产生的二进制为7位 c=mod(a*G,2);%对信息元a进行编码 disp(a);%显示信息元 disp('对应码字为:'); disp(c);%显示编码结果 end end (3)结果 输入1时,结果如下: 输入0时,结果如下: 中间部分已省略, 2、用encode函数对随机产生的序列进行BCH编码,给出编码结果。 (1)、源代码 msg=randint(15,11);%随机生成的信息元 code=encode(msg,15,11,'bch');%对随机生成的msg进行BCH编码 disp(code)%显示编码结果 (2)、运行结果 3、搭建一个通信仿真模块(采用BCH编码),并给出运行结果,分析哪些参数误码率有影响。 运行结果为: 参数设置如下: BernoulliBinaryGenerator和BCHEncoder: BinarySymmetricChannel: BCHDecoder: 参数为10000、 上图为设置不同参数时对误码率的影响: 分析:(1)、实验中,软件的参数设置不正确会对误码率产生很大的影响,其中取样的大小同样会影响,当取样的值为1000时,误差要大于取样值为10000时的误码率。 (2)、在BernoulliBinaryGenerator中,产生0的概率的设置对其误码率产生影响,当0和1随机产生的概率不相等时,根据信息序列和译码规则的不同会相应的对其误码率产生影响。 (3)、在BinarySymmetricChannel中,错误概率的设置同样影响其误码率。若错误概率大于0.5时,误码率相对偏高错误概率小于0.5时,误码率相对偏低。 (4)、BCHEncoder、BCHDecoder 参数为编码与译码对应的BCH码的形式。N为码元长度,K为信息位长度。 BinarySymmetricChannel (5)、Errorprobability为译码时,码元的错误率。它的值直接影响结果,值越大,则结果出现的错误码元数也就越多,差错率也越大。通信系统的传输性能也越差。 实验心得 通过本实验,加深了对BCH码编码原理的理解,学会了使用MATLAB软件进行模拟仿真编写BCH码,其中实现的方法有,用编程的方法实现,也可以用仿真模块来实现。并且在用仿真模块实现BCH编码时,通过对参数的设置,知道了影响误码率的各因素。