线性分组码的matlab实现

2026/4/25 6:43:42

重庆交通大学信息科学与工程学院

综合性设计性实验报告

专 业: 通信工程专业12级

学 号: 631206040105

姓 名: 刘志坤

实验所属课程: 信息论与编码

实验室(中心): 软件与通信实验中心

指 导 教 师 : 黄大荣

2015年4月

教师评阅意见: 签名: 年 月 日 实验成绩:

线性分组码的matlab实现

一、实验目的和要求。

信道编码的目的是为了改善通信系统的传输质量。按照监督码元与信息码元之间的关系,有线性码和非线性码。线性码的特点是监督码元与信息码元之间有线性关系,可用一组线性代数方程将其联系起来。

本实验用Matlab语言编程实现线性分组码。

二、实验原理。

线性分组码的编码包括两个基本步骤:首先将信源的输出序列分为k位一组的消息组(也称信息组,简称消息或信息);然后信道编码器按照一定的编码规则将k位消息变换为n个码元的码字。一个(n,k)线性分组码,如果码的数域为GF(m),即每一个码元可能有m种取值,则信源可发出mk种不同的消息。对于(n,k)码,n表示码长,k表示信息码元的维数,也就是子空间的维数,设M=[m1,m2,…,mk]是输入纠错码编码器的信息,则由纠错码编码器输出的码字

C=MG

G为该(n,k)码的生成矩阵。

如果只考虑信道编码,则纠错码通信系统模型可归结为如下模型: 纠错编码器 信宿 纠错译码器 信源 信道 干扰 线性分组码(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,则有可能构造出纠正一位或一位以上错误的线性码。

由于每个码字都是一个二进制的n重,及二进制n维线性空间Vn中的一个矢量,因此码字又称为码矢。线性分组码的一个重要参数是码率r=k/n,它说明在一个码字中信息位所占的比重,r越大,说明信息位所占比重越大,码的传输信息的有效性越高。由于(n,k)线性分组,线性分组码的2k个码字组成了n维线性空间Vn的一个K维子空间。因此这2k个码字完全可由k个线性无关的矢量所组成。

对于分组码,有着以下结论:

1.检测e个错码,则要求最小码距dmin?e?1; 2.纠正t个错码,则要求最小码距dmin?2t?1;

3.纠正t个错码,同时检测e(e>t)个错码,则要求最小码距dmin?e?t?1; 4.纠正t个错码和p个删除,则要求最小码距dmin?2t?p?1

三、实验步骤

本次试验用Matlab语言编程实现(10,4)线性分组码,线性分组码的编码由监督矩阵和生成矩阵实现,监督矩阵H为(4×4)的矩阵,由监督方程得出,生成矩阵G为已定义(10×4)的矩阵。具体实现方法如下: ①将要编码的序列先整形,整为4列

②如果序列不能被4整除在后边补0使其能被4整除

③将整形后的序列与生成矩阵G相乘即得到编码后的码字 利用Matlab函数找出所得分组码的最小距离。 四、程序代码:

1.(7,4)分组码 clear all; clc;

G2 =[1 0 0 0 1 0 1; 0 1 0 0 1 1 1; 0 0 1 0 1 1 0;

0 0 0 1 0 1 1];%生成矩阵

MSG=[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1; 1 0 0 0;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];%输入信息

code1=rem(MSG*G2,2) %输出码字

2.(10,4)线性分组码 %产生U,表示所有的信息序列 k=4; for i=1:2^k for j=k:-1:1

if rem(i-1,2^(-j+k+1))>=2^(-j+k) u(i,j)=1; else u(i,j)=0; end end end

%定义生成矩阵G

g=[1 0 0 1 1 1 0 1 1 1; 1 1 1 0 0 0 1 1 1 0; 0 1 1 0 1 1 0 1 0 1; 1 1 0 1 1 1 1 0 0 1]; %产生码字

c=rem(u*g,2)

%找出最小距离

w_min=min(sum((c(2:2^k,:))'))

五、对比分析,通过给给定不同的信源,对结果进行分析对比验证,并得出相应分分析报告。

运行程序,结果如下 1.(7,4)分组码

2.(10,4)线性分组码

六:提交实验报告与心得体会。

本次试验帮助我们理解信道编码中有关线性分组码的有关知识。通过对线性分组码中的线性分组码的编译码编程实现,了解到线性分组码的构成方式是把信息序列分成每k个码元一段,并由这k个码元按一定规则产生r个校验位,组成长度为n=k+r的码字,用(n,k)表示。信息码元与校验位之间为线性关系。并且知道了线性分组码的编码过程信息码元与校验位之间的线性关系实现起来是十分简单的.

对于长度为n的二进制线性分组码,它有种2n可能的码组,从2n种码组中可以选择M=2k个码组(k

通过本次试验,我仔细读懂程序,结合程序理解课本上的知识,感悟良多。对于任何知识,我们都不能仅限于书本,要通过实践加深理解,帮助我们记忆。


线性分组码的matlab实现.doc 将本文的Word文档下载到电脑
搜索更多关于: 线性分组码的matlab实现 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219