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

微信公众号上线,搜索公众号小灰灰的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,一经查实,立即删除!

相关文章

【寒武纪(13)】BANGC 报错 stack smashing detected

报错&#xff1a; *** stack smashing detected ***: <unknown> terminated *** stack smashing detected ***: <unknown> terminated CMake Error at mluop_generated_fault_kernel.mlu.o.cmake:221 (message):Error generating file/mnt/data/ef2301-sdk-0.10.0…

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

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

vscode设置代码模板

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

UE TransformVector 学习笔记

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

uniapp APP下载流文件execl 并用WPS打开

使用plus.downloader.createDownload 方法将新建下载任务 HTML5 API Reference export default function plusDownload(config){if(!config){console.error("Argument should not be null");return;}const urlrequest.baseUrlconfig.url;let token uni.getStorage…

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

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

PHP8新特性

PHP 8是PHP语言的最新版本&#xff0c;于2020年11月发布。它带来了许多新功能和改进&#xff0c;使PHP更强大、更高效。 1、JIT编译器&#xff1a;PHP 8引入了JIT&#xff08;即时编译&#xff09;编译器&#xff0c;它可以将PHP代码直接编译为机器代码&#xff0c;提高了执行速…

BUUCTF 菜刀666 1

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

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

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

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

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

上位机与下位机通讯方式(转载)

上位机&#xff1a;指可以直接发送操作指令的计算机或单片机&#xff0c;一般提供用户操作交互界面并向用户展示反馈数据。 典型设备类型&#xff1a;电脑、手机、排版、触摸屏等。 下位机&#xff1a;指直接与机器相连接的计算机或单片机&#xff0c;一般用于接收和反馈上位机…

Dotar(zsh,tmux,vim,ag)

Dotar是一个包含了zsh, spacevim(nvim), tmux和许多其它工具的多合一的Mac/Ubuntu开发环境 背景 Dotar的名字源于dot和tar的结合&#xff0c;代表者打包(tar)文件。 开始 需求 zsh, tmux, vim, ag已经安装&#xff0c;并且zsh作为你的默认终端: chsh -s $(which zsh)如果…

NX二次开发UF_CAM_ask_tool_matl_db_object 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海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…

解锁性能:玩转多线程编程的新姿势......

拥有多线程和拥有一百枚核弹没有区别&#xff0c;因为都是毁灭性的存在。——麦克阿瑟 在Java中&#xff0c;实现多线程主要有三种方式&#xff1a;继承Thread类、实现Runnable接口和实现Callable接口。 多线程的形式上实现方式主要有两种&#xff0c;一种是继承Thread类&…

NX二次开发UF_CAM_ask_lower_limit_plane_status 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海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 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海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…

hadoop 编写开启关闭集群脚本, hadoop hdfs,yarn开启关闭脚本。傻瓜式hadoop脚本 hadoop(九)

1. 三台机器&#xff1a; hadoop22, hadoop23, hadoop24 2. hdfs在22机器启动&#xff0c;yarn在hadoop23机器 3. 脚本需要hadoop用户启动才可以 4. 脚本&#xff1a; #!/bin/bashHADOOP_PATH"/opt/module/hadoop-3.3.4"# 检查脚本执行用户是否为 hadoop if [ &q…

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

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

11、利用大津算法完成一张图片的前景分割

上一篇文章介绍了大津算法,总的来说,大津算法的核心思想就两个: 数学上,通过确定一个像素阈值,来将图片中的像素分为两类,一类前景、一类背景,然后计算两类图像的类间方差,使方差最大。 工程实现上,为了确定像素阈值,采用遍历的方法来实现。 代码实现 下面通过一个…