教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

通信系统仿真上机实验指导书(10)

来源:网络收集 时间:2026-07-09
导读: 设计九 信道编码和译码 一、设计目的 1.掌握信道编译码的基本原理。 2.利用MATLAB实现汉明码、线性分组码和循环码的编译码。 二、设计原理 信道编码的原理是在传输信息的同时加入信息冗余,通过信息冗余来达到信

设计九 信道编码和译码

一、设计目的

1.掌握信道编译码的基本原理。

2.利用MATLAB实现汉明码、线性分组码和循环码的编译码。

二、设计原理

信道编码的原理是在传输信息的同时加入信息冗余,通过信息冗余来达到信道差错控制的目的。信道编码一般可以分成两大类,即分组码和卷积码。分组码编码时将输入信息分成不同的组,对各组信息分别进行独立编码,加入冗余信息,组与组之间是独立的,其译码也是分组独立译码。卷积码编码时将输入信息与一固定结构的编码器进行卷积,卷积的输出作为传输信息。由于卷积的关系,卷积码的输出信息是前后关联的,因此译码时,卷积码一般采用序列译码的方式。

在MATLAB中,encode函数和decode函数实现信道编码和译码,hammgen函数和cyclgen函数分别产生汉明码和循环码的校验矩阵和生成矩阵,cyclpoly函数生成循环码的生成多项式,gen2par函数实现生成矩阵和校验矩阵的转换。信道编译码函数可完成6种主要的信道编译码:汉明码、线性分组码、循环码、BCH码、R-S码和卷积码,下面仅对这些函数在汉明码、线性分组码和循环码中的使用方法进行介绍。

1.encode函数

格式:code=encode(msg,N,K)

code=encode(msg,N,K,'method',opt) [code,added]=encode(...)

其中,msg是信息,信息位必须以二进制矢量或列矩阵的形式表示;method注明编码方式;N是码字长度;K是信息位的长度;opt是有些编码方式需要的参数,具体含义参见表9.1;added为使输入信息位数达到K时所需添加的列数。

表9.1 encode函数的参数用法

method hamming linear cyclic

含义 汉明编码 线性分组码 循环码

opt

可用来指定一个原始多项式,如省略,则使用默认多项式 必须指定一个校验矩阵 必须指定一个生成多项式

2.decode函数

格式:msg=decode(code,N,K)

46

msg=decode(code,N,K,'method',opt1,opt2,opt3,opt4) [msg,err]=decode(...) [msg,err,ccode]=decode(...) [msg,err,ccode,cerr]=decode(...)

decode函数对接收到的码字code,按method指定的方式进行译码,opt1,?,opt4是可选项参数,其用法如表9.2所示。

表9.2 decode函数的参数用法

method

译码方法

hamming 汉明译码,opt1可用来指定一个原始多项式,也可省略不用;opt2到opt4不用。 线性分组码译码,opt1用来指定一个校验矩阵;opt2用来指定一个检错逻辑电路,如

linear

省略,则默认单个错纠正逻辑;opt3和opt4不用。

循环码译码,opt1是必须指定的生成多项式,可使用cyclpoly函数选择合适的循环多

cyclic

项式;opt2指定检错逻辑,如省略,则采用默认的单个纠错逻辑;opt3和opt4不用。

译码器输出msg与码字code的格式匹配,当码字是一个N列矩阵时,输出msg信息以K列矩阵表示。当decode函数输入的码字与encode函数输出的格式不一样时,这个函数停止工作。

用[msg,err]=decode(...)可以输出译码过程检测出的错误数。当err为负数时,它表示纠错逻辑对差错程度无能为力。

用[msg,err,ccode]=decode(...)输出纠正的码字。

用[msg,err,ccode,cerr]=decode(...)输出code每行的错误数。 3.hammgen函数

hammgen函数产生汉明码的校验矩阵和生成矩阵,调用格式如下:

h=hammgen(M) h=hammgen(M,p) [h,g]=hammgen(...) [h,g,N,K]=hammgen(...)

其中,M是校验位的长度;p是原始多项式;h是校验矩阵;g是生成矩阵;N是码字长度;K是信息位长度。

例如,对M=3的校验阵和生成阵可以用[h,g]=hammgen(3)很容易得到: h =

1 0 0 1 0 1 1 0 1 0 1 1 1 0

47

0 0 1 0 1 1 1 g =

1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 4.cyclgen函数

cyclgen函数产生循环码的校验阵和生成阵,调用格式如下:

h=cyclgen(N,p) h=cyclgen(N,p,'opt') [h,g]=cyclgen(...) [h,g,K]=cyclgen(...)

其中,N是码字长度;p是生成多项式;h是校验阵;g是生成阵;K是信息位长度;opt用于产生给定选项的校验阵。

·opt=nonsys时,生成一个非系统的循环校验阵。 ·opt=system时,生成一个系统的循环校验阵。 5.cyclpoly函数

cyclpoly函数可产生一个给定码长N和信息位长度K的生成多项式p,调用格式如下:

p=cyclpoly(N,K)

p=cyclpoly(N,K,'fd_flag'),可根据fd_flag寻找生成多项式。

·fd_flag=min时,寻找最小阶数循环生成多项式。 ·fd_flag=max时,寻找最大阶数循环生成多项式。 ·fd_flag=all时,对所有给定阶数的生成多项式进行搜索。 ·fd_flag=L时,搜索有L项的生成多项式。 如果没找到满足条件的多项式,p为空输出。 6.gen2par函数

gen2par函数是生成矩阵和校验矩阵的转换函数,调用格式如下: 格式:h=gen2par(g)

g=gen2par(p)

其中,g是生成矩阵,h是校验矩阵。

三、设计内容

1.(7,4)汉明码的校验矩阵为

48

1  1  0  1  0  0??1  ?

H??0  1  1  1  0  1  0???1  0  1  0  0  1??1  ?用MATLAB求(7,4)汉明码的码字。

2.假设(7,4)线性分组码的生成矩阵为

1  0  1  0  0  0??1  ?0  ?1  1  0  1  0  0? G???1  1  1  0  0  1  0???1  0  1  0  0  0  1??用encode函数和decode函数实现编译码。

3.给出(15,9)循环码的所有生成多项式。

4.求x?1的所有因子,构造(15,4)循环码的所有可能的生成多项式,挑出一个作为(15,4)的生成多项式,得到所有的码字。

5.设(7,4)循环码的生成多项式为g(x)?x3?x2?1,求出所有许用码组,并用encode函数和decode函数实现编译码,计算错误数。

15

49

参考文献

[1] 普罗克斯,萨勒斯.现代通信系统——使用MATLAB.西安:西安交通大学出版社.2001 [2] 刘敏,魏玲.MATLAB通信仿真与应用.北京:国防工业出版社.2001

[3] 李建新,刘乃安,刘继平.现代通信系统分析与仿真——MATLAB通信工具箱.西安:

西安电子科技大学出版社.2000

[4] 赵静,张瑾,高薪科.基于MATLAB的通信系统仿真.北京:北京航空航天大学出版

社,2007

[5] 郭文彬,桑林.通信原理——基于Matlab的计算机仿真.北京:北京邮电大学,2006 [6] 邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析.北京:清华大学出版社.2008 [7] 罗卫兵,孙桦,张捷.SystemView动态系统分析及通信系统仿真设计.西安:西安电

子科技大学出版社,2001

[8] 樊昌信,曹丽娜.通信原理(第六版).北京:国防工业出版社.2006 [9] 李白萍,吴冬梅.通信原理与技术.北京:人民邮电出版社.2003 [10] 李白萍,张鸣.通信原理上 …… 此处隐藏:1645字,全部文档内容请下载后查看。喜欢就下载吧 ……

通信系统仿真上机实验指导书(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/413092.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)