拓冰建站拓冰建站
首页 / 资讯中心 / 正文

5G NR小区搜索与SIB1探测全流程解析

简介面向5G网络优化工程师及通信技术人员这份文档系统讲解5G(NR)终端开机后的小区搜索与SIB1探测完整流程属于5G网络优化方向的实用技术资料。压缩包仅包含1个docx文档大小15KB内容精炼且直击要点。文档依据3GPP TS 38.300规范将小区搜索分解为频率调谐、PSS/SSS检测、PBCH解码、MIB读取、搜索空间配置、DCI盲检、PDSCH解码及SIB1解析等关键步骤并重点阐释SSB探测如何合并同步检测与PBCH解码以提升搜索效率。通过研读该文档读者可清晰理解终端接入网络的信令机制掌握排查小区接入异常与优化网络参数的思路适合从事5G网络规划、优化及故障处理的工程师参考学习。目前该资源已有375人学习下载。1. 5G(NR)网络中终端小区搜索和SIB1探测从空口盲检到RMSI解析的完整链路5G(NR)的终端在开机、重选或切换时第一件事不是在某个固定的频点上直接读系统消息而是在同步栅格上盲检SSB再沿着SSB携带的MIB参数一路找到SIB1。这段从PSS/SSS相关检测到SIB1解码的过程本质上是终端和基站之间“先握手、再交换地址簿”的信令契约。很多人在外场测试时只盯着RSRP和SINR却忽略了SSB与RMSI映射关系、CORESET#0参数集、Type0-PDCCH搜索空间周期这些底层细节——一旦SIB1解不出来后续的PRACH、RRC建立全部无从谈起。这篇文章面向协议开发、网优和测试工程师把小区搜索各阶段的理论依据和可落地的排查命令整理清楚尽量做到能对着空口log逐段验证。2. 5G(NR)小区搜索第一步SSB结构、PSS/SSS序列与定时关系2.1 为什么NR把同步信号设计成SSB突发集LTE时代同步信号和PBCH是分散映射在整个带宽上的而NR为了适配波束扫描和多种子载波间隔设计了SSBSS/PBCH block这种紧凑结构。一个SSB在时域上占据4个OFDM符号在频域上占据240个子载波20个PRB其中PSS占符号0中间的127个子载波SSS占符号2中间的127个子载波PBCH和它的DMRS则分布在符号1和符号3的整个20个PRB上。SSB在一个半帧内可以重复发送多次形成SSB突发集。对于15kHz子载波间隔一个突发集最多包含8个SSB对于30kHz同样最多8个对于120kHz和240kHz最多64个。这个“一次发多个”的设计不是冗余——它是为了匹配基站的模拟波束扫描每个SSB对应一个下行发送波束方向终端通过测量不同SSB索引来选择最好的波束。因此小区搜索的第一步实质上是终端在预定义的同步栅格上先找到PSS的时频位置再完成符号定时、频率粗同步、PCI部分检测。2.1.1 SSB频域位置同步栅格和Global同步信道号终端不可能在每一个频点上盲搜3GPP定义了同步栅格synchronization raster步长和频段有关。在FR1频段同步栅格的步长通常为1200kHz对应的GSCNGlobal Synchronization Channel Number按频段不同有专门的计算公式。例如在n78频段GSCN的计算涉及OffsetToPointA和kSSB的换算关系。外场测试中出现小区搜索失败很多时候不是信号强度不够而是终端在绝对射频信道号NR-ARFCN上搜索而基站实际配置的SSB落在相邻的同步栅格上两者偏差超过终端接收机的搜索窗。2.1.2 PSS和SSS的两级PCI检测PSS采用的是长度为127的m序列根据不同的循环移位值分别对应N_ID^2的0、1、2三种取值。终端通过本地相关运算找到PSS后就确定了符号定时和频域起始位置同时得到PCI的模3部分。SSS同样用127长度的m序列但由两个m序列的乘积构成携带N_ID^1的0到335取值。# 简化的PCI检测流程用于理解PSS/SSS解调顺序 import numpy as np # 假设received_signal是时域接收信号ssb_symbols是解调出的SSB符号 def detect_pci(pss_corr, sss_corr): # pss_corr: 与3个PSS序列相关后的峰值位置和强度 n_id_2 np.argmax(pss_corr) # 取值0/1/2决定PSS序列 n_id_1 np.argmax(sss_corr) # 取值0~335决定SSS序列 pci n_id_1 * 3 n_id_2 # 物理小区标识 return pci # 说明 # PSS相关只需要做3次运算量很小SSS相关需要做336次但因为已经确定了符号位置 # 只需要在一个OFDM符号内做频域相关。PCI计算完成后终端才知道用哪个序列去解PBCH的DMRS。这套两级检测的价值在于PSS检测的计算量从3*N降到一次相关运算让终端在FeMBB场景下能快速找到候选小区。实际芯片实现还会做多小区并行检测在同一时刻处理多个SSB突发的峰值但这种并行不改变PCI检测的顺序逻辑。2.2 SSB定时和半帧边界的确定终端在子帧0和子帧5组成的半帧内搜索SSB。但SSB不一定从子帧0的最开始发送它的起始符号位置由ssb-PositionsInBurst这个SIB1参数决定。在初始小区搜索阶段终端还没有读到SIB1所以它假设SSB突发集内每个SSB的候选位置遵循默认映射表。对15kHz子载波间隔SSB候选位置在符号2、符号8对30kHz子载波间隔候选位置可能是符号4、8、16、20等。终端搜索一遍所有候选位置后通过PBCH的DMRS序列来确认具体是哪一个SSB索引——DMRS序列携带了SSB索引的低位比特而PBCH的净荷则携带SSB索引的高位比特。注意到这个细节很重要在非独立组网或SA组网里如果SSB突发集配置为10ms周期但终端默认假设20ms周期检测那么解PBCH的速率匹配位置就会错位导致解码失败。2.2.1 子载波间隔和SSB周期的相互约束SSB的子载波间隔在FR1频段通常为15kHz或30kHz它决定了OFDM符号长度和CP长度。如果基站配置的SSB子载波间隔和终端在频点搜索时假设的不同终端可能根本检测不到PSS。NR协议规定SSB的子载波间隔和SIB1的子载波间隔可以不同但两者必须从同一个集合中选择。例如SSB用30kHzRMSI也用30kHzSSB用30kHzRMSI也可以用15kHz但此时CORESET#0的RB数量、符号数量都要按不同表项选择这在后续SIB1调度中会专门讨论。3. PBCH解码和MIB获取从DMRS序列到RMSI配置参数的映射3.1 PBCH的物理资源映射和加扰规则PBCH占SSB内除PSS/SSS之外的所有资源即符号1和符号3的20个PRB加上符号2中SSS两侧的48个子载波。PBCH的调制方式是QPSK总资源单元数为20PRB * 12子载波 * 2符号 48个子载波 - DMRS开销最终每个SSB的PBCH可以携带32个比特的BCH传输块经过CRC加扰和极化编码后映射到资源单元。加扰序列初始化和LTE有很大不同它的初始化种子依赖物理小区标识PCI和SSB索引的时隙号。这意味着如果PCI估计错误即使DMRS相关运算通过PBCH解调后CRC也大概率校验失败。这也是在外场log中区分“SSB检测成功但PBCH失败”和“PBCH成功但SIB1失败”的重要边界。3.1.1 用DMRS区分不同SSB的加扰序列# PBCH DMRS序列生成的伪代码用于理解不同SSB索引的区分原理 def generate_pbch_dmrs(pci, ssb_index, n_cp0): # 初始化伪随机序列的种子 # 公式参考38.211 7.4.1.3.1这里简化为示意 c_init 2**11 * (ssb_index 1) * (pci // 4 1) 2**6 * (ssb_index 1) pci % 4 dmrs_seq generate_gold_sequence(c_init, length144) return dmrs_seq # 参数说明 # pci: 已经通过PSS/SSS检测得到的物理小区标识 # ssb_index: 当前检测的SSB在突发集内的编号取值0~63 # n_cp: 循环前缀类型FR1通常为0即普通CP # 终端在相关检测PBCH DMRS时会遍历所有ssb_index假设取相关峰值最大者 # 由此得到SSB索引的低位信息再和PBCH净荷中的高位索引拼接完整值。3.2 MIB的比特字段梳理PBCH解码成功后得到的BCH传输块即MIB共23比特有效载荷加8比特CRC。MIB内的关键字段包括systemFrameNumber占6比特是SFN的高6位加上PBCH隐式携带的SFN低4位通过加扰序列的循环移位变化体现组成了10比特完整SFN范围0到1023。subCarrierSpacingCommon占1比特指示SIB1采用的子载波间隔15kHz或30kHzFR1。ssb-SubcarrierOffset占4比特指示SSB和PRB网格之间的频域偏移kSSB取值范围0到15。pdcch-ConfigSIB1占8比特其中前4比特指示CORESET#0的配置索引后4比特指示Type0-PDCCH搜索空间的配置索引。这两个4比特组合指向38.213表13-1到13-10中的具体行确定了SIB1调度的时频资源。3.2.1 kSSB的工程意义和常见配置kSSB在协议里的含义是SSB最低子载波到PRB0最低子载波之间的偏移单位是子载波。但它不是简单一个绝对位置值——在38.211中它用于确定SSB和Point A公共资源块0的中心的关系。实际外场配置中SSB子载波间隔和RMSI子载波间隔一致时kSSB取值为0到11如果SSB用30kHz而RMSI用15kHzkSSB取值范围扩展到0到23因为频率粒度变细了。一个经常踩的坑是如果kSSB配置过大导致SSB的频域位置和CORESET#0重叠终端在检测完PBCH后尝试盲检RMSI PDCCH会遇到干扰表现为“MIB解出来了但PDCCH一直盲检失败”。3.3 从MIB到Type0-PDCCH的带宽和周期推导MIB中的pdcch-ConfigSIB1是本阶段输出的核心结果。它让终端在完全不知道SIB1任何先验信息的情况下算出RMSI-PDCCH的监听时机。具体来说CORESET#0的带宽只能是24、48、96个RB15kHz SCS下或24、48、96个RB30kHz SCS下但不同配置索引还组合了不同的符号长度1到3个符号和偏移量RB级偏移。Type0-PDCCH搜索空间则定义了PDCCH监听的起始符号、持续符号数和周期周期通常是1、2、4、5、8、10、20个时隙。这些组合全部汇总在38.213的表13-1到13-6中不同频段适用的表不同。为了把这个过程量化下面给出一个简化的查表逻辑例子# 根据MIB中的pdcch-ConfigSIB1确定RMSI PDCCH监听时机 def get_rmsi_pdcch_config(pdcch_config_sib1, is_fr2False): # 高4bit是CORESET#0索引低4bit是搜索空间索引 coreset_zero_index (pdcch_config_sib1 4) 0xF search_space_index pdcch_config_sib1 0xF # 以FR1 15kHz SCS为例引用38.213表13-1和13-3 coreset_zero_mapping { 0: {sym: 1, nrb: 24, offset: 0}, 1: {sym: 1, nrb: 24, offset: 2}, 2: {sym: 1, nrb: 24, offset: 4}, 5: {sym: 2, nrb: 48, offset: 2}, 8: {sym: 3, nrb: 96, offset: 0}, } search_space_mapping { 0: {period: 1, offset: 0, duration: 1, start_sym: 0}, 1: {period: 2, offset: 0, duration: 1, start_sym: 0}, 6: {period: 5, offset: 0, duration: 1, start_sym: 0}, 12: {period: 10, offset: 0, duration: 1, start_sym: 0}, } coreset coreset_zero_mapping.get(coreset_zero_index) ss search_space_mapping.get(search_space_index) return coreset, ss代码里的索引值只列出了少量示例完整实现必须以3GPP 38.213的表格为准。这里的重点是理解不同索引组合对应不同的RMSI覆盖能力和时延。CORESET#0的RB数越多PDCCH容纳的CCE越多SIB1的DCI 1_0调度就越不容易阻塞但搜索空间周期越长终端的平均接入时延越大。实际网络配置中常见的选择是coreset_zero_index5配search_space_index0兼顾覆盖和接入速度。4. SIB1探测的完整过程RMSI搜索、DCI调度与PDSCH接收4.1 从MIB参数到RMSI PDCCH监听的具体流程SIB1在NR中被称为RMSIRemaining Minimum System Information它本身不固定映射在某个PRB上而是由Type0-PDCCH上的DCI 1_0动态调度。终端在译码MIB后立即进入RMSI监听状态。监听的具体时机由search_space_index确定包括周期的时隙粒度以及每个周期内的起始符号。以FR1 15kHz SCS为例如果搜索空间配置是周期2个时隙偏移0个时隙持续1个时隙起始符号0那么终端需要在每个偶数时隙的符号0开始的CORESET#0内做PDCCH盲检。PDCCH盲检的搜索空间类型是Type0公共搜索空间DCI格式是1_0其CRC用SI-RNTI加扰。SI-RNTI的值为固定的0xFFFF。终端需要用这个RNTI去解扰所有候选PDCCH如果CRC校验通过就读取DCI 1_0中的频域资源分配字段、调制编码方案字段、时域资源分配字段才能最终确定PDSCH的位置和传输参数。4.1.1 DCI 1_0中与SIB1接收强相关的字段DCI 1_0用于调度SIB1时频域资源分配用一个Resource Allocation Type 1的位图表达其比特数取决于CORESET#0的RB数调制编码方案字段通常对应QPSK、16QAM、64QAM等时域资源分配通过查38.214表5.1.2.1.1-1确定PDSCH的起始符号和持续时间此外还有TB scaling字段用于调整传输块大小的缩放因子。在SIB1的DCI中有些字段被改成固定值——比如HARQ进程号固定为0NDI固定为0RV固定为0——因为这些信息对SIB1广播没有意义保留这些字段是为了保持DCI长度稳定避免增加盲检次数。4.1.2 SIB1的时域周期和重复窗口SIB1的调度周期固定为160ms用户可以在si-WindowLength内重复接收。协议规定在一个SI窗口内SIB1的PDSCH可以在任意时隙出现多次。实际配置中si-WindowLength的取值范围从5ms到20ms。在窗口内终端会持续监听Type0-PDCCH。一次DCI调度成功后终端会在对应的PDSCH资源上解调传输块然后校验CRC。如果CRC失败可以继续在窗口剩余时间内尝试下一次调度。这个机制允许SIB1在没有HARQ重传的情况下获得时域分集增益。下表列出了SIB1调度相关的关键参数参数取值/范围对终端行为的影响si-WindowLength5/10/15/20 ms窗口越大终端有更多盲检机会但待机功耗升高SIB1周期160 ms固定值决定小区搜索的最长等待时间SI-RNTI0xFFFF公共RNTI所有终端共享重复次数无显式配置依赖窗口内多次DCI调度由基站调度策略决定TB缩放1/0.5等影响最终传输块大小接收端需要同步处理4.2 SIB1 PDSCH的DMRS和速率匹配细节终端从DCI里拿到PDSCH时频资源后还要处理PDSCH的DMRS图案和速率匹配。SIB1使用映射类型A的PDSCHDMRS位置由dmrs-TypeA-Position决定——但该参数在SIB1中广播终端没有读到它之前需要采用一个默认假设。根据38.214在初始接入阶段终端假设dmrs-TypeA-Position等于2这个值与第一个DMRS符号位于第3个OFDM符号索引2的事实对应。SIB1的PDSCH还会做速率匹配避让SSB占用的资源元素。具体如何避让由SIB1中的ssb-PositionsInBurst和rateMatchPatternToAddModList决定。终端在实际进行PDSCH解映射时需要把SSB所占的4个符号、240个子载波资源从SIB1的PDSCH资源中抠掉再进行解调。这里有个经典问题如果kSSB配置导致SSB和PDSCH的频域位置重叠PDSCH的可用RE数会比终端预估的少初期的SIB1解码就会因误码率过高而失败。4.3 初始接入阶段SIB1盲检的完整流程示例# 以下是一个基于空口日志的SIB1接收流程检查清单 # 假设使用协议分析工具导出的信令消息 1. SSB检测阶段 - 检查日志中记录的GSCN和NR-ARFCN确认是否在同步栅格上 - 查看检测到的PCI和本小区规划是否一致 - 记录SSB索引号和对应的RSRP确认波束扫描完整性 2. PBCH解码阶段 - 查看MIB消息中的pdcch-ConfigSIB1值例如0x3A - 解析高4bit(3)和低4bit(10)分别查CORESET#0和搜索空间配置 - 检查kSSB字段确认小于子载波间隔比值对应的门限 3. RMSI PDCCH监听 - 按搜索空间配置确定PDCCH监听时机 - 记录DCI 1_0的SI-RNTI解扰是否成功 - 如果连续4个周期盲检失败检查CORESET#0的频域偏移 4. SIB1 PDSCH解码 - 根据DCI的时域资源分配字段确定PDSCH起始符号 - 检查无线承载的误码率目标是否达到BLER阈值 - 确认SIB1解码成功获取小区接入参数4.4 CORESET#0配置和SIB1子载波间隔的组合选择MIB中的subCarrierSpacingCommon不仅告诉终端SIB1 PDSCH用多少子载波间隔还影响CORESET#0的映射表选择。当SSB和RMSI使用相同子载波间隔时CORESET#0的最小频域偏移是0个RB最大可配置到38个RB偏移当不同时偏移以RMSI的SCS为粒度表示取值范围变大。在NSA组网或高层楼宇覆盖场景下如果SSB用15kHz、RMSI用30kHz那么CORESET#0的27个RB带宽在频域上的实际物理宽度会缩小一半导致PDCCH覆盖变差。外场做过波束管理的工程师通常建议SSB和RMSI的子载波间隔尽可能保持一致除非频段政策或双载波配置强制要求拆分。PRACH时频资源也由SIB1携带。5.2.1 RACH配置参数如何影响小区搜索阶段的终端行为SIB1中的rach-ConfigCommon包含prach-ConfigurationIndex、msg1-FDM、msg1-FrequencyStart、prach-RootSequenceIndex等字段。其中prach-ConfigurationIndex决定了PRACH前导格式、时域起点和周期msg1-FDM决定频分复用的PRACH机会数量prach-RootSequenceIndex对应前导序列的根序列索引。外场常见的“能解SIB1但随机接入失败”问题有相当比例是PRACH的时频位置和SSB关联没有配对。5.2.2 从SIB1中preamble格式看小区覆盖半径PRACH前导格式的长度直接决定小区覆盖半径格式0的序列长度是839个子载波子载波间隔1.25kHz最多支持约14km覆盖格式A1/A2/A3使用短序列支持更大的子载波间隔和波束对应但覆盖半径显著缩小。SIB1里通过prach-ConfigurationIndex隐式指定了前导格式。在5G覆盖规划和“5G全网排障”场景中如果发现某小区SIB1解码正常但前导检测不到首先检查这个格式和实际小区半径是否匹配。极端场景下前导格式CP长度不足远端终端的PRACH到达基站后会落在上一个子帧的窗口里导致基站侧误检。SIB1中还包含preambleReceivedTargetPower用于指导终端的PRACH发射功率如果在远点反复做功率爬升但始终无响应除了路损因素还要怀疑Msg1频域位置是否越过了实际带宽边界。5.3 T304定时器和SIB1探测的关联T304是切换场景下的专用定时器SIB1探测本身并不读写T304但T304的启动和停止可以当作SIB1接收成功与否的辅助判断。终端收到切换命令后启动T304在目标小区执行完整的SSB小区搜索和SIB1或专用RRC重配置消息中的等效配置接收。如果目标小区的SIB1无法解码T304会一直运行到超时随后终端判定切换失败并触发RRC重建。SIB1中不直接携带T304配置它来自源基站的RRC重配置消息。但排障时要把这两个维度放在一起一个切换请求下发后源基站侧看切换准备成功目标基站侧看随机接入迟迟不来——问题大概率出在目标小区的SIB1或CORESET#0配置无法被该终端正确解析。6. 实战技巧用最小配置验证SIB1探测链路和常见异常定位6.1 用仿真平台跑通SSB到SIB1的全链路在没有商用基站的环境下可以用Matlab 5G Toolbox或srsRAN快速验证SIB1探测流程。这里给出一个基于srsRAN小区搜索模块的思路# 使用srsRAN的nr_cell_search工具假设已编译安装 # 采集一段包含SSB和SIB1的IQ数据文件格式为float32 ./nr_cell_search -f 3.52e9 -s 30e3 -a 50 --ssb-period 20 \ --rx-gain 60 -i rmsi_iq.float32 # 参数说明 # -f 3.52e9: 搜索的中心频率对应真实NR工作频点 # -s 30e3: SSB子载波间隔这里按30kHz设定 # -a 50: 天线端口索引 # --ssb-period 20: SSB突发集周期20ms是FR1常见配置 # -i: 输入IQ文件 # 如果上述命令能够输出MIB解码成功和SIB1的RMSI相关信息 # 说明5G(NR)小区搜索的接收链路在物理层实现层面完整可用。在工程实践里我更倾向于用信道仿真器叠加多径和频偏验证终端在极端条件下的SIB1探测能力。仿真器可以用Keysight或RS的信号源配合Matlab生成SSB和全部SIB1参数并人为引入频率偏移和相位噪声观察终端在多大频偏下SIB1解码开始恶化。NR的同步要求终端在初始小区搜索时容忍±5ppm的晶振误差在毫米波频段这对应几十kHz的绝对频偏因此SIB1探测前的整数倍频偏估计和PBCH符号级定时对齐是后端性能的分水岭。6.2 三个最值得优先排查的SIB1失败线索第一条线索是检查kSSB和RMSI子载波间隔组合。SIB1探测失败的log中如果MIB解码成功但PDCCH盲检持续失败先去对比ssb-SubcarrierOffset和subCarrierSpacingCommon。当SSB SCS大于RMSI SCS时kSSB的粒度变小一个很小的配置偏差在频域上会被放大导致终端监听CORESET#0时实际资源和预期完全错开。第二条线索是核对CORESET#0的带宽和CCE聚合度。默认搜索空间中PDCCH候选集的CCE聚合等级为4和8在低信噪比区域如果CORESET#0只有24个RB、1个符号那么可用的CCE数量非常有限SI-RNTI的DCI可能被其他公共信令挤占。遇到这种情况最常见的优化手段是把pdcch-ConfigSIB1调整到更大带宽的CORESET#0配置例如从24RB调整为48RB。第三条线索是验证SSB周期和突发集内SSB个数。终端在初始接入时按20ms周期搜索SSB如果基站配置的是5ms周期终端依然能搜到只是时间提前量计算可能不同。但如果实际SSB个数超过终端在FR1最大支持的数量后发的SSB索引会超出预期范围PBCH的DMRS相关值出现多个相近峰值导致选错SSB索引进而解错SIB1的速率匹配图样。检查信号分析仪上SSB突发集内主同步信号的相对功率可以快速确认是否存在相邻SSB索引的互扰。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门