线性分组码信道编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字通信课程报告
题目: 数字通信中的线性分组码讲课老师:
学生姓名:
所属院系:
专业:
学号:
0 1 1 1 0 1 1 1 0
1设计目的和要求
数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图像跳跃,不连续,出现马赛克等现象。通过信道编码可实现对数据流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。通过线性分组码实现信道编码,提高系统的可靠性。
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 ,则有可能构造出纠正一位或一位以上错误的线性码。
下面我们通过(7,3)分组码的例子来说明如何具体构造这种线性码。设分组码(n ,k )中,k = 3,为能纠正一位误码,要求r≥3。现取r =4,则n =k +r =7。该例子中,信息组为(c6c5c4),码字为(c6c5c4c3c2c1c0).当已知信息组时,按以下规则得到四个校验元,即
c3=c6+c4
c2=c6+c5+c4
c1=c6+c5
c0=c5+c4
这组方程称为校验方程。
(7,3)线性分组码有23(8)个许用码字或合法码字,另有27-23个禁用码字。发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。
为了深化对线性分组码的理论分析,可将其与线性空间联系起来。由于每个码字都是一个二进制的n重,及二进制n维线性空间Vn中的一个矢量,因此码字又称为码矢。线性分组码的一个重要参数是码率r=k/n,它说明在一个码字中信息位所占的比重,r越大,说明信息位所占比重越大,码的传输信息的有效性越高。由于(n,k)线性分组,线性分组码的2k个码字组成了n维线性空间Vn的一个K维子空间。因此这2k个码字完全可由k个线性无关的矢量所组成。
设此k个矢量为c1,c2,…,c k,有生成矩阵形式为
(n,k)码字中的任一码字c i,均可由这组基底的线性组合生成,即
c i=m i·G=[m n-1 m n-2… m n-k]·G
式中,mi=[m n-1 m n-2…m n-k ]是k个信息元组成的信息组。
表2-1 (7,3)线性分组码
对于表2-1给出的(7,3)线性分组码,可将写成矩阵形式
[c 6 c 5 c 4 c 3 c 2 c 1 c 0]=[c 6 c 5 c 4]·1
01110011100100
111001
故(7,3)码的生成矩阵为
G= 1
0111001110010
111001 可以看到,从(7,3)码的8个码字中,挑选出k=3个线性无关的码字(1001110)(0100111),(00111101)作为码的一组基底,用c=m ·G 计算得码字。
一个系统码的生成矩阵G ,其左边k 行k 列应是一个k 阶单位方阵I k ,因此生成矩阵G 表示为
G=[I k P] 式中,P 是一个k ×(n-k)阶矩阵。
3 设计过程
3.1 编码过程
监督矩阵H 与生成矩阵G 的关系: 由H 与G 的分块表示的矩阵形式
H =[P I n-k ]
G=[Ik Q] P=QT 则有G ·HT=0
或 H ·GT=0 已知给出的(6,3)码的Q 矩阵
则可以根据G=[I k Q]求出生成矩阵
由 P=Q T
和 H =[P I n-k ] 有了生成矩阵后则可以根据输入的四位信息位和生成矩阵相乘得到编码矩阵,即 MATLAB 函数为:
C=rem(I*G,2); 其中C 为编码后的结果,I 为信息矩阵,G 为生成矩阵。 则编码的所有情况为: 编码序列:
信息位 || 监督位
C=
3.2 译码过程
对于译码过程来说,同样由上知道监督矩阵:
H 矩阵与(n,k)码的任何一个许用码字进行相乘的结果必等于0,即若C=m ·G 是任一(n,k)码字,则必有C ·H T
=0。若不属于许用码字,或有传输差错,且差错
位数在(n,k)码纠错能力内,则运算结果将为非0值,此时,可以纠错或检错重发。
S0 = B ·H T
= [000000]· =000
S1 = B ·H T
=[000001] ·=001
S2 = B ·H T
=[000010]· =010
S3 = B ·H T
=[000100]· =011
S4 = B ·H T
=[001000]· =100