通信原理板块——差错控制编码或纠错编码

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
在这里插入图片描述
1、背景
数字信号在传输过程中,由于存在干扰,码元波形将变坏。接收端收到后可能发生错误判决。由乘性干扰引起的码间串扰,可以采用均衡的办法纠正。而加性干扰的影响,先合理选择调制制度、解调方法以及发送功率,其次可以把差错控制作为附加手段。
差错控制是以降低信息传输效率为代价换取提高传输可靠性。
2、差错控制技术
从差错控制角度出发,按照加性干扰引起的错误分布规律不同,信道可以分为三类:随机信道(random channal)、突发信道(burst channal)和混合信道(mixed channal)。
随机信道:错码的出现是随机的,而且错码之间是独立统计的。
突发信道:错码是成串集中出现的,在一些短促的时间段内会出现大量错码,而在这些短促的时间段之间存在较长的无错码区间。成串出现的错码称为突发错码。产生的主要原因有:脉冲干扰和信道中的衰落现象
混合信道:既存在随机错码又存在突发错码,且哪一种都不能忽略不计的信道
差错控制技术主要有四种,检错重发、前向纠错、反馈校验、检错删除
(1)检错(error detection)重发(retransmission)
在发送码元序列中加入差错控制码元,接收端利用这些码元检测到有错码时,利用反向信道通知发送端,要求发送端重发,直到正确接收为止。
检测到有错码,是指在一组接收码元中知道有一个或一些错码,但不知道该错码应该如何纠正。
二进制系统中,可以通过对错码码元取补即能纠正,不需要重发;多进制系统中,即使知道了错码的位置,也无法确定其正确值。
采用检错重发技术,通信系统需要有双向信道传输重发指令。
(2)前向纠错FEC
接收端利用发送端在发送码元序列中加入的差错控制码元,不但能发现错码,还能将错码恢复其正确取值。
采用FEC时,不需要反向信道传送重发指令,也没有因反复重发而产生的时延,故实时性好。
为了能够纠正错码,不仅仅检测到有错码,还需要加入更多的差错控制码元。故设备要比检测重发设备复杂。
(3)反馈(feedback)校验(checkout)
不需要在发送序列中加入差错控制码元。接收端将接收到的码元原封不动地转发回发送端。在发送端将它和原发送码元逐一比较。若发现不同,则认为接收端收到的序列中有错码,发送端立即重发。
需要双向信道,因为每个码元都需要占用两次传输时间,传输效率比较低。
(4)检测删除(deletion)
和检测重发的区别在于,在接收端发送错码后,立即将其删除,不要求重发。只适用于在少数特定系统,在发送码元中有大量多余度,删除部分接收码元不影响应用。
3、纠错编码效率
(1)监督码元
在发送端需要在信息码元序列中增加一些差错控制码元,称为监督码元,监督码元与信息妈呀之间有确定的关系,比如某种函数关系,使接收端有可能利用这种关系发现或者纠正可能存在的错码。
差错控制编码又称为纠错编码。不同编码方法,有不同的检错或纠错能力。
(2)编码效率(code rate)、多余度以及冗余度
设编码序列中信息码元数量为k,总码元数量为n,比值k/n就是编码效率,或码率。监督码元数(n-k)和信息码元数k之比(n-k)/k称为冗余度
比如在编码序列中平均每两个信息码元就添加一个监督码元,这编码的多余度为1/3,编码效率为2/3。
4、自动要求重发系统(ARQ)
采用检错重发法的通信系统,通常称为自动要求重发ARQ系统
三种ARQ系统,停止等待ARQ系统、拉后ARQ系统和选择重发ARQ系统
(1)停止等待ARQ系统
数据按分组发送,每发送一组数据后,发送端等待接收端的确认ACK答复,然后发送下一组数据。若某一组数据有误,接收端发回一个否认NAK答复。发送端将重新发送该组数据。系统处于半双工(half-duplex)状态,传输效率较低。
在这里插入图片描述
(2)拉后ARQ系统
发送端连续发哦送数据组,接收端对于每个接收到的数据组都发回确认(ACK)或否认(NAK)答复。一旦接收某组数据有误,则在发送端收到该组数据的否认答复后,从该组数据从新发送数据组。需要对发送的数据组和答复进行编号,以便识别。需要双工通信。
在这里插入图片描述
(3)选择重发(selective repeat)ARQ系统
只重发出错的数据组,提高了传输效率
在这里插入图片描述
(4)ARQ系统原理框图
①在发送端,输入的信息码元在编码器中被分组编码,并加入监控码元,除了立即发送,还缓存于缓冲存储器buffer中。
②若接收端解码器检出错码,则由解码器控制产生一个重发指令。此指令讲过反向信道发送至发送端。
③发送端重发控制器控制缓冲存储器重发一次。
④接收端仅当解码器认为接收信息码元正确时,将信息码元送给收信者,否则在输出缓冲存储器中删除接收码元。
⑤当解码器未发现错码时,经过反向信道发出不需要重发指令,接收端收到此指令后,继续发送后一码组,发送端的缓冲存储器的内容也随之更新。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/153237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是策划能力?如何提高策划能力?

什么是策划能力? 通常我们理解的策划能力,大多指的是策划活动,比如举办一次活动先要进行活动策划,形成具体的行动方案,然后开展组织人力物力等资源,最终落地实施。策划能力包含活动策划,但又不…

vscode设置代码模板

一键生成vue3模板代码 效果演示 输入vue3 显示快捷键 按回车键 一键生成自定义模板 实现方法 进入用户代码片段设置 选择片段语言 vue.json输入自定义的代码片段 prefix是触发的内容,按自己的喜好来就行; body是模板代码,写入自己需要的…

UE TransformVector 学习笔记

假如算现在枪的位置,那么就是先拿人的位置再拿枪在本地的相对位置相加,就是枪的位置,也就是枪在场景中的位置,那么这里还可以写成Actor的变化和枪的相对位置连在TransformVector上,返回的就是枪的场景位置 这里做反算&…

会议剪影 | 思腾合力受邀出席第四届长三角文博会并作主题演讲

以“担当新使命:长三角文化产业的力量”为主题的「第四届长三角国际文化产业博览会」于2023年11月16日-19日在国家会展中心(上海)成功举办。思腾合力作为行业领先的人工智能基础架构解决方案商出席本次盛会。 此次展会的面积首次超过10万平米&#xff0c…

BUUCTF 菜刀666 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 流量分析,你能找到flag吗 注意:得到的 flag 请包上 flag{} 提交 密文: 下载附件,解压得到一个.pcapng文件。 解题思路: 1、双击文件,打开wir…

算法-简单-二叉树-翻转、对称

记录一下算法题的学习8 翻转二叉树 翻转二叉树题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 举例:给定root[5,3,7,2,4,6,10] 翻转成为root[5,7,3,10,6,4,2] 即所有的根节点的左右节点都要互换位置,输出的…

Python如何将项目直接打包为一键整合包

目录 一、准备项目 二、创建打包文件 三、创建安装脚本 四、执行安装 五、测试安装 六、常见问题与解决方案 总结 Python项目打包成一键整合包是一个比较复杂的任务,需要考虑到项目的各个方面,包括依赖项、配置文件、静态文件、数据库等等。下面是…

NX二次开发UF_CAM_ask_tool_matl_db_object 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_tool_matl_db_object Defined in: uf_cam.h int UF_CAM_ask_tool_matl_db_object(UF_CAM_db_object_t * db_obj ) overview 概述 This function provides the database object which is…

NX二次开发UF_CAM_ask_lower_limit_plane_status 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_status Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_status(tag_t object_tag, UF_PARAM_lwplane_status_t * status ) overview 概述 Query the…

NX二次开发UF_CAM_ask_opt_template_object 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_opt_template_object Defined in: uf_cam.h int UF_CAM_ask_opt_template_object(UF_CAM_opt_t * opt_object ) overview 概述 This function provides the object which is used to in…

〖大前端 - 基础入门三大核心之JS篇㊴〗- DOM节点的关系

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

[C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…

VulnHub DC-7

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

EtherCAT从站EEPROM分类附加信息详解:RXPDO(输入过程数据对象)

0 工具准备 1.EtherCAT从站EEPROM数据(本文使用DE3E-556步进电机驱动器)1 分类附加信息——RXPDO(输入过程数据对象) 1.1 分类附加信息规范 在EEPROM字64开始的区域存储的是分类附加信息,这里存储了包括设备信息、SM配置、FMMU配置在内的诸多信息。每个信息在一段连续的…

python实战—核心基础1(高考倒计时)lv1

目录 一、核心代码解释 二、代码 三、运行截图 一、核心代码解释 1、datetime模块 Python有一个名为datetime的模块,用于处理日期和时间。 datetime模块中定义的一个类是datetime类。 可以使用now()方法创建一个包含当前本地日期和时间的datetime对象。 impo…

Milvus Standalone安装

使用Docker Compose安装 Milvus standalone(即单机版),进行一个快速milvus的体验。 前提条件: 1.系统可以使用centos 2.系统已经安装docker和docker-compose 3.milvus版本这里选择2.3.1 由于milvus依赖etcd和minio&#xff0c…

公司电脑文件透明加密、防泄密管理软件系统

天锐绿盾数据透明加密系统是一款采用驱动层透明加密技术实现电子文件安全加密的防护产品,可以对企业电子文件的存储、访问、传播和处理过程实施全方位保护。该系统遵循基于文件生命周期安全防护的思想,集成了密码学、访问控制和审计跟踪等技术手段&#…

【开源】基于Vue.js的计算机机房作业管理系统的设计和实现

项目编号: S 017 ,文末获取源码。 \color{red}{项目编号:S017,文末获取源码。} 项目编号:S017,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课…

某app c++层3处魔改md5详解

hello everybody,本期是安卓逆向so层魔改md5教学,干货满满,可以细细品味,重点介绍的是so层魔改md5的处理. 常见的魔改md5有: 1:明文加密前处理 2:改初始化魔数 3:改k表中的值 4:改循环左移的次数 本期遇到的是124.且循环左移的次数是动态的,需要前面的加密结果处理生成 目录…