大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
目录
第1章 物理层架构
对本章节的注解:
本章节内容的作用在于:从宏观感受物理层信道编码在整个物理层协议栈中的位置和作用,无需深究每个环节。主体内容从第2章节开始。
1.1 物理层内部功能协议栈
1.2 5G NR下行选项A
1.3 5G NR下行选项B
1.4 NR的物理层数据处理过程概述
(1)信道编码与交织:处于计算机通信领域,这是计算机的底盘和擅长的地方。
(2)调制解调: 二进制序列到复指数子载波序列的映射过程,这是从计算机领域到数字信号处理DSP领域的跨越! 从计算机通信领域向数字无线通信领域的跨越!从此处开始进入数字信号处理领域!
(3)多天线技术的层映射
(4)扩频预编码(仅仅用于上行,可选): 这是数字无线通信领域,在相同的频率资源,由“单一”空间向“码分”空间的跨越。
(5)多天线MIMO技术的预编码:这是数字无线通信领域中,在相同的频率资源,由“单一”空间向“分层”空间的跨越。
(6)无线资源映射RE mapping: 这是数字无线通信领域,这是由串行的时间域向并行的频率域的跨越。
(7)数字波束赋形:这是数字无线通信领域中,相同的频率资源,由“全向”空间向“波束局部”空间的跨越。
(8)OFDM变换(时域到频域的转换):这是各个独立的频域子载波信号到时域信号的转换,这是无线通信领域中,从频域信号到时域信号的跨越!
(9)RF射频调制:这是在无线通信领域中,由数字无线通信领域向模拟无线通信领域的跨越!!!
本文主要探讨LTE和NR的信道编码技术
第2章 物理层信道编码过程
2.1 NR物理层信道编码与交织过程
物理层信道编码与交织不是单一的编码,而是由一组编码组成。
以发送为例, 阐述物理层信道编码的过程以及其中涉及到的主要,接收过程与之相反。
(1)TrBlock:来自MAC层传输信道需要发送的数据块。
(2)CRC:对传输层数据块尾部添加CRC,这是一种检错技术。
(3)数据块分段处理,主要考虑MAC层和物理层处理的数据块的大小不同。
(4)数据块分段数据的CRC校验
(5)信道编码LDPC码,Polar码,这是一种纠错技术。
(6)速率匹配(Rate matching)是指传输信道上的比特被重发(repeated)或者被打孔(punctured),以匹配物理信道的承载能力(物理信道的承受能力受信道质量的限制),信道映射时达到传输格式所要求的比特速率。
(7)比特交织:指在传输前,将比特流中的比特重新排列,使差错随机化的过程,
交织的实施,基于如下的两个事实:
- 无线信道的干扰,通常是突发性的,而不是持续的、连续的干扰。
- 检错或纠错机制,只能应对个别比特的出错,不能应对大批量的比特的出错。法不责众。
(8)concatenation: 编码块的合并,把分组、速率匹配后数据重新进行合并。
2.2 信道编码概述
(1)信道编码的原因与动机
数字图形信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。
数字信号经过数字调制、模拟调制后,在信道中传输,也会出现各种干扰,导致接收端无法从接收到的电磁波中恢复二进制比特。
信道编码是:对二进制数据流进行相应的处理,使系统具有一定的检错、纠错和抗错(抗干扰)的能力,可极大地避免码流传送出错后的重传导致的性能的下降。
由于移动通信存在干扰和衰落,在信号传输过程中将出现差错,故对数字信号必须采用纠、检错技术,即纠、检错编码技术,以增强数据在信道中传输时抵御各种干扰的能力,提高系统的可靠性。
对要在信道中传送的数字信号进行的纠、检错编码就是信道编码。
(2)信道编码的理论基础
信道编码之所以能够检出和校正接收比特流中的差错,是因为加入一些冗余比特,把几个比特上携带的信息扩散到更多的比特上。为此付出的代价是:必须传送比发送信息比特所需要的更多的比特。
提高数据传输效率,降低误码率是信道编码的任务。
信道编码的本质是增加通信的可靠性。
(3)信道编码的代价:额外的开销
但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的,这就是我们常常说的开销。
这就好象我们运送一批玻璃杯一样,为了保证运送途中不出现打烂玻璃杯的情况,我们通常都用一些泡沫或海棉等物将玻璃杯包装起来,这种包装使玻璃杯所占的容积变大,原来一部车能装5000个玻璃杯的,包装后就只能装4000个了,显然包装的代价使运送玻璃杯的有效个数减少了。
同样,在带宽固定的信道中,总的传送码率也是固定的,由于信道编码增加了数据量,其结果只能是以降低传送有用信息码率为代价了。
将有用比特数除以总比特数就等于编码效率了,不同的编码方式,其编码效率有所不同。
(4)误码处理的方法
- 检错技术:奇偶校验、CRC校验、MD5完整性校验等。
- 纠错技术:分组码、卷积码、出错重传、前向纠错等。
- 交织技术:把突发性、收到干扰的比特块中的比特打散,分散到不同的地方。
- 线性内插等。
2.5 冗余信息与增益之间的关系
冗余信息越多,信息正确传输的增益越大,冗余信息的增加与增益的关系并非是线性的,而是log关系。
校验位长度(n-k)与信息位长度k的比值,称为编码开销。
开销越大,FEC方案的理论极限性能越高,但增加并不是线性的,开销越大,开销增加带来的性能提高越小。开销的选择,需要根据具体系统设计的需求来确定。
上图中,冗余信息的开销比例在30%左右性价比是最高的,经济价值是最高的。
第4章 常见的检错技术
所谓检错:就是检查数据是否有数据比特传输出错,但无法确定哪一位出错,也无法纠错的技术。
因此,纠错的结果纠偏措施:就是请求发送方对整个数据块进行重传,重新发货。
4.1 奇偶校验
(1) 奇偶校验概述
奇偶校验(Parity Check)是一种校验一组比特传输正确性的方法。
在数据比特发送时:在数据末位添加一个比特,确保所有传输的比特位中,1的个数是奇数或偶数。
在数据比特接收时:根据被传输的一组二进制比特的数位中“1”的个数是奇数或偶数来进行校验判断。
依据数据块中包含奇数个1的判断法则称为奇校验。
依据数据块中包含偶数个1的判断法则称为偶校验。
(2)编码效率 = N/(N+1)
- 仅需要1个比特的冗余信息
(3)检错效率
- 偶校验只能检验处奇数位出错;
- 奇校验智能检验处偶数位出错。
(4)应用场合
- 物理传输信道可预测,且信道稳定,误码率低的场合。如RS232串口通信。
- 使用与少量比特数据的传输,如7bit的ASCII码的传输。
(5)优点
- 软硬件实现简单:奇偶校验位是一个表示给定位数的二进制数中1的个数是奇数或者偶数的二进制数,奇偶校验位是最简单的错误检测码,
- 编码效率高:仅仅需要增加一个比特的冗余位。
(6)缺点:
- 只能检错:如果传输过程中包括校验位在内的奇数个数据位发生改变,那么奇偶校验位将出错表示传输过程有错误发生。因此,奇偶校验位是一种错误检测码,但是由于没有办法确定哪一位出错,所以它不能进行错误校正。发生错误时必须扔掉全部的数据,然后从头开始传输数据。
- 在噪声很多的媒介上成功传输数据可能要花费很长的时间,甚至根本无法实现。
4.2 CRC校验
(1)CRC校验概述
循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术。主要用来检测或校验数据传输或者保存后可能出现的错误。
它是利用除法及余数的原理来作错误侦测的。其基本思想是将要传送的信息M(X)表示为一个多项式L,用L除以一个预先确定的多项式G(X),得到的余式就是所需的循环冗余校验码。这种校验又称多项式校验。
“循环”是指:使用传送的信息比特组成的多项式除以特征多项式,循环求余数,直到留下最后的余数。
“冗余”是指:添加一定比特的冗余比特,这些冗余比特的数值,是相除之后的余数,余数比特序列与待传输的比特序列和特征多项式是相关的。
比如:
(1)设约定的生成多项式为G(x)=x4+x+1,其二进制表示为10011,共5位,其中k=4。
(2)假设要发送数据序列的二进制为101011(即f(x)),共6位。
(3)在要发送的数据后面加4个0(生成f(x)*xk),二进制表示为1010110000,共10位。
(4)用生成多项式的二进制表示10011去除乘积1010110000,按模2算法求得余数比特序列为0100(注意余数一定是k位的)。
(5)将余数添加到要发送的数据后面,得到真正要发送的数据的比特流:1010110100,其中前6位为原始数据,后4位为CRC校验码。
(6)接收端在接收到带CRC校验码的数据后,如果数据在传输过程中没有出错,将一定能够被相同的生成多项式G(x)除尽,如果数据在传输中出现错误,生成多项式G(x)去除后得到的结果肯定不为0。
(2)编码效率
- 常见的CRC多项式有CRC16和CRC32, 增加的冗余比特为16bit或32比特。
(3)应用场合
- 广泛应用大量比特传输的数据通信场合。
(4)优点
- 电路实现简单
- 能够实现大数据比特通信的场合
(5)缺点
- 只能发现错误,而不能纠正错误。
- CRC校验比特流的长度与CRC冗余的长度关系:2^n-1, 如CRC16只能应对2^16=65535个比特。
4.3 MD5完整性校验
(1)MD5概述
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组。
经过了一系列的处理后,算法的输出由4个32位的分组组成,将这4个32位分组级联后将生成一个128位(4*32=128) 散列值.
(2)编码效率
- 增加128比特的冗余信息,这128比特的信息反映了原始数据的特征。
(3)应用场合
- 大量数据比特完整性校验和保护。完整性校验的本质是对数据比特的检错。
- 数字签名
- 文件完整性检查
- 密码保存
- MD5只能对整个大数据块进行校验。
(4)特点
- 压缩性:无论数据长度是多少,计算出来的MD5值长度相同,为128bit (16字节)
- 容易计算性:由原数据比特序列容易计算出MD5值序列
- 抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异,其分散特性极强。
- 抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值相同的原数据,即很难根据MD5的值,反推出原始数据序列。
第5章 常见的纠错技术
所谓纠错:就是检查数据是否有数据比特传输出错,并且能够确定是哪一位出错,同时能够把出错自的比特纠正为正确的比特。(一旦确定哪一位出错,其实就可以纠错,因为二进制只有0和1两种状态)
为了更好的理解物理层的纠错编码技术,这里会从前向纠错码FEC的概念开始,并且先谈谈LTE的信道编码技术,最后再阐述大名鼎鼎的Polar以及与之对应的LDPC。
5.1 什么前向纠错码FEC
前向纠错编码(FEC)并非是某一个具体的编码技术,而是一类纠错编码技术的统称。
之所以“前向”纠错,该技术纠错的是针对已经接收到的比特数据,称之为前向纠错。
“前向”纠错对应的就是“后项”纠错, 后项纠错,简单的讲,就是请求发送方重新再发送一份相同的数据。很显然,前向纠错的难度远远大于后向纠错。
前向纠错编码(FEC)技术通过在传输码列中加入冗余纠错码(不仅仅是检错),在一定条件下,通过解码可以自动纠正传输误码,降低整体的接收数据的误码率(BER)。能够被自动纠错的传输出错比特,可以认为是正确传输的比特,客观上起到了抗干扰的能力。
纠错的好处:避免整个数据包中只有部分bits传输出错,而重传整个数据的情形。
纠错的缺点:需要增加比检错更多的冗余信息,有效数据占比得到很大的降低,数据编码率下降。
在信道质量良好的情况下,多余的冗余比特就是一种资源的浪费。
但在信道质量不好的情形下,纠错功能极大的降低了数据的重传,提升了整体的性能。
FEC技术是一种广泛应用于通信系统中的编码技术。
分组码:
以典型的分组码为例,其基本原理是:在发送端,通过将kbit信息作为一个分组进行编码,加入(n-k)bit的冗余校验信息,组成长度为n bit的码字。
码字经过信道到达接收端之后,如果错误在可纠范围之内,通过译码即可检查并纠正错误bit,从而抵抗信道带来的干扰,提高通信系统的可靠性。
在光通信系统中,通过FEC的处理,可以以很小的冗余开销代价,有效降低系统的误码率,延长传输距离,实现降低系统成本的目的。
(1)编码开销:
假设有效数据长度为k,编码后的数据长度为n,则冗余信息为n-k。
校验位长度(n-k)与信息位长度k的比值,称为编码开销。
开销越大,FEC方案的理论极限性能越高,但增加并不是线性的。
开销越大,开销增加带来的性能提高越小。
开销的选择,需要根据具体系统设计的需求来确定。
(2)判决方式:
FEC的译码方式(检错、纠错的方式)分为硬判决译码和软判决译码两种。
硬判决FEC译码器输入为0,1电平,由于其复杂度低,理论成熟,已经广泛应用于多种场景。
软判决FEC译码器输入为多级量化电平。
在相同码率下,软判决较硬判决有更高的增益,但译码复杂度会成倍增加。
微电子技术发展到今天,100G吞吐量的软判决译码已经可以实现。随着传送技术的发展,100G时代快速到来,软判决FEC的研究与应用正日趋成熟,并将在基于相干接收的高速光通信中得到广泛应用。
(3)码字方案:
当确定开销和判决方式后,设计优异的码字方案,使性能更接近香农极限,是FEC的主要研究课题。
目前,软判决LDPC码,由于其良好的纠错性能,且非常适合高并行度实现,逐步成为高速光通信领域主流FEC的方案。
后面会继续讨论LDPC码与Polar码的进一步的细节。
5.2 纠错的基本原理:海明码
5.2.1 为什么要了解海明码?
海明码本身是一种只能纠正一个bit出错的场景,原理简单,在4G&5G中也没有应用。
但海明码是理解更复杂的纠错码的基础,通过对海明码的理解,可以理解纠错码的基本原理,强烈建议在理解LTE Turbo码和NR的Polar码之前,先理解海明码的原理!!!
海明码是最简单的纠错码,通过理解海明码,可以理解纠错编码工作原理:
- 如何发现错误比特所在的比特位;
- 纠错码是如何纠错的?
其中发现错误比特的位置是根本。
纠错很容易,因为二进制比特只有0和1,如果发现特定的比特出错,只需要取反就实现了纠错的功能。
5.2.2 海明码的基本原理:冗余校验位与数据为的关系:
5.2.3 海明码的基本原理:发送时的编码过程
即用4个冗余位就可以完成对8比特bit中任意比特纠错的能力。
校验码的插入位置:
校验位负责校验的比特数:
把每个比特位置进行分解,分解成指数数值的累加和。
1 = 2^0
2 = 2^1
3 = 2^1 + 2^0
…….
位置1的校验位,负责所有比特位置中包含1位置的那些比特, 这里就是奇数位。
位置2的校验位,负责所有比特位置中包含2位置的那些比特, 这是2,3,6,7, 10, 11
位置4的校验位,负责所有比特位置中包含4位置的那些比特, 这里是4,5,6,7,12
位置8的校验位,负责所有比特位置中包含8位置的那些比特, 这里就是8,9,10,11,12
5.2.4 海明码的基本原理:接收时的解码纠错过程
备注:1 -》出错 =》 0
备注:校验正确
备注:校验出错。
备注:校验出错。
备注:校验正确
出错的第2个校验:2,3,6,7,10,11
出错的第4个校验:4,5,6,7,12
正确的第1个校验:1,3,5,7,9,11
结论:第6位出错,第7位不出错。
纠错:第6位取反。
- 在数据接收时,先把接收到的比特进行分组,
- 对每个分组在进行偶校验
- 如果组内没有比特出错,则校验结果为0
- 如果组内有比特出错,则校验结果为1,
- 最后每个组的校验结果组合在一起,得到一个二进制序列,这个二进制序列的值就是出错的位置。
- 最后进行纠错:指定位置的比特取反。
5.2.5 优缺点
(1)优点:
- 由于汉明编码简单,它们被广泛应用于内存(RAM)。
(2)缺点:
- 只能发现一个bit的出错时的位置
(3)需要注意和强调的是:
- 海明码是一种就纠错码
- 纠错的冗余信息并不是添加到整个二进制比特块的最后,而是插入到二进制比特的中间。
- 或者说,先把待编码的数据进行分组,冗余纠错码信息是插入到每个分组块的尾部,而不是以整个数据比特块的尾部。因此,纠错码,又称为分组纠错码。
这里有关于海明码的比较详细的、形象的说明,请参考:
说人话,人话,汉明码(海明码、hamming code)通俗易懂的解释,说人话。_Yonggie的博客-CSDN博客_汉明码
5.3 Turbo码,Polar码,LDPC编码比较
(1)三码之争
江湖传言:
LDPC码的发明者美国人Robert Gallager是香农的学生。
Polar码的发明者土耳其的Erdal Arkan是Gallager的学生。
在5G的三码竞争中,Turbo首先出局。
(2)Turbo码概述
Shannon 编码定理指出:如果采用足够长的随机编码,就能逼近Shannon 信道容量。
Turbo 码是一种巧妙的编码方式,它巧妙地将两个简单分量码通过伪随机交织器并行级联来构造具有伪随机特性的长码,并通过在两个单出入单输入(SISO)译码器之间进行多次迭代实现了伪随机译码。
Turbo的故事:
Turbo码 – 接近完美的编码_随风而去飘飘飘的博客-CSDN博客_turbo码
LTE物理层之信道编码–数据信息编码:turbo编码_浪迹天涯_的博客-CSDN博客_吴宇飞turbo码解释
(3)Polar码概述
极化码(Polar Codes)是一种新型编码方式,也是目前3GPP标准制定中的业务信道的编码技术方案。
通过对华为极化码试验样机在静止和移动场景下的性能测试,针对短码长和长码长两种场景,在相同信道条件下,相对于Turbo码,可以获得0.3~0.6dB的误包率性能增益,
同时,华为还测试了极化码与高频段通信相结合,实现了20Gbps以上的数据传输速率,验证了极化码可有效支持ITU所定义的三大应用场景。
(4)LDPC码概述
LDPC是Low Density Parity Check Code英文缩写,意思是低密度奇偶校验码,
(5)LDPC与Polar的比较
5.4 物理层编码算法的多样化
长码:物理层业务数据信道采用LDPC编码
短码:物理层小区广播信道采用Polar编码
5.5 UCI, DCI的编码策略
不同长度的数据,采用了不同的编码策略。
短码:只有K>11是才采用Polar码,且长度不同,采用不同的Polar码编码选项。
超短码:其他编码
第6章 速率匹配
6.1 为什么需要速率匹配
无线信道的质量是随时变换的,而不是固定不变或事先确定的。
不同的信道质量,调制解调的方式不同。
无线信道质量越好,越可以采用高阶调制,且相同的RE时频资源,传输的数据速率越高。
也就说,分配给用户的业务信道,即使是时频资源都不发生变化,通过其传输的数据速率也是根据业务信道的质量变化实时变化的,取决于调制阶数。
无线信道的传输速率,决定了单个TTI调度周期内,在该信道上传送的比特的数量。
6.2 什么是速率匹配
经过物理层信道分组和编码后的二进制比特流,并没有速率信息。
速率匹配:就是根据物理层信道实时的传输速率,对MAC层数据块分组和编码后的二进制比特流,进行切割或填充,以便符合物理层信道的速率要求,即切割成单个TTI调度周期内能够传送的比特数。而这种切割是每个TTI调度周期内都要进行。
6.3 速率匹配的决定因素有:
- 信道的质量: CQI
- 信道的调制方式,BPSK, QPSK, xQAM
- 子载波的带宽
- 信道的带宽,即信道占用多少个子载波时频资源
6.4 速率匹配的机制
速率匹配采用的是一种循环缓冲buffer的机制,用于管理速率匹配的数据,同时能够支持数据重传缓存。
第7章 交织/加扰
7.1 无线信道检错纠错的局限
在前面的描述中,可以知道,无线信道的检错和纠错能力,与一个因素有极大的关系:就是接收到比特的出错比特数。
任何一种编码方式,出错比特的检错和纠错的能力是有限制的,当连续出错的比特超过编码能力的时候,就无法实现检错或纠错。
这种情况下,就只能通过上层的控制逻辑,重新发送整个数据块来实现数据安全传输。
7.2 无线信道的特征与降低出错率的方法
有没有某种技术,能够降低数据在空口中传输的二进制比特的出错率呢?
现有的降低比特出错的技术:
- 比如提高信号的发射功率,提高信噪比。
- 比如使用低阶的调制方式,增加容错能力,当然这种方式,是通过牺牲数据传输的比特来换取出错的比特的。
- 降低数据发送的速率。
这些方案的特点:
- 确实能够减低二进制比特在空口中传输的出错率
- 但也牺牲功率资源或牺牲了频谱资源,
- 上述方案解决的是恒定干扰造成出错率问题。
然而,无线信道有一种显著的特点,就是干扰有时候属于突发性的干扰:突然有一小段时间,有一个比较大的干扰。
对于这样的干扰,上述的技术实际上是无法解决的。
如何解决突发性的干扰呢?
7.3 交织的来源和基本思想
交织技术正是为了应对突发干扰而出现的。
它同通过把突发性的、批量出错的二进制比特,分散到不同的数据块的分组中,从而降低分组块内比特出错的比特数,在结合纠错编码,完成对出错信息的纠错。
该基本思想,有点类似于我军在整体收编国军时采用的策略:
如果说被收编整个队伍中的每个军人是容易感到干扰的信号或二进制比特,那么为了防止整个收编军队中人员的失控,就需要把收编的人员,进行拆分,分散到我军的各个连队中(我军人员是不容易受到干扰的二进制比特)
这样,即使是被整个收编的全部人员思想都是容易受干扰的,不坚定的,也会不会导致失控,最终会经过我军的政治思想工作(纠错编码),被纠正过来。
7.4 交织编码的基本原理
(1)交织矩阵
发送端:经过物理层信道编码的二进制比特流,按照行行写入内存中,然后在按列读出来,这完成了二进制比特的交织。
信号传输:交织后的二进制比特,通过突发干扰的信道进行传输。
接收端:把收到的数据,列的方式写入,然后在按行的方式读出,完成了去交织的过程,发送突发干扰出错的比特块中的出错比特,被分散到接收到的数据流序列的各个地方,而不是连续出错。
(2)交织示意图
在上图中,连续出错的4个红色的方框,去交织后,出错的比特被分散到了4个不同的块中,每个块中,只有一个红色的出错方框。
由于每个块,都经过纠错编码,都有纠错的能力,因此,即使在传输过程中,出现连续的出错比特,接收端也会比纠正过来。
去交织后,错误比特被分散到多个不同的数据块中,这样就可以通过纠错机制,就行纠错。
【学习笔记】数据链路层的差错控制——检错编码与纠错编码(海明码、奇偶检验码与CRC循环冗余码)_喂盐的博客-CSDN博客_数据链路层中差错控制的两种基本编码
LTE物理层之信道编码–数据信息编码:turbo编码_浪迹天涯_的博客-CSDN博客_吴宇飞turbo码解释
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/222900.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...