(15,7)循环码的编译方法_第1页
(15,7)循环码的编译方法_第2页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实践教学兰州理工大学计算机与通信学院2013年秋季学期《计算机通信》课程设计■_rJ题目:(15,7)循环码的编译码方法专业班级:通信工程(1)班姓名:赵晓瑾学号:10250131指导教师:王惠琴成绩:摘要本次课程设计首先介绍了线性分组码的编译码原理,循环码的编译码方法、步骤、流程。其次在仿真部分利用MATLAB软件完成任意(15,7)循环码的编码和译码的实现,它可以对输入的七位的信息码进行循环码编码,经过高斯信道的传输后,对于接收到的15位码字可以译出七位信息码,最后,求出了该码的最小码距以及其纠错能力并且分析该码在高斯信道下的误码性能。关键词:循环码;编码;译码;纠错目录TOC\o"1-5"\h\z一、前言1\o"CurrentDocument"二、基本原理3\o"CurrentDocument"2.1线性分组码的编译码原理32.1.1生成矩阵32.2伴随式与译码42.2.1码的距离及纠检错能力42.2.2伴随式与译码5\o"CurrentDocument"2.3循环码的编译码原理52.3.1编码原理6\o"CurrentDocument"三、系统分析11四、系统设计及调试12\o"CurrentDocument"4.1高斯信道下的(15,7)循环码编译码系统设计12\o"CurrentDocument"4.2循环码编码过程124.3循环码译码过程13\o"CurrentDocument"4.4高斯信道下循环码误码率分析14\o"CurrentDocument"参考文献17\o"CurrentDocument"附录18\o"CurrentDocument"致谢23循环码在不同信噪比下的误码率图101011C2-0.501.52率码误循环码在不同信噪比下的误码率图101011C2-0.501.52率码误0.51信噪比1C312.5图4-6循环码的误码率图由图可以看出,随着信噪比越大,其误码率迅速减小。因此循环码是一种误码率小的编码方式,它的最大优点为误码率小。总结本次课程设计题目是(15,7)循环码的编译码方法,首先介绍了线性分组码的编译码原理,循环码的编译码方法、步骤、流程。其次在仿真部分利用MATLAB软件完成任意(15,7)循环码的编码和译码的实现,它可以对输入的七位的信息码进行循环码编码,经过高斯信道的传输后,对于接收到的15位码字可以译出七位信息码,最后,求出了该码的最小码距以及其纠错能力并且分析该码在高斯信道下的误码性能。通过本次课程设计,发现很多问题的存在,经过查找资料和讨论顺利解决。首先,MATLAB软件不熟悉,经过查资料解决。其次,程序的编码,很多函数的用法没有掌握,利用MATLAB软件的帮助程序得以进行下去。本次课程设计的收获如下:首先,我掌握了(15,7)循环码的编译码方法,学会利用MATLAB计算该码的最小码距算法及纠检错能力,通过观察该码通过高斯信道后的仿真结果,可发现循环码纠检错能力强;其次,通过此次课程设计不仅加深了我对课程理论的了解,并更加熟悉了MATLAB语言。参考文献曾凡鑫.现代编码技术.西安:西安电子科技大学出版社,2007李鹏•计算机通信技术及其程序设计•西安:西安电子科技大学出版社,1999.6周炯槃、庞沁华等编著。《通信原理》(上)北京:北京邮电大学出版社,2002(美)普埃克等著;叶芝慧等译。《通信系统工程》(第二版)。北京:电子工业出版社,2002.7樊昌信、曹丽娜编著。《通信原理》(第6版)。北京:国防工业出版社,2011.1黄载禄、殷蔚华编著《通信原理》北京:科学出版社,2005刘雪勇编著。《详解MATLAB/Simulink通信系统建模与仿真(配视频教程)》。北京:电子工业出版社,2011.11附录源程序代码如下1.(15,7)循环码的编码clear;clc;a=input('请输入消息矢量:’);%高次项系数在前的生成多项式Gx=[100010111];%将数组a的高位依次放在数组Data的低位Data=zeros(1,15);Data(1)=a(7);Data(2)=a(6);Data(3)=a(5);Data(4)=a(4);Data(5)=a(3);Data(6)=a(2);Data(7)=a(1);%Data除以Gx得到余数Rx[Qx,Rx]=deconv(Data,Gx);b=Rx+Data;%将数组b的高位放在后面c=b(1);b(1)=b(15);b(15)=c;c=b(2);b(2)=b(14);b(14)=c;c=b(3);b(3)=b(13);b(13)=c;c=b(4);b(4)=b(12);b(12)=c;c=b(5);b(5)=b(11);b(11)=c;c=b(6);b(6)=b(10);b(10)=c;c=b(7);b(7)=b(9);b(9)=c;%将数组b校正fori=l:15ifrem(abs(b(i)),2)==0b(i)=0;endendfori=1:15ifrem(abs(b(i)),2)==1b(i)=1;endenddisp(输入序列:');adisp(编码输出序列:');b2.(15,7)循环码的编码clear;clc;r=[101001001110000];h=[1,0,0,0,0,0,0,0;1,1,0,0,0,0,0,0;0,1,1,0,0,0,0,0;1,0,1,1,0,0,0,0;0,1,0,1,1,0,0,0;0,0,1,0,1,1,0,0;0,0,0,1,0,1,1,0;1,0,0,0,1,0,1,1;0,1,0,0,0,1,0,1;0,0,1,0,0,0,1,0;0,0,0,1,0,0,0,1;0,0,0,0,1,0,0,0;0,0,0,0,0,1,0,0;0,0,0,0,0,0,1,0;0,0,0,0,0,0,0,1];b=flipud(h);s=r*b;fori=1:8ifrem(abs(s(i)),2)==0s(i)=0;endendfori=1:8ifrem(abs(s(i)),2)==1s(i)=1;endendifs==[00000000]e=[000000000000000];elseifs==[10000000]e=[000000000000001];elseifs==[1,1,0,0,0,0,0,0]e=[000000000000010];elseifs==[0,1,1,0,0,0,0,0]e=[000000000000100];elseifs==[1,0,1,1,0,0,0,0]e=[000000000001000];elseifs==[0,1,0,1,1,0,0,0]e=[000000000010000];elseifs==[0,0,1,0,1,1,0,0]e=[000000000100000];elseifs==[O,O,O,l,O,l,l,O]e=[000000001000000];elseifs==[1,0,0,0,1,0,1,1]e=[000000010000000];elseifs==[0,1,0,0,0,1,0,1]e=[000000100000000];elseifs==[0,0,1,0,0,0,1,0]e=[000001000000000];elseifs==[0,0,0,1,0,0,0,1]e=[000010000000000];elseifs==[0,0,0,0,1,0,0,0]e=[000100000000000];elseifs==[0,0,0,0,0,1,0,0]e=[001000000000000];elseifs==[0,0,0,0,0,0,1,0]e=[010000000000000];elses==[0,0,0,0,0,0,0,1]e=[100000000000000];endu=r+e;fori=1:15ifrem(abs(u(i)),2)==0u(i)=0;endendfori=1:15ifrem(abs(u(i)),2)==1u(i)=1;endendData=zeros(1,7);Data(1)=u(9);Data(2)=u(10);Data(3)=u(11);Data(4)=u(12);Data(5)=u(13);Data(6)=u(14);Data(7)=u(15);ife==[000000000000000]disp('没有错误:')k=0,elsedisp(第几位错误:')k=find(e);enddisp('接收码字')

disp(译码输出序列:')Data3.循环码编码与解码Matlab源程序(实验以(7,4)循环码进行分析)forSNRpBit=l:100;%信噪比n=15;k=7;msgn=15;k=7;msg=randint(k*4,1,2);意整数矩阵subplot(2,2,1)stem(msg)title('编码器输入信号')p=cyclpoly(n,k)code=encode(msg,n,k,'cyclic',p);subplot(2,2,2)stem(code)title(编码器输出信号')recode=decode(code,n,k,'cyclic',p)subplot(2,2,3)stem(recode)title(译码器输出信号')t=-1:0.01:1;x=recode;设定N=length(x);fx=fft(x);df=100/N;n=0:N/2;f=n*df;subplot(2,2,4);plot(f,abs(fx(n+1))*2/N);grid;title('频谱图')%定义码长%信息位长%随机提取信号,引起一致地分布的任%循环码生成多项式,n=7,k=4%编码函数,对信号进行差错编码%对信号进行译码,对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同%将recode赋值给x,并进行长度与fft22、误码率与信噪比之间的关系程序(以(3,2)循环码进行测试)n=15;%定义码长k=7;%信息位长Fs=40;%系统采样频率Fd=1;%码速率N=Fs/Fd;M=2;%进制数SNR=SNRpBit/log2(M);%制造100个信息组,每组k位msg=randint(100,k,[0,1]);code=encode(msg,n,k,'cyclic/binary');%加入噪声%在已调信号中加入高斯白噪声noisycode=awgn(code,SNR);%将浮点数转化为二进制,波形整形过程fori=1:100fora=1:15ifnoisycode(i,a)<0.5noisycode(i,a)=0;elsenoisycode(i,a)=1;endendend%译码newmsg=decode(noisycode,n,k,'cyclic');%计算误码率[number,ratio]=biterr(newmsg,msg);result(SNRpBit)=ratio;disp(['Thebiterrorrateis',num2str(ratio)]);end%不同信噪比下循环码经过加性高斯白噪声信道的误码率figure(1)stem(result);title('循环码在不同信噪比下的误码率')legend('误码率','*')xlabel(信噪比');ylabel('在加性高斯白噪声下的误码率');致谢这次课程设计,给我留下了很深的印象。在这期间,让我受益匪浅。通过这次课程设计,使我对线性分组码有了全面的认识,对通信系统的知识又有了深刻的理解,在之前通信原理的学习以及完成课后的作业的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。经过本次课程设计,让我们更熟悉了通信原理的基本知识和MATLAB的语言,并且把课上的理论知识运用到实际中去;让我们更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论