基于循环码的差错控制编码建模与仿真1

基于循环码的差错控制编码系统建模与仿真

一、设计目的及要求

设计目标:通过利用MATLAB/simulink系统仿真功能,设计一个基于循环码的差错控制编码系统。

实验知识要求:循环码的编、译码原理,差错控制编码系统的特点。MATLAB/simulin系统仿真知识。

实验软件平台:MATLAB 7.0软件。

课程设计的任务

2.1循环码及差错控制编码的概念及理论基础

2.1.1循环码的概念及生成多项式

在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数的冗余位,该冗余位称为所发送信息序列的监督位。监督位一般是由所发送的信息序列经过恰当的变化而生成的。若监督位由信息位经线性组合而得到,则称得到的系统码为线性分组码。

在线性分组码中有一类重要的码,称为循环码。这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。循环码除了具有线性码的一般性质外,还具有循环性,即任一码组循环一位后仍然是该编码中的一个码组。(n,k )循环码表示其中信息位为k,监督位为n-k。

如果一种码的所有码多项式都是多项式g(x)的倍式,则称g(x)为该码的生成多项式。在循环码中,次数最低的非0首多项式就是生成多项式g(x),其他码多项式都是其倍数。(n,k)循环码的生成多项式g(x)一定是+1的因式:+1=g(x)h(x);反之,若g(x)为n-k次,且能被+1整除,则此g(x)一定生成一个(n,k)循环码。

2.1.2差错控制编码的基本概念

信道编码的目的是提高信号传输的可靠性,信道编码是在经过信源编码的码元序列中增加一些多余的比特,目的在于利用这种特殊的多余信息去发现或纠正传输中发生的错误。在信道编码只有发现错码能力而无纠正错码能力时,必须结合其他措施来纠正错码,避免删除错码带来的负面影响。上诉手段称为差错控制。

在对乘性干扰和加性干扰进行处理后仍不能达到误码率要求时,就需要采用差错控制措施。差错控制技术有以下4种:

检错重发:在发送码元中加入差错控制码元,当检测到有错码时,利用反向信道通知发送端重发。

前向纠错(FEC):接收端通过发送码元中的差错控制码元,不但能发现错码,而且还能纠正错码。

反馈校验:不需要在发送序列中加入差错控制码元,而是将接收到的码元全部转回发送端,在发送端逐一比较,如发现有不同,则发送端重发。

检错删除:在接收端发现错码后,立即将其删除,不要求重发。

为了在接收端能够发现或纠正错码,在发送码元序列中需要加入一些差错控制码元,称为监督码元或监督位。加入监督码元的方法称为差错控制编码方法或纠错编码方法。一般来说,加入的监督码元越多,检纠错能力就越强。另一方面,加入的监督码元越多,传输效率就越低。检纠错就是用降低传输效率换取传输可靠性的提高。

2.2 差错控制编码的基本原理

纠错编码:对原来的信息代码重新编写,根据需要增加一些监督码,使在输出端能够识别出错码。

分组码的结构:将信息码分组,为每组信息码附加若干监督码的编码称为分组码。在分组码中,监督码元仅监督本码组中的信息码元。

图2.1 分组码的基本结构

分组码的符号:(n, k)

N 表示码组的总位数,又称为码组的长度(码长),

k 表示码组中信息码元的数目,

n-k=r 表示码组中的监督码元数目,或称监督位数目。

2.3循环码的编码译码原理

2.3.1循环码的编码原理和方法

循环码在编码时,首先需要根据给定循环码的参数(n,k)确定生成多项式g(x),也就是从+1的因子中选一个(n-k)次多项式作为g(x)。利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x)。

根据上述原理,可以对给定的信息位进行编码。对于(n,k)循环码,设m(x)表示信息码多项式,根据循环码编码方法,其次数必小于k。而m(x)的次数必小于n,用m(x)除以g(x),可得余数r(x),r(x)的次数必小于g(x)的次数(n-k)。将r(x)加到信息位后作监督位,即将r(x)+m(x)就得到了系统循环码。因此,编码步骤可以归纳为:

用乘m(x)。这一运算实际上是把信息码后附加上(n-k)个“0”。例如,信息码为110,它相当于m(x)=+x。当n-k=7-3=4时,m(x)=+,它相当于1100000。

求r(x)。由于循环码多项式A(x)都可以被g(x)整除,也就是:

(2.1)

因此,用m(x)除以g(x),就得到商Q(x)和余式r(x),即

(2.2)

这样就得到了r(x)。

求A(x)。编码输出系统循环码多项式A(x)为:

(2.3)

例如,对于(7,3)循环码,若选用 ,信息码110时:

(2.4)

matlab循环码差错图样,基于循环码的差错控制编码建模与仿真1.doc相关推荐

  1. 基于matlab异步电机 s函数,基于MATLABS函数三相异步电机建模与仿真.doc

    基于MATLABS函数三相异步电机建模与仿真 基于MATLABS函数三相异步电机建模与仿真 [摘 要]该文对基于两相静止坐标系下的三相交流异步电动机进行分析,构造其数学模型,并用MATLAB /SIM ...

  2. 基于PID的车辆ABS建模与仿真

    基于PID的车辆ABS建模与仿真 1.背景 2.PID 3.汽车ABS原理 4.汽车ABS的数学模型 4.1 汽车动力学模型 4.2 汽车轮胎模型 4.3 汽车制动器模型 5.汽车 ABS 的 Sim ...

  3. matlab的死区环节,基于SIMULINK对非线性系统死区环节进行仿真

    龙源期刊网 http://www.wendangwang.com 基于SIMULINK对非线性系统死区环节进行仿真 作者:赵丽 来源:<价值工程>2010年第03期 摘要:主要是针对非线性 ...

  4. tcsc工作原理matlab仿真,基于Matlab的TCSC建模与仿真研究.doc

    基于Matlab的TCSC建模与仿真研究 基于Matlab的TCSC建模与仿真研究 第17卷第5期 2006年1O月 巾原T学院 JOURNALOFZHONGYUANINSTIT[ITEOFTECHN ...

  5. matlab的死区环节,基于SIMULINK对非线性系统死区环节进行仿真.doc

    基于SIMULINK对非线性系统死区环节进行仿真.doc 基于SIMULINK对非线性系统死区环节进行仿真 摘要:主要是针对非线性系统死区环节进行SIMULINK仿真,通过仿真分析来实现控制系统的优化 ...

  6. 基于Matlab的压力控制论文,基于Matlab \ Simulink的气体辅助注射压力控制系统的建模与仿真...

    第 17卷 第5期 奄锋 垃 专 瓣 .75 计 算 机 仿 真 睫龟 猢 年 9月 基 0- Matlab\Simulink的气体辅助注射压力 摘要 谖文推导出气体辅助注射压力控制系统的教学模型.井 ...

  7. 循环码差错图样matlab,基于MATLAB的(15,7)循环码的编译仿真.doc

    基于MATLAB的(15,7)循环码的编译仿真 <纠错码与差错控制> 课程设计 题目:基于MATLAB的(15,7)循环码的编译仿真 院(系) 信息科学与工程学院 专 业 通信工程专业 届 ...

  8. 基于simulink的信道化接收机建模与仿真

    目录 1.发送模块设计 2.接收模块的设计 3.仿真测试 4.基于matlab的误码率仿真 1.发送模块设计 16QAM的基本结构,首先我来设计QAM发送段的SIMULINK仿真模块. 基本工作流程为 ...

  9. matlab实现ad转换器,宝宝作业-基于Matlab流水线AD转换器行为级模型建模与仿真

    基于 Matlab 流水线 A/ D 转换器行为及模型建模与仿真 摘要:为了研究流水线A/D转换器的结构与性能,提出了一种完全采用Matlab对流水线A/D转换器进行行为级建模和仿真的方法.在充分掌握 ...

最新文章

  1. java使用Jxl和Poi读写Excel
  2. pytorch查看当前学习率
  3. AWS手动创建VPC
  4. commons-fileupload 上传图片路径到mysql_上传图片到服务器并将图片路径保存到数据库...
  5. mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
  6. Java SE 原生数据类型
  7. 开源ext2read代码走读之-ext2文件系统中的超级块及对应代码
  8. [Shapenet V1数据集] obj格式转binvox格式文件出现全为0的错误
  9. 苹果mac系统隐藏文件的显示和取消显示
  10. php session fixation,Session Fixation 原理与防御
  11. 写paper之ppt画图——不定期更新
  12. Android如何设置按钮图片(控件图片)大小自适应
  13. 【hdu】6441 Find Integer - 费马大定理
  14. 2019中兴校招流程回顾总结
  15. const与指针用法
  16. linux在线ipa签名,利用Cydia Impactor免越狱安装未签名APP教程 | ZMMOO
  17. 电子计算机快速算法,序列产生的快速算法
  18. 用Python画向日葵
  19. php与java的des加密解密
  20. 计算机远程教育网点,网络远程教育统考《计算机应用基础》电子表格部分练习(二)...

热门文章

  1. python如何编辑pdf_python3.6 导入并编辑pdf 错误在哪里啊
  2. PML之百分位数、数据分布、正态数据分布
  3. python sphinx_Python Sphinx使用实例及问题解决
  4. distinct group by一起用_用ggplot2来画带有对角线的热图。
  5. python实现文件转数组
  6. 使用case语句的3个诀窍
  7. Unity变量命名的6个重要提示
  8. Unity2020.1新功能探路:Profiler相关更新
  9. Blazor 服务器上带有 EF Core 的 Azure Cosmos DB
  10. 使用Github Actions构建、发布和部署NuGet软件包