4G LTE教程
整体架构

物理层(第 1 层)
物理层通过空中接口传输来自 MAC 传输信道的所有信息。负责 RRC 层的链路自适应 (AMC)、功率控制、小区搜索(用于初始同步和切换目的)和其他测量(LTE 系统内部和系统之间)。
介质访问层 (MAC)
MAC层负责逻辑信道和传输信道之间的映射,将来自一个或多个逻辑信道的MAC SDU复用到传输块(TB)上,以便在传输信道上传送到物理层,将来自一个或多个逻辑信道的MAC SDU与从物理层在传输信道上传送的传输块(TB)进行解复用,调度信息报告,通过HARQ进行错误纠正,通过动态调度在UE之间进行优先级处理,在一个UE的逻辑信道之间进行优先级处理,逻辑信道优先级排序。
无线链路控制 (RLC)
RLC 有 3 种操作模式:透明模式 ™、非确认模式 (UM) 和确认模式 (AM)。
RLC 层负责上层 PDU 的传输、通过 ARQ 进行错误校正(仅适用于 AM 数据传输)、RLC SDU 的串联、分段和重组(仅适用于 UM 和 AM 数据传输)。
RLC 还负责 RLC 数据 PDU 的重新分段(仅适用于 AM 数据传输)、RLC 数据 PDU 的重新排序(仅适用于 UM 和 AM 数据传输)、重复检测(仅适用于 UM 和 AM 数据传输)、RLC SDU 丢弃(仅适用于 UM 和 AM 数据传输)、RLC 重建和协议错误检测(仅适用于 AM 数据传输)。
无线资源控制 (RRC)
RRC子层的主要服务和功能包括与非接入层(NAS)相关的系统信息广播、与接入层(AS)相关的系统信息广播、寻呼、UE与E-UTRAN之间的RRC连接的建立、维护和释放、安全功能包括密钥管理、点对点无线承载的建立、配置、维护和释放。
分组数据汇聚控制 (PDCP)
PDCP 层负责 IP 数据的报头压缩和解压、数据传输(用户平面或控制平面)、PDCP 序列号(SN)的维护、在重新建立下层时按顺序传送上层 PDU、在重新建立 RLC AM 上映射的无线承载的下层 SDU 的重复消除、用户平面数据和控制平面数据的加密和解密、控制平面数据的完整性保护和完整性验证、基于计时器的丢弃、重复丢弃,PDCP 用于映射到 DCCH 和 DTCH 类型的逻辑信道上的 SRB 和 DRB。
非接入层 (NAS) 协议
非接入层 (NAS) 协议构成了用户设备 (UE) 和 MME 之间的控制平面的最高层。
NAS 协议支持 UE 的移动性和会话管理程序,以建立和维护 UE 和 PDN GW 之间的 IP 连接。
LTE 层数据流

层接收到的数据包称为服务数据单元 (SDU),而层输出的数据包称为协议数据单元 (PDU)。让我们从上到下看看数据流:
IP 层将 PDCP SDU(IP 数据包)提交给 PDCP 层。PDCP 层进行报头压缩并将 PDCP 报头添加到这些 PDCP SDU。PDCP 层将 PDCP PDU(RLC SDU)提交给 RLC 层。
PDCP 报头压缩:PDCP 从 PDU 中删除 IP 报头(最少 20 个字节),并添加 1-4 个字节的令牌。这大大节省了原本必须通过无线方式传输的报头数量。

LTE PDCP 服务数据单元
RLC 层对这些 SDUS 进行分段,形成 RLC PDU。RLC 根据 RLC 操作模式添加标头。RLC 将这些 RLC PDU(MAC SDU)提交给 MAC 层。
RLC 分段:如果 RLC SDU 较大,或者可用的无线数据速率较低(导致传输块较小),则 RLC SDU 可能会被拆分为多个 RLC PDU。如果 RLC SDU 较小,或者可用的无线数据速率较高,则多个 RLC SDU 可能会被打包成单个 PDU。
MAC 层添加报头并进行填充以使此 MAC SDU 适合 TTI。MAC 层将 MAC PDU 提交给物理层,以便将其传输到物理信道上。
物理通道将该数据传输到子帧的时隙中。
LTE 通信信道
不同协议之间的信息流称为信道和信号。LTE 使用几种不同类型的逻辑、传输和物理信道,这些信道根据其承载的信息类型和信息处理方式进行区分。
-
逻辑信道:定义通过空中传输的信息类型,例如业务信道、控制信道、系统广播等。数据和信令消息在 RLC 和 MAC 协议之间的逻辑信道上传输。
-
传输信道:定义如何通过无线方式传输数据,例如,传输数据的编码、交织选项是什么。数据和信令消息在 MAC 层和物理层之间的传输信道上传输。
-
物理信道:定义在空中传输的内容,例如 DL 帧中的前 N 个符号。数据和信令消息在物理层不同层级之间的物理信道上传输。
https://www.tutorialspoint.com/lte/lte_communication_channels.htm
LTE OFDM 技术
为了克服 UMTS 中存在的多径衰落问题,LTE 在下行链路中使用正交频分复用 (OFDM) - 即从基站到终端通过多个 180 KHz 的窄带信道传输数据,而不是将一个信号分散到整个 5MHz 信道带宽上。即 OFDM 使用大量窄子载波进行多载波传输来承载数据。
正交频分复用(OFDM)是一种用作数字多载波调制方法的频分复用(FDM)方案。
OFDM 满足 LTE 对频谱灵活性的要求,并为具有高峰值速率的超宽载波提供经济高效的解决方案。基本的 LTE 下行链路物理资源可以看作是一个时频网格,如下图所示:
OFDM 符号被分组为资源块。资源块在频域上的总大小为 180kHz,在时域上的总大小为 0.5ms。每个 1ms 传输时间间隔 (TTI) 由两个时隙 (Tslot) 组成。

每个用户在时间频率网格中被分配一定数量的所谓资源块。用户获得的资源块越多,资源元素中使用的调制越高,比特率就越高。用户在给定时间点获得哪些资源块以及获得多少资源块取决于频率和时间维度的高级调度机制。
LTE 中的调度机制与 HSPA 中使用的机制类似,并能够在不同的无线电环境中为不同的服务提供最佳性能。
OFDM 的优点
OFDM 相对于单载波方案的主要优势在于它无需复杂的均衡滤波器便可应对严酷的信道条件(例如,长铜线中的高频衰减、窄带干扰和多径引起的频率选择性衰落)。
由于 OFDM 可以看作是使用许多缓慢调制的窄带信号而不是一个快速调制的宽带信号,因此信道均衡得到简化。
低符号率使得可以使用符号间的保护间隔,从而可以消除符号间干扰 (ISI)。
这种机制还有利于单频网络(SFN)的设计,其中几个相邻的发射器以相同的频率同时发送相同的信号,因为来自多个远距离发射器的信号可以建设性地组合,而不是像在传统的单载波系统中通常发生的那样互相干扰。
OFDM 的缺点
峰值与平均值之比高
对频率偏移敏感,因此也对多普勒频移敏感
相关文章:
4G LTE教程
整体架构 物理层(第 1 层) 物理层通过空中接口传输来自 MAC 传输信道的所有信息。负责 RRC 层的链路自适应 (AMC)、功率控制、小区搜索(用于初始同步和切换目的)和其他测量(LTE 系统内部和系统之间)。 介…...
C++:哈希表
哈希表概念 哈希表可以简单理解为:把数据转化为数组的下标,然后用数组的下标对应的值来表示这个数据。如果我们想要搜索这个数据,直接计算出这个数据的下标,然后就可以直接访问数组对应的位置,所以可以用O(1)的复杂度…...
自己动手写一个滑动验证码组件(后端为Spring Boot项目)
近期参加的项目,主管丢给我一个任务,说要支持滑动验证码。我身为50岁的软件攻城狮,当时正背着双手,好像一个受训的保安似的,中规中矩地参加每日站会,心想滑动验证码在今时今日已经是标配了,司空…...
keepalive脑裂
keepalive脑裂 调度器的高可用 vip地址主备之间的切换,主在工作时,p地址只在主上,主停止工作,ip飘移到备服务器。 在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。 1、配优先级 2、配置…...
STM32Cubemx配置生成 Keil AC6支持代码
文章目录 一、前言二、AC 6配置2.1 ARM ComPiler 选择AC62.2 AC6 UTF-8的编译命令会报错 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替换文件内核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、编译对比 一、前言 使用keil ARM compiler V5的时候,编译…...
Perl基础入门指南:从零开始掌握Perl编程
Perl是一种功能强大且灵活的编程语言,广泛应用于系统管理、Web开发、网络编程和文本处理等领域。如果你是编程新手或者想学习一种新的编程语言,Perl是一个不错的选择。本文将带你了解Perl的基础知识,并通过简单的示例代码帮助你快速入门。 什…...
Mybatis SQL注解使用场景
MyBatis 提供了几种常用的注解,主要用于简化 XML 映射文件的编写,使得 SQL 查询和操作可以直接在 Java 接口中定义。下面列出了主要的注解以及它们在被调用时的写法示例: 1. Select Select 注解用于执行查询操作,并将查询结果映…...
Dataset for Stable Diffusion
1.Dataset for Stable Diffusion 笔记来源: 1.Flickr8k数据集处理 2.处理Flickr8k数据集 3.Github:pytorch-stable-diffusion 4.Flickr 8k Dataset 5.dataset_flickr8k.json 1.1 Dataset 采用Flicker8k数据集,该数据集有两个文件ÿ…...
近期matlab学习笔记,学习是一个记录,反复的过程
近期matlab学习笔记,学习是一个记录,反复的过程 matlab的mlx文件在运行的时候,不需要在文件夹路径下,也能运行,但是需要调用子函数时,就需要在文件所在路径下运行 那就先运行子函数,把路径换过来…...
Elasticsearch7.5.2 常用rest api与elasticsearch库
目录 一、rest api 1. 新建索引 2. 删除索引 3. 插入单条数据 4. 更新单条数据 5. 删除单条数据 6. 查询数据 二、python elasticsearch库 1. 新建索引 一、rest api 1. 新建索引 请求方式:PUT 请求URL:http://ip/(your_index_nam…...
Autosar Dcm配置-0x28服务ComControl-基于ETAS软件
文章目录 前言DcmDcmDsdDcmDspBswMBswMModeRequestPortBswMModeConditionBswMLogicalExpressionBswMActionBswMActionListBswMRule总结前言 0x28服务主要用来控制非诊断报文的通讯,一般在刷写预编程过程中,用来禁止APP的通信报文,可以减少总线负载率,提高刷写成功率。本文…...
平安养老险厦门分公司:提升金融服务,发挥金融力量
为向社会公众普及金融保险知识,传递消费者权益保护理念,平安养老保险股份有限公司厦门分公司(以下简称“分公司”)积极开展“78保险公众宣传日”系列教育宣传活动。分公司紧扣“保险,让每一步前行更有底气”主题&#…...
【开源合规】开源许可证风险场景详细解读
文章目录 前言关于BlackDuck许可证风险对比图弱互惠型许可证举个例子具体示例LGPL系列LGPL-2.0-onlyLGPL-2.0-or-laterLGPL-2.1-onlyLGPL-2.1-or-laterLGPL-3.0-onlyLGPL-3.0-or-laterMPL系列MPL-1.0MPL-1.1MPL-2.0EPL系列EPL-1.0EPL-2.0互惠型许可证GPL系列GPL-1.0GPL-2.0GPL-…...
Redis持久化RDB,AOF
目 录 CONFIG动态修改配置 慢查询 持久化 在上一篇主要对redis的了解入门,安装,以及基础配置,多实例的实现:redis的安装看我上一篇: Redis安装部署与使用,多实例 redis是挡在MySQL前面的,运行在内存…...
【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
一、通过虚拟机搭建Linux环境-CnetOS 1、安装virtualbox,和Vmware是一样的,只是box更轻量级 1)需要注意内存选择,4G 2、启动完成后,需要获取服务器IP地址 命令 ip add 服务器IP地址 通过本地的工具,进…...
mvcc 速读
MVCC(Multi-Version Concurrency Control,多版本并发控制)是MySQL中一种用于实现数据库并发控制的方法,尤其在InnoDB存储引擎中得到了广泛应用。它的主要作用是提高数据库在高并发场景下的性能,并确保数据的一致性。 …...
美容仪维修过程记录
近期维修的家用射频美容仪,发一些维修过程的拆机图片...
STM32入门开发操作记录(一)——新建工程
目录 一、课程准备1. 课程资料2. 配件清单3. 根目录 二、环境搭建三、新建工程1. 载入器件支持包2. 添加模块3. ST配置4. 外观设置5. 主函数文件 一、课程准备 1. 课程资料 本记录操作流程参考自b站视频BV1th411z7snSTM32入门教程-2023版 细致讲解 中文字幕,课程资…...
QT实现自定义带有提示信息的透明环形进度条
1. 概述 做界面开发的童鞋可能都会遇到这样的需求,就是有一些界面点击了之后比较耗时的操作,需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢,话不多说,上效果 透明进度条 2. 代码实现 waitfeedbackprogressba…...
金币程序题
昨天,小孩问了我一个python编程竞赛题,我看了一下题目,是一个数列编程的问题,我在想,小学五年级的学生能搞得懂吗?反正我家小孩是没有搞懂,不知道别人家的小孩能不能搞明白。所以我花了一点时间…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
高抗扰度汽车光耦合器的特性
晶台光电推出的125℃光耦合器系列产品(包括KL357NU、KL3H7U和KL817U),专为高温环境下的汽车应用设计,具备以下核心优势和技术特点: 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计,确保在…...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
