【5G NR 协议解读】3GPP TS 38.212 (R18) 复用和信道编码(二)

2024-03-18 00:20

本文主要是介绍【5G NR 协议解读】3GPP TS 38.212 (R18) 复用和信道编码(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本文基于3GPP TS 38.212 (R18) 复用和信道编码协议。

本文档规定了5G NR的编码、多路复用和物理信道映射。

5 总体流程

来自/去往MAC层的数据流和控制流会进行编码/解码,以便通过无线传输链路提供传输和控制服务。信道编码方案是错误检测、错误纠正、速率匹配、交织以及传输信道或控制信息映射到/从物理信道中拆分出来的组合。

5.1 CRC计算

用a0, a1, a2, ..., aA-1表示CRC计算的输入位,用p0, p1, p2, ..., pL-1表示奇偶校验位,其中A是输入序列的大小,L是奇偶校验位的数量。奇偶校验位由以下循环生成多项式之一生成:

  • Gcrc24A(D) = [D24+D23+D18+D17+D14+D11+D10+D7+D6+D5+D4+D3+D1+1]; L=24; 
  • Gcrc24B(D) = [D24+D23+D6+D5+D1+1] ;L=24;
  • Gcrc24C(D) = [D24+D23+D21+D20+D17+D15+D13+D12+D8+D4+D2+D1+1];L=24; 
  • Gcrc16(D) = [D16+D12+D5+1] ;L=16;
  • Gcrc11(D) = [D11+D10+D9+D5+1] ;L=11;
  • Gcrc6(D) = [D6+D5+1] ;L=6;

编码以系统形式进行,这意味着在GF(2)中,多项式:

  • a0D(A+L-1)+a1D(A+L-2)+...+a(A-1)D(L)+p0D(L-1)+p1D(L-2)+...+p(L-2)D(1)+p(L-1)

当上面的多项式被相应的CRC生成多项式除时,它的余数为0。

附加CRC后的位用 ( b_0, b_1, b_2, ..., b_{n-1} ) 表示,其中 ( n ) 是总位数。原始数据位用 ( a_0, a_1, a_2, ..., a_{A-1} ) 表示,其中 ( A ) 是原始数据的位数。( b ) 与 ( a ) 之间的关系可以通过串联CRC校验位和原始数据位来表示:( b = a || crc ),其中 ( crc ) 是根据原始数据计算得到的CRC校验位。这个关系确保了接收方可以通过对接收到的数据进行CRC校验来检测数据传输过程中是否发生了错误。

function crc = calculateCRC(data, poly, initValue, finalXor)  % data: 输入数据,应为uint8类型的数组  % poly: CRC多项式,例如CRC-8的多项式可以是0x07  % initValue: CRC计算的初始值  % finalXor: 计算结束后与CRC值进行异或操作的值(如果不需要,可以设置为0)  % 确保输入数据是uint8类型  if ~isa(data, 'uint8')  error('Input data must be of type uint8.');  end  % 初始化CRC寄存器  crc = uint8(initValue);  % 对输入数据的每个字节进行处理  for i = 1:length(data)  % 将当前字节与CRC寄存器进行异或操作  crc = bitxor(crc, data(i));  % 对异或结果进行模2除法(实际上是按位异或和移位操作)  for j = 1:8  if crc & 0x80 ~= 0 % 检查最高位是否为1  crc = bitshift(crc, -1); % 右移一位  crc = bitxor(crc, poly); % 如果最高位是1,则与多项式进行异或  else  crc = bitshift(crc, -1); % 右移一位  end  end  end  % 应用最终的异或操作(如果有的话)  crc = bitxor(crc, finalXor);  
end  % 示例用法:  
data = uint8([72 101 108 108 111 32 87 111 114 108 100]); % "Hello World"字符串转换为uint8数组  
poly = 0x07; % CRC-8多项式示例  
initValue = 0x00; % 初始值示例  
finalXor = 0x00; % 最终异或值示例(通常不需要)  crcValue = calculateCRC(data, poly, initValue, finalXor);  
disp(['CRC value: ', num2hex(crcValue)]);

这篇关于【5G NR 协议解读】3GPP TS 38.212 (R18) 复用和信道编码(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820659

相关文章

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

探索蓝牙协议的奥秘:用ESP32实现高质量蓝牙音频传输

蓝牙(Bluetooth)是一种短距离无线通信技术,广泛应用于各种电子设备之间的数据传输。自1994年由爱立信公司首次提出以来,蓝牙技术已经经历了多个版本的更新和改进。本文将详细介绍蓝牙协议,并通过一个具体的项目——使用ESP32实现蓝牙音频传输,来展示蓝牙协议的实际应用及其优点。 蓝牙协议概述 蓝牙协议栈 蓝牙协议栈是蓝牙技术的核心,定义了蓝牙设备之间如何进行通信。蓝牙协议

【杂记-浅谈DHCP动态主机配置协议】

DHCP动态主机配置协议 一、DHCP概述1、定义2、作用3、报文类型 二、DHCP的工作原理三、DHCP服务器的配置和管理 一、DHCP概述 1、定义 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,是一种网络协议,主要用于在IP网络中自动分配和管理IP地址以及其他网络配置参数。 2、作用 DHCP允许计算机和其他设备通

自动驾驶规划中使用 OSQP 进行二次规划 代码原理详细解读

目录 1 问题描述 什么是稀疏矩阵 CSC 形式 QP Path Planning 问题 1. Cost function 1.1 The first term: 1.2 The second term: 1.3 The thrid term: 1.4 The forth term: 对 Qx''' 矩阵公式的验证 整体 Q 矩阵(就是 P 矩阵,二次项的权重矩阵)

视频监控平台:支持交通部行业标准JT/T905协议(即:出租汽车服务管理信息系统)的源代码的函数和功能介绍及分享

目录 一、视频监控平台介绍 (一)概述 (二)视频接入能力介绍 (三)功能介绍 二、JT/T905协议介绍 (一)概述 (二)主要内容 1、设备要求 2、业务功能要求 3、技术功能要求 4、性能要求 5、接口要求 6、设备通信协议与数据格式 三、代码和解释 (一)代码和注释 (二)函数功能说明 1. 头文件保护 2. 包含必要的头文件 3. 引入命名空间std

计算机网络协议常考点!!!

应用层协议 HTTP协议 基于TCP协议,是一种用于传输超文本和多媒体内容的协议,主要是为浏览器之前的通信而设计的; get请求和post请求区别 请求参数位置不同:get会将请求参数放在URL后面并通过&运算符连接,而post提交会将请求参数放在请求体里; 请求数据量不同:get的请求参数会受到浏览器对URL最大长度的限制,而post是将请求参数放在请求体中,可以请求大量数据; 安全

AIGC-Animate Anyone阿里的图像到视频 角色合成的框架-论文解读

Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation 论文:https://arxiv.org/pdf/2311.17117 网页:https://humanaigc.github.io/animate-anyone/ MOTIVATION 角色动画的

网络编程篇:HTTP协议

一.预备知识 在客户端访问服务端时,要用ip+port,但是在日常用户访问服务端的时候,并不会直接使用ip,而是使用域名,比如:百度(www.baidu,com)。                                                                                    在浏览器处理时,会将域名解析为对应的ip+port。

React+TS 从零开始教程(2):简中简 HelloWolrd

源码链接:https://pan.quark.cn/s/c6fbc31dcb02 这一节,我们来见识React+TS的威力,开始上手开发第一个组件,什么组件呢? 当然是简中简的 HelloWolrd组件啦。 在src下创建一个components,然后新建Hello.tsx 为什么是tsx呢,这个目的就是告诉编译器,我这个文件是支持jsx语法的,如果遇到你看不懂的标签,就当作React Ele

rtp与rtcp协议详解

目录: 1 RTP概述 1.1 是什么RTP1.2 RTP的应用环境 2 RTP详解 2.1 RTP的协议层次 2.1.1 传输层的子层2.1.2 应用层的一部分 2.2 RTP的封装2.3 RTCP的封装2.4 RTP的会话过程 3 相关的协议 3.1 实时流协议RTSP3.2 资源预定协议RSVP 4 常见的疑问5 实现方案6 参考资料 1 RTP概述 1.1 是什么RTP