HARQ发展_harq技术

HARQ发展_harq技术自动重发请求含义,以及混合自动重发请求(包括Type-I,和CC-HARQ,IR-HARQ)的编译码方式。包括在传统HARQ的基础上衍生出来的时分复用,码分复用,功率域复用的HARQ

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

HARQ(Hybrid Automatic repeat request)混合自动重发请求

先介绍几个要素:

  1. Forward error correction (FEC)前向纠错:通过增加冗余信息进行错误检测;
  2. Automatic repeat request (ARQ)自动重发请求:
    (1)与TCP行为的数据包兼容;
    (2) 利用循环冗余校验(cyclic redundancy check,CRC)进行错误检测
    (3)接收端通过检测,如果解码成功,则返回ACK(positive acknowledgement),如果解码失败,则返回NACK(negative acknowledgement)
  3. HARQ
    (1) FEC + ARQ
    (2) FEC: 纠正一部分错误
    (3) ARQ: 仍然进行错误检测

ARQ的编码特点:
ARQ
这里TX是发射端,RX是接收端,可以看得出来,从TX发送包S1,但RX解码失败,然后把接收到的包丢弃,反馈NACK给TX,接着TX继续发送包S1,第二次RX解码成功,然后反馈ACK给TX,TX接收到反馈后开始发送新的包S2.

HARQ的编码特点

  1. Type-I HARQ: 也即传统的HARQ,相对于ARQ而言,加入了前向纠错。由于ARQ只是单纯的检查错误,如果有错误,则直接丢弃,而Type-I HARQ 不仅检查错误,当检查出错误之后,没有直接丢弃,二十尝试纠正错误,如果无法纠正错误,则丢弃该包,反馈NACK给发送端,发送端收到NACK,则重新发送与之前一样的包;
  2. Type-II HARQ: 在接收端考虑内存,根据编译码不同还分为IR-HARQ和CC-HARQ
    编码特点:
    HARQ
    在这里,在RX中考虑内存,即绿色框框代表的部分,除此之外,在TX端发送的数据包也被分为了几部分,如S1(1),S1(2),这个的不同具体和是IR还是CC有关。

IR-CC
追加合并HARQ(chase combining, CC): 发射端发送数据包S1,接收端接收到数据包,先对其检错(CRC),如果有错,然后尝试纠错(FEC),若还是不能成功解码,则将该包缓存,反馈NACK给发射端,发射端接收到NACK,然后再重传相同的包,接收端收到新的包,然后与之前的包叠加合并进行解码,直到解码成功或者达到最大重传次数。
增量冗余HARQ(Incremental redundancy, IR): 首先将信息经过编码后按照一定的周期打孔(在该图,就可以看到S1编码后,打孔为S1(1)和S1(2)),根据码率兼容原则发送给接收端,发送端进行译码,译码错误,反馈NACK给发射端,发射端重传S1(2),这不是简单的对前面包的复制,而是还加入了冗余信息,每一次重传的冗余信息量都是不同的,接收端然后进行组合译码,将之前接收的所有比特组合形成更低码率的码字,从而获得更大的编码增益,达到递增冗余的目的。

总结:
在这里插入图片描述

关于HARQ设计的自由度

  1. 功率自适应(power adaptation)
    在这里插入图片描述
    发送端在每一轮中都改变子码字的功率,每次发射功率都是根据反馈信息而进行改变,但是每一次发送,子码字的长度都是相同的。
  2. 长度自适应(length adaptation)
    在这里插入图片描述
    发送端在每次传输都改变带宽,传输功率是常数,带宽每次根据额外的反馈进行改变。
  3. 速率适应(rate adaptation)
    (1)时域复用
    在这里插入图片描述
    (2)码域复用

Cross-packet coding HARQ(叉包HARQ)[1]

在这里插入图片描述
叉包HARQ,在第一次解码失败后,发送端发送的数据包是旧的数据包和新的数据包叠加形成的数据包,并且以速率R2发送这个叠加后的数据包,接收端收到数据包,联合之前接收的数据包一起解码。
在这里插入图片描述

Layer-coded HARQ(L-HARQ)[2]

XP-HARQ的实际实施

在这里插入图片描述
在这里插入图片描述
参考文献:
[1] M. Jabi, E. Pierre-Doray, L. Szczecinski, and M. Benjillali, ”How to Boost the Throughput of HARQ with Off-the- Shelf Codes,” IEEE Trans. Commun., vol. 65, no. 6, pp. 2319-2331, June 2017.
[2] R. Sassioui, M. Jabi, L. Szczecinski, L. B. Le, M. Benjillali, and B. Pelletier, ”HARQ and AMC: Friends or Foes ?,” IEEE Trans. Commun., vol. 65, no. 2, pp. 635-650, Feb. 2017
[3] Jabi, M., Benyouss, A., Le Treust, M., Pierre-Doray, E., & Szczecinski, L. (2017). Adaptive cross-packet HARQ. IEEE Transactions on Communications, 65(5), 2022-2035.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219282.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何用格式工厂转换视频格式为mp4_格式工厂怎么转换avi

    如何用格式工厂转换视频格式为mp4_格式工厂怎么转换avi第一步:选择输出格式MP4。【▲图1】第二步:打开源视频文件。【▲图2】第三步:打开输出配置,选择视频编码:AVC(H264)。【▲图3】第四步:点击开始。【▲图4】第五步:找到输出视频。【▲图5】…

    2022年10月10日
    0
  • blender2.9教程_赖世雄入门篇

    blender2.9教程_赖世雄入门篇Blender2.8基础(一)基础操作与常用快捷键▶Ctrl+N:创建新工程一、视图操作1、放大视图▶视图最大化显示:Ctrl+空格(左键点击视图任意地方可以选择视图,然后按Ctrl+空格可以最大化显示视图。)▶切换全屏模式:Ctrl+Alt+空格2、切换视图▶切换视图:Alt(按住不放)+按住中键上下或左右移动鼠标(每切换一次视图就必须重新按一下中键并移动鼠标)▶……

    2022年8月10日
    7
  • 什么是MVC软件架构模式_mvc架构的设计思路

    什么是MVC软件架构模式_mvc架构的设计思路缘起:作为程序员,很容易天天被业务追逐着,抽不开时间修炼。有一天突然停了一下,忽地就会有一种怅然的感觉,过去的那些日子我学到了什么?有人很认真地说自己有10年经验,有人笑说你不过是一年经验用了10年而已。

    2022年10月10日
    0
  • 用Protel 99 SE学习原理图的设计及pcb的绘制

    用Protel 99 SE学习原理图的设计及pcb的绘制学习Protel99SE的大致过程:原理图文件(*.Sch)–>网络表文件(*.NET)–>*.PCB 网络表文件:记录封装格式。 (封装是指元件的长宽、大小、位置。封装就是一种标准,用来规定元件制造出的实际大小) Pcb文件:它就是印制电路板的文件 protel软件:https://download.csdn….

    2022年5月30日
    29
  • 大数据——Flume+Kafka+Flume整合模式

    大数据——Flume+Kafka+Flume整合模式创建kafka主题#启动kafka服务kafka-server-start.sh/opt/software/kafka280cala212/conf/kraft/server.properites#创建主题#topic主题名test01#partitions分区数1#replication-factor备份数量1kafka-topics.sh–create–topictest01–partitions1–replication-factor1…

    2022年6月23日
    39
  • 广义表中关于tail和head的计算

    广义表中关于tail和head的计算根据表头、表尾的定义可知:任何一个非空广义表的表头是表中第一个元素,它可以是原子,也可以是子表,而其表尾必定是子表。也就是说,广义表的head操作,取出的元素是什么,那么结果就是什么。但是tail操作取出的元素外必须加一个表——“ ()“举一个简单的列子:已知广义表LS=((a,b,c),(d,e,f)),如果需要取出这个e这个元素,那么使用tail和head如何将这个取出来。利用上面说的,tai…

    2022年5月4日
    105

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号