4G网络数据传输流程 三

news/2024/11/7 10:39:51/

原文:微信公众号 Wisdom365

摘要:这是4G网络数据传输流程系列的第三课,上一课讲了资源调度,备好粮草,这一课我们集结兵马,趟一趟物理层处理流程。先讲从传输块TB到码字(CW,Code Word),重点是信道编码和速率匹配。有请小编Bob。

物理层处理的起点是MAC层传下来的TB,终点是生成基带OFDM信号。然后上变频或下变频将基带OFDM信号变成射频信号,通过天线发射出去。与资源调度一样,物理层处理也分上行和下行,二者处理流程类似,仍然以下行为例介绍(还记得不?下行是指Bob从基站下载小视频~,关注公众号“wisdom365”了解更多)。

上行和下行处理流程区别在哪?有两点:

(1)下行可以同时处理两个TB,上行只能处理1个TB(注:R10版本上行最多可支持四流传输,此时上行也能同时处理2个TB,但基本未商用);

(2)下行采用OFDM方式,上行为避免峰均比过高采用SC-OFDM,因此,上行处理在层映射和预编码之间增加一步:变换预编码,以达到上行单载波目的。

由于物理层处理步骤实在是太多了,小编只能分成两篇文章来讲,第一篇讲述第1步~第5步(上图中标灰的框),第二篇讲述第6步~第11步。

物理层处理--从TB到码字

下行能同时处理两个TB,两个TB的处理流程完全相同,因此小编就以一个TB处理流程为栗子,力求说清楚每一步干什么?从哪来?到哪去? 怎么做?

 

第二步:码块分割。把大码块分割成小码块,每个小码块继续添加24bit的CRC校验。

A:每次码块都要分割吗?

A:如果是,为什么要分割呢?

A:如果不是,什么样的码块要分割呢?

B:不是所有码块都要分割,只有那些很大的码块才要分割。

A:多大?

B:据《圣经》3GPP TS 36.212记载,大于6144bit的码块才要分割。

A:为什么是6144bit?6666不行吗?多吉利

B:。。。定义6144是因为下一步信道编码中能处理的最大数据块就是6144bit。

假设有1个很大的TB传下来,数据块后附加24bit CRC校验,发现大于6144bit,则再次分割(假设分成两块),每块后再附加24bit CRC校验。

 

第三步:信道编码。地球人都知道信道编码的目的是保证信息传输不出错,提高可靠性,否则Alice传过去的小视频就都是马赛克了~~。

怎么实施信道编码呢?简单讲, 发送端在信息bit后附加校验bit,使信息bit和校验bit有一定的数学关系,称为编码;接收端收到后猜传的是1还是0,称为译码,当然这里的猜可不是拍大腿猜,是通过算法有理有据的猜。按照校验bit和信息bit之间的关系可以把信道编码分为线性分组码和卷积码,区别在于,线性分组码的校验bit只和它们要保护的当前传输的信息bit有关系,而卷积码的校验bit除和当前传输的信息bit有关外,还和前一时刻传输的信息bit有关(好绕啊。。),第一步的CRC就可以认为是线性分组码,3G WCDMA采用的就是卷积码。

在4G中,采用的信道编码是著名的Tur..bo..码, 码率为1/3。这一步里,针对第二步码块分割后得到的每个码块独立进行信道编码,输出三行数据,分别是:系统比特流,第一校验比特流,第二校验比特流。

A:话说Turbo不是涡轮发动机的意思吗?Turbo码到底是什么?

B:Turbo码是C. Berrou与A. Glavieux在1993 年瑞士日内瓦举行的IEEE ICC国际通信学会上首次提出的一种级联码,基本原理是编码器通过交织器把两个分量编码器进行并行级联,两个分量编码器分别输出对应校验bit;译码器在两个分量编码器之间进行迭代译码,分量译码器之间传递去掉正反馈的外信息,整个译码过程类似涡轮工作,所以就把这个编码方法称为涡轮码,错了,是Turbo码。

A:说人话。。。

B:Turbo码编码器其实就是把两个卷积码编码器并行起来,中间加一个交织器,也叫做并行级联卷积码。因为有两个卷积码编码器,每个编码器都会输出校验bit,所以Turbo码输出两个校验bit流,称为第一校验bit流和第二校验bit流,加上原始数据,共输出三行数据。一图胜千言,看下图。

A:然后呢?

B:编码器中的这个交织器可是神来之笔,Turbo码有增益全靠有它。在4G网络里,这个交织器最大能处理的数据长度是6144bit,这也是为什么第二步里超过6144bit的码块要被拆了。

A:欧,然后呢?

B:Turbo译码器是两个串联的卷积码译码器,第一个译码器的输出通过交织器打乱顺序后作为第二个译码器的输入,第二个译码器的输出再送回去作为第一个译码器的输入,循环迭代,直到译码完毕。一图胜千言,看下图。

A:为什么这么折腾呢?

B:这是Turbo码的核心和显著特征,使用外信息进行一次次迭代译码,如此保证Turbo的高性能。

A:举个栗子?

B:在Turbo码之前,译码不使用外信息,若要判断一个比特是0还是1,你觉得它像1就是1。如果这时周围的小伙伴告诉你这个比特更像0,这个信息就是外信息,是排除了自身判断由别人得到的信息。使用外信息做判断的时候,就要把周围人的判断和自己的判断进行比较,综合两方面得到最终结果。多听听别人意见总是有好处,集思广益嘛。所以Turbo码使用外信息进行迭代解码这一思路,开启了现代编解码理论的大门。

A:恩恩。那码率1/3是什么意思?

B:信道编码要在信息bit后附加校验bit,信息bit位数/(信息bit位数+校验bit位数)就是码率。1/3的码率就是说对于1个信息bit,要算出2个校验bit来保护它,这样信道编码后得到的数据总长度就是原来的3倍。

A:好复杂的样子...

B:讲了这么多,也是为了纪念Turbo码。2016年10月14日在葡萄牙里斯本,3GPP RAN1确定LDPC码为5G信道编码长码方案,Turbo码结束了在3G、4G时代长达十几年的统治。

A:一个时代的落幕,确实让人唏嘘,不过和咱们吃瓜群众有关系吗?

B:有啊,话说我曾立志在广袤的大草原中寻找一匹好码,从Turbo到LDPC到polar到喷泉

A:套码的汉子你威武雄壮...

 

第四步,速率匹配。信道编码后的数据最终要通过无线资源传输,但是数据量和传输资源往往不匹配,有时传的数据量多而传输资源不够,有时数据量少而传输资源多,这就需要把这两部分匹配起来,叫做速率匹配,一般有两种方法:(1)打孔,扔掉一些数据bit;(2)重复,复制数据bit充数。

在4G网络,每一个码块信道编码后,Turbo编码器并行输出三行数据,而最终传输的肯定是一行数据流,所以怎么把三行数据再变成一行数据流,首位相接,还是交插组队?无线传输资源不是固定不变的,得到的一行数据流与无线传输资源大小不匹配怎么办?这就是4G网络中速率匹配要解决的问题。

下图是速率匹配器结构图,Turbo信道编码后的三行数据同时输入,分别通过行列交织器后,存在缓冲器中,系统比特流排在缓冲器头部,校验bit流排在尾部。比特选择器在缓冲器中选择一个“起点”,并顺序选出指定大小的一行数据,作为输出。共有四种“起点”选择方式,对应我们常说的4个冗余版本(RV)。

 

第五步,码块级联。天下大事,合久必分,分久必合。数据处理也一样,第一步中,长度超出6144bit的大码块要分割,这是“分”;这一步,要把分割、信道编码后的码块再首尾相接连起来,这就是“合”。最终仍然得到呈“一字长蛇阵”的数据bit流,形式上和第一步的输入TB是一样的,不过这时数据流改名叫码字(CW,Code Word)。

OK,到这里,小编洋洋洒洒几千字讲完了4G物理层处理中从TB到码字的流程,其中重点是信道编码和速率匹配。下一课Bob小编将介绍4G网络哼哈二将MIMO和OFDM在物理层的实现和处理流程,完成物理层处理的收官之战,敬请期待。

 


http://www.ppmy.cn/news/172189.html

相关文章

百度地图4G无法定位

开发工具:eclipse 百度地图版本:Android定位SDK v7.1 测试手机:华为MT2-L01(Android4.4.2)、红米note4x(Android 6.0.1 MMB29M) 出现问题:WiFi定位成功,4G定位失败。 …

给自己的爱机T470p装上4g模块

为了方便自己的笔记本能正常使用网络,PS:接入公司网络的所有软件都需要授权。 方案一:自己手机开热点共享网络,共享网络的手机很耗电,并且平时使用的手机卡流量不多。 方案二:购买外置USB 4G上网卡托。需要占用一个U…

Worldclim(v1.4、v2.1)数据集使用介绍

最近在使用Worldclim的数据,在这里记录一下该数据集的使用。 如果你想得到过去、现在和未来的气候数据,那么你可以使用这个数据集:Worldclim数据集 该数据集包含了4种时期的气候数据:历史时期的末次盛冰期、全新世中期、当前时…

品牌出海3大营销新趋势

过去一年,跨境行业复杂多变,在成本剧增、利润承压之下,出海卖家们面临着诸多考验,但不管如何,可以肯定的是,未来跨境电商行业势必将迎来一波新增长。反之,随着行业竞争加剧,对卖家的…

SpringBoot + minio实现文件切片极速上传技术(敢说全网整合完整度前三)

一. 概述 提示:请不要多个博客来回跳着看,此文章之详细绝无仅有,融合多家之长,如果遇见报错,请仔细捋一遍文章,不要忽略!我在写的时候因为许多文章不全面,来回跳遇见许多坑&#xf…

系统学习计算机技术三要素:手快、眼快、脑子快

最近刚好想总结归纳一下自己这些年的学习路径和方法,没想到 CSDN 就搞了这样这样话题,既然这样就不能写一半放草稿箱里,一鼓作气写好,希望能帮到一些人。 这些年的经历告诉我,如果想系统的学习一门计算机相关的技术&a…

程序栈到底多大

有次面试被问到程序栈多大,故这里记一下。 栈大小与编译器有关,通常栈大小为1M。但在平时应用程序中,由于函数会使用栈结果,所以只能用略小于1M大小的栈 对于全局变量来说,与编译器有关。默认情况下全局变量数组大小是…

MinGW-w64

本文主要讲述如何安装 C语言 编译器——MinGW-w64,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用。 编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他人更容易理解作者的意图及思想。…