基于matlab线性分组码实验设计.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、 设计题目 线性分组码编译码实验 二、 实验目的: 掌握线性分组码的编码原理、编码步骤和译码方法 熟悉 matlab 软件的基本操作,学会用 matlab 软件进行线性分组码的编 码和译码 三、  实验主要内容及要求: 设计(15,11)或(255,247)线性分组码,利用随机生成的二进制序 列及 BPSK 调制方式,比较使用信道编码与未使用信道编码的误比特率曲线 四、 实验设备及软件: PC 机一台、Matlab 软件 五、 设计方案  噪声 ① 信源编码  信道编码 (15,11)线性分  BPSK 调制  信道传输 ② ① 统计误码率  信源译码  信道译码  解调 ② 该实验系统框图如上图所示,其中信源编码在本实验不做讨论,编号① 采用线性分组码编码和译码,编号②为不采用信道编译码,通过这两种方法 的对比,得出误码率曲线。 1. 线性分组码编码 本实验采用的是(15,11)的线性分组码,线性分组码的编码由监督矩阵 和生成矩阵实现,监督矩阵 H 为(4×11)的矩阵,由监督方程和(4×4) 的单位矩阵构成,生成矩阵 G 为(11×15)的矩阵,由(11×11)的单 位矩阵和监督矩阵的转置矩阵构成。具体实现方法如下: 将要编码的序列先整形,整为 11 列 如果序列不能被 11 整除在后边补 0 使其能被 11 整除 将整形后的序列与生成矩阵 G 相乘即得到编码后的码字 其实现代码如下: function [n,C]=xxbm(n) a=randint(1,n); %生成 01 随机序列 disp('编码序列:'); disp(a); subplot(3,2,1); stairs(a); axis([1 length(a) -0.5 1.5]) title('编码序列'); %判断生成的随机序列个数是否是 11 的整数倍 if length(a)/11==fix(length(a)/11) %随机序列个数是 11 的整数倍,直接编码 b=reshape(a,11,(length(a)/11)); M=b'; F=eye(11); S=[0 0 1 1;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1]; K=eye(4); =[F,S]; =[S',K]; C=rem(M*G,2); disp('生成矩阵 G:'); disp(G); disp('监督矩阵 H:'); disp(H); disp('码字:'); (C); %随机序列个数不是 11 的整数倍,补 0 后编码 s1=[a,zeros(1,(fix(length(a)/11)+1)*11-length(a))]; %补 0 b=reshape(s1,11,(length(s1)/11)); M=b'; F=eye(11); S=[0 0 1 1;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1]; K=eye(4); =[F,S]; =[S',K]; % 监 督矩阵 C=rem(M*G,2) ; disp('生成矩阵 G:'); disp(G); disp('监督矩阵 H:'); disp(H); disp('码字:'); disp(C); end subplot(3,2,2); stairs(C); axis([1 length(C) -0.5 1.5]); title('编码后的码字'); 2. BPSK 调制 BPSK 调制实现方法为: 将 0、1 序列变为-1、1 序列; 将序列与载波相乘,为‘1’时与载波相位相同,为‘-1’时与载波相 位相反。 其实现代码如下: function [fc,fs,datarate,modusignal]=BPSKmodu(bits,datarate) fc=datarate*2; fs=fc*8; modusignal=[]; t=linspace(0,2,16); carriar=cos(2*pi*t); bits=bits*2-1; for i=1:length(bits) modusignal=[modusignal,bits(i)*carriar]; end subplot(3,2,3);plot(modusignal); title('BPSK 调制后的波形'); 3. 信道加噪 使用 awgn 函数对调制信号进行加噪,其实现代码如下: function cs=channel(modusignal,bits) cs=awgn(modusignal,1); subplot(3,

文档评论(0)

kongbaipan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档