实验六 线性分组码的信道编码和译码
- 格式:pdf
- 大小:251.98 KB
- 文档页数:4
实践教学大学计算机与通信学院2014年秋季学期计算机通信课稈设计题目:线性分组码(9 , 4)码的编译码仿真设计专业班级:_______________________________姓名:_________________________________________学号:_______________________________________指导教师:______________________________________成绩:______________________________________________摘要该系统是(9, 4)线性分组码的编码和译码的实现,它可以对输入的四位的信息码进行线性分组码编码,对于接收到的九位码字可以进行译码,从而译出四位信息码。
当接收到的九位码字中有一位发生错误时,可以纠正这一位错码;当接收到的码字有两位发生错误时,只能纠正一位错误,但同时能检测出另一位错误不能纠正。
只有特定位有两位错误时,才能纠正两位错误。
这样就译出正确的信息码组,整个过程是用MATLAB语言实现的。
关键词:编码;译码;纠错摘要 目录1. 信道编码概述2.•…1.1信道模型 ............................................................... 2•…1.2抗干扰信道编码定理及逆定理 ............................................ 3…1.3检错与纠错的基本原理 .................................................. 4•…1.4限失真编码定理 ........................................................ 5•…2. 线性分组码的编码 ........................................................... 6 _2.1生成矩阵 ............................................................... 6•…2.2校验矩阵 ............................................................... 9•…2.3伴随式与译码 ......................................................... 1.0....3. 线性分组码编码的 Matlab 仿真 ............................................... 1.2..3.1程序流程图 ............................................................ 1.2....3.2程序执行结果 ......................................................... 12....3.2线性分组码译码的 Matlab 仿真 .......................................... 1.3.3.3结果分析 .............................................................. 1.5.... 参考文献 .................................................................... .1.6..... 总结 ......................................................................... 1.7.... 致谢 ......................................................................... 1.8.... 附录目录19刖言由于计算机、卫星通信及高速数据网的飞速发展,数据的交换、处理和存储技术得到了广泛的应用,数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象,人们对数据传输和存储系统的可靠性提出来了越来越高的要求,经过长时间的努力,通过编译码来控制差错、提高可靠性的方式在信道传输中得到了大量的使用和发展,并形成了一门新的技术叫做纠错编码技术,纠错编码按其码字结构形式和对信息序列处理方式的不同分为两大类:分组码和卷积码。
一、实验目的1、通过实验掌握线性分组码的编码原理2、通过实验掌握线性分组码的译码3、了解编码与检错能力之间的关系二、实验内容1、自行设置线性分组码或汉明码的参数,计算所设计出的线性分组码或汉明码的所有码字集合;2、利用库函数译码或利用通信工具箱设计译码模块译码;3、整理好所有的程序清单或设计模块,并作注释。
三、实验结果1、写出产生(3,1)汉明码的生成矩阵,给出生成码的源程序,并给出运行结果。
(1)、源程序function f=hanmingencod(a) %对信息元a进行编码G=[1 1 1]; %(3,1)的生成矩阵t=input('输入0或1:'); %t=0时产生(3,1),汉明编码所有码字t=1时对输入序列进行编码if t==1;a=input('输入信息元序列:'); %当t=0时,则用户手动输入信息元序列c=mod(a*G,2); %对应码字disp('编码后序列为:');disp(c); %显示编码后的结果elsedisp('(3,1)汉明系统为:');%当t=0时,对for循环得到的信息元序列进行编码for i=0:1%进行for循环,得到信息元序列a=dec2bin(i,1); %生成信息源序列c=mod(a*G,2); %对信息元a进行编码disp(a); %显示信息元disp('对应码字为:');disp(c); %显示编码结果endend(2)运行结果:输入0或者1:0(3,1)汉明系统码为:对应码字为:0 0 01对应码字为: 1 1 1输入0或者1:1输入信息元序列:0编码后序列为: 0 0 0输入0或者1:1输入信息元序列:1编码后序列为: 1 1 1(3)、计算生成矩阵:由(3,1)汉明码可知:n=3,k=1;即信源符号1位一组:{}(),0,1,0,1,2,3;i i u u u i =∈=码符号3位一组:{}210(,,),0,1,0,1,2,3,4,5,6;j c c c c c j =∈=则可得其生成矩阵:[]1,1,1G = 或者校验矩阵H=⎥⎦⎤⎢⎣⎡110110=⎥⎦⎤⎢⎣⎡100111 所以生成矩阵[]1,1,1G =2、用encode函数对随机产生的序列进行汉明编码,给出编码结果。
线性分组码编译码及检错效果仿真实验报告一、实验目的1、通过实验掌握线性分组码中的汉明码的编码原理2、通过实验掌握汉明码的译码3、了解编码与检错能力之间的关系二、实验内容1、随即生成50组4位信息序列作为输入;2、参照书上p223.4-65给定关系构建(7,4)汉明码,计算所设计出的汉明码的所有码字集合;3、发送端采用生成矩阵对信息码列进行编码得到编码码字,该编码序列在信道上传时被随机加入噪声,用校验矩阵对收到信息进行检错。
4,比较加入的误码数和检测出的误码数,检验检错效果。
三、实验步骤与结果1、输入(可由计算机随机产生)N(N>50)组4位随机信息,可循环输入;x=round(rand(1000,3));2、每个循环内,输入的4位信息与生成矩阵相乘,得到其编码码字;G=[1 0 0 1 1 1 0;0 1 0 0 1 1 1;0 0 1 1 1 0 1];H=[1 0 1 1 0 0 0;1 1 1 0 1 0 0;1 1 0 0 0 1 0;0 1 1 0 0 0 1];y=rem(x*G,2);3、用随机函数矩阵对编码码字添加信道噪声引起的误码(0误码为1,或1误码为0),得到接收端带噪声的码字,同时统计增加了误码的码字数A;Y=rem(y+(rand(1000,7)>0.98),2);jc=Y-y;A=0;for i=1:1000for j=1:7;if((jc(i,j))~=0)A=A+1;break;endendend4、对接收端带有噪声的所有编码码字进行汉明译码,统计检查出来的错误码字数B。
c=rem(Y*H',2);w=sum(c,2);B=0;for i=1:1000if(w(i)~=0)B=B+1;endend5、计算检错率B/A。
B/A=100%6、进行纠错并统计纠错后正确的个数l for m=1:1000for u=1:7if c(m,:)==H(:,u)'Y(m,u)=~Y(m,u);endendendYl=0;for o=1:1000if Y(o,:)==y(o,:)l=l+1endend五、实验遇到的问题及解决方法之前的代码均为仿制老师的代码而成,没遇到什么太大的难题,不过在运行结果上一开始并不尽如人意,之后改变了误码率,感觉检错与纠错的情况均有明显的变化。
******************实践教学******************兰州理工大学计算机与通信学院2013年秋季学期计算机通信课程设计题目:线性分组码(7,3)码的编译码仿真设计专业班级:通信工程三班姓名:彭佳峰学号: 10250302 指导教师:彭铎成绩:摘要本课题是应用C语言对(7,3)线性分组码的编译码的软件设计。
主要做了一下几项工作:对三位正确的信息码进行编码;若输入的三位信息码有错,系统输出提醒,可以重新输入;对七位接收到的码字判断是否有错,并在无错和有一位错误时进行译码,在有多位错误时输出提醒,可以选择重新输入。
关键字:线性分组码编码译码 C语言目录前言 (1)1 基本原理 (2)1.1线性分组码的基本概念 (2)1.2差错控制原理 (2)1.3线性分组码的纠检错能力 (3)2线性分组码的编码 (4)2.1监督矩阵 (4)2.2生成矩阵 (5)3线性分组码的译码 (7)4设计与仿真 (9)4.1 C语言平台简介 (9)4.2整体流程图 (9)4.3编码流程图 (10)4.4译码流程图 (10)5 仿真结果及分析 (11)设计总结 (17)参考文献 (18)致谢 (19)附录 (20)前言近年来,随着计算机、卫星通信及高速数据网的飞速发展,数据的交换、处理和存储技术得到了广泛应用,人们对数据传输和存储系统的可靠性提出了越来越高的要求。
因此,如何控制差错、提高数据传输和存储的可靠性,成为现代数字通信系统设计工作者所面临的重要课题。
香农第二定理指出,当信息传输率低于信道容量时,通过某种编译码方法,就能使错误率为任意小。
差错控制编码在此定理指导下迅速发展起来,它使得传输数据本身带有规律性,利用规律性来减少错误。
线性分组码是差错控制编码的重要一种。
它的规律性在于局限在一个码组之内,编码后长为n的一个码组中含有k位信息元和n-k位监督元,监督元是随所传输的信息元而改变的。
接收端正式通过监督元和信息元之间的规律性来发现并纠正错误的。
数字通信课程报告题目:数字通信中的线性分组码讲课老师:学生姓名:所属院系:专业:学号:1设计目的和要求0 1 1 1 0 1 1 1 0数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图像跳跃,不连续,出现马赛克等现象.通过信道编码可实现对数据流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。
通过线性分组码实现信道编码,提高系统的可靠性。
2 设计原理要设计一个(6,3)线性分组码的编译码程序,最基本的是要具备对输入的信息码进行编码,让它具有抗干扰的能力。
同时,还要让它具有对接收到的整个码组中提取信息码组的功能。
但是,在实际的通信系统中,由于信道传输特性不理想以及加性噪声的影响,接收到的信息中不可避免地会发生错误,影响通信系统的传输可靠性,因而,本设计还要让该程序具有纠正错误的能力,当接收到的码组中有一位码,发生错误时可以检测到这一位错码,并且可以纠正这一位错码,并且让系统从纠正后的码组中提取正确的信息码组. 针对给定的矩阵Q=完成如下的工作:1 完成对任意信息序列的编码2 根据生成矩阵,形成监督矩阵;3 根据得到的监督矩阵,得到伴随式,并根据它进行译码;4 验证工作的正确性.2。
1 线性分组码的编码2.1.1 生成矩阵线性分组码(n ,k )中许用码字(组)为2k 个。
定义线性分组码的加法为模二加法,乘法为二进制乘法。
即1+1=0、1+0=1、0+1=1、0+0=0;1×1=1、1×0=0、0×0=0、0×1=0.且码字与码字的运算在各个相应比特位上符合上述二进制加法运算规则。
线性分组码具有如下性质(n,k)的性质:1、封闭性。
任意两个码组的和还是许用的码组。
2、码的最小距离等于非零码的最小码重。
对于码组长度为n、信息码元为k位、监督码元为r=n-k位的分组码,常记作(n,k)码,如果满足2r-1≥n,则有可能构造出纠正一位或一位以上错误的线性码。
线性分组码实验报告综合性设计性实验报告专业:学号:姓名:实验所属课程:信息论与编码实验室(中心):信息技术软件实验室指导教师:2一、题目线性分组码编译码实验二、仿真要求1.分别用不同的生成矩阵进行(7,4)线性分组码的编码,经调制解调后译码,并比较两种线性分组码的纠错能力。
2.掌握线性分组码的编码原理、编码步骤和译码方法。
3.熟悉matlab软件的基本操作,学会用matlab软件进行线性分组码的编码和译码。
三、仿真方案详细设计编码:本实验采用的是(7,4)线性分组码,线性分组码的编码由监督矩阵和生成矩阵实现,监督矩阵H为(3×4)的矩阵,由监督方程和(4×4)的单位矩阵构成,生成矩阵G为(4×7)的矩阵,由(4×4)的单位矩阵和监督矩阵的转置矩阵构成。
实现过程为:1、将要编码的序列先整形,整为4列2、如果序列不能被4整除在后边补0使其能被4整除3、将整形后的序列与生成矩阵G相乘即得到编码后的码字在本实验中,分别生成两种生成矩阵,在产生了生成矩阵后根据输入的四位信息位和生成矩阵相乘即可得到编码矩阵。
译码:在译码过程中,我们利用错误图样和伴随式来进行纠错。
1、设一个接收码字矩阵为R,R*H'=S(模2乘),则S为码字对应的伴随式矩阵如果S=0则说明接受码字无差错;2、如果S不为0,查看矩阵S中不为0的那行所在行数,该行即收码字错误所在行i;3、将S转置,将不为0的一列与H每一列进行比较,找到H中相同列,该列的列数即为错误所在列;4、由步骤2和3得到错误具体位置,模2加对应的错误图样就可得到正确码字。
BPSK调制:BPSK调制利用载波的相位变化来传递数字信息,振幅和频率保持不变。
双极性的全占空矩形脉冲序列与正弦载波相乘就得到调制信号。
因此进行调制时首先进行码形变换变为双极性的,再经乘法器与载波相乘得到调制信号。
其具体实现方法如下:1、将0、1序列变为-1、1序列;2、将序列与载波相乘,为‘1’时与载波相位相同,为‘-1’时与载波相位相反。